目录
什么是GAN?
GAN能够做什么?
GAN的框架和训练
GAN与其他生成模型的异同
GAN模型的存在问题
前言:GAN过去一年在图像领域大热,最近也有开始像文本领域进军的趋势,除了作为新模型应有的热度外,为什么它从14年提出至今到现在能够吸引众人的目光,这是令我十分好奇的,接下来,让我们一起来看看GAN,揭开它神秘的面纱吧!文章主要围绕NIPS 2016 GAN作者Goodfellow的tutorial进行介绍,语言尽量浅显,适合初学者了解之用。
1 什么是GAN?
GAN全称Generative Adversarial Network,在这里我们直译作“对抗生成网络”。在机器学习的框架中,GAN应归属于生成模型一类。但GAN的特别之处在于“对抗”二字,除了生成模型外,GAN中还包含了一个判别模型,生成和判别模型就像是一对游戏玩家,生成模型拟合数据的产生过程产生模型样本,判别模型则需从混合了真实样本和模型样本的数据中挑出模型样本。整个游戏的进行过程中,两个玩家需要相互对抗,生成模型需仿制的炉火纯青,判别模型需变得火眼金睛。这种“对抗产生”的方式,相比于过去的生成模型,其优势是通过判别模型给生成过程增加了一个反馈机制,从而能够更为准确的拟合真实数据的生成过程。
扩展:生成模型,一般用于刻画我们所观测的数据的产生过程,例如,股价、天气的变化,图像、文本的创作,信息的传播等。为了能够更为准确地刻画生成模型,我们往往会引入许多额外的假设因素(隐变量),例如,假设股价的变化和当前的政治环境、金融市场相关,文本的创作过程与主题相关等。图模型的引入使得我们可以方便地引入更多的假设因素,以及添加各因素间更为复杂的关联关系。另外,我们也可以抛弃对各假设因素的直接设置,令一个K维空间的向量,建立其对观测的关联关系,拟合观测数据。进而再通过拟合后的K维向量,抽象各数据间的关系,这便是衍生出的“表达学习”。 |
2 GAN能够做什么?
为了能够让大家在直观上对GAN有更为准确的认识,接下来将介绍一些利用GAN所实现的应用工作。目前,GAN的工作大量集中于图像相关的领域,以下的几种工作,在使用GAN的情况下获得了更佳的效果:
1) 超清图像的还原
超清图像的还原可以用于图像的加解码及其相关应用。例如,在线视频对其就有很强的应用需求。图1展示了GAN对于超清图像的还原效果,可以看到GAN是目前对超清图片还原效果最佳的模型之一。
图1 低像素图片转为超清图像
2) 交互式绘图
这是一个有趣的应用,如图2所示,根据人所绘的大致轮廓(图左),由GAN绘制对应图像。有感兴趣的,可以翻墙的小伙伴可以自行前去YouTube上观看,以便获得更好的展示效果,传送门:
https://www.youtube.com/watch?v=9c4z6YsBGQ0。
图2 给定轮廓(左)绘制具体图片(右)
3) 图像转译
这类的工作与上一个应用有些类似,不同点在于图像转译有更为明确、直接的应用,例如,根据卫星图像绘制地图,街景还原,材质填充等。在这类应用问题上GAN的表现效果见图3。
图3 由给定图像转译生成对应图像
4) 按文本绘图
文字可以看做是图像的一种抽象描述,试想一下根据文字描述来绘制一张图片的难度。如果交由GAN来做,生成的图像又会是怎样的呢?图4展示了GAN按文本绘图的表现效果。可以看到GAN的绘制效果还是相当震撼的!
图4 按文本绘图
5) 图像的表达学习
有这样一种逻辑运算:戴眼镜的男人-不戴眼镜的男人+不戴眼镜的女人=?经过简单的推理,我们可以大致推断出答案应该是:戴眼镜的女人。如果是计算机去实现又会是怎样的呢?(见图5)
图5 图像的表达学习
可以看到,在这些领域,GAN似乎都取得不错的表现效果,那么,GAN到底是如何实现的呢?接下来,我们将深入GAN,了解其基本框架。
欢迎关注作者微信公众号