1. 简介
首先简要介绍一下生成模型(Generative model)与判别模型(Discriminative mode)的概念:
- 生成模型:对联合概率进行建模,从统计的角度表示数据的分布情况,刻画数据是如何生成的,收敛速度快,例如朴素贝叶斯,GDA,HMM等。
- 判别模型:对条件概率 P(Y|X) 进行建模,不关心数据如何生成,主要是寻找不同类别之间的最优分类面,例如LR,SVM等。
判别模型在深度学习乃至机器学习领域取得了巨大成功,其本质是将样本的特征向量映射成对应的label;而生成模型由于需要大量的先验知识去对真实世界进行建模,且先验分布的选择直接影响模型的性能,因此此前人们更多关注于判别模型方法。生成式对抗网络(Generative Adversarial Networks,GANs)是蒙特利尔大学的Goodfellow Ian于2014年提出的一种生成模型, 在之后引起了业内人士的广泛关注与研究。
GANs中包含了两个模型,一个是生成模型
G
,另一个是判别模型
- 生成模型 G :不断学习训练集中真实数据的概率分布,目标是将输入的随机噪声转化为可以以假乱真的图片(生成的图片与训练集中的图片越相似越好)
- 判别模型
D :判断一个图片是否是真实的图片,目标是将生成模型 G 产生的“假”图片与训练集中的“真”图片分辨开。
GANs的实现方法是让
2. 生成对抗网络
GANs中生成模型和判别模型的选择没有强制限制,在Ian的论文中,判别模型
D
和生成模型
原论文在参数的更新过程,是对 D 更新
在对判别模型
D 的参数进行更新时:对于来自真实分布 pdata 的样本 x 而言,我们希望D(x) 的输出越接近于1越好,即 logD(x) 越大越好;对于通过噪声 z 生成的数据G(z) 而言,我们希望 D(G(z)) 尽量接近于0(即 D 能够区分出真假数据),因此log(1−D(G(z))) 也是越大越好,所以需要 maxD 。在对生成模型 G 的参数进行更新时:我们希望
G(z) 尽可能和真实数据一样,即 pg=pdata 。因此我们希望 D(G(z)) 尽量接近于1,即 log(1−D(G(z))) 越小越好,所以需要 minG 。需要说明的是, logD(x) 是与 G(z) 无关的项,在求导时直接为0。
原论文中对GANs理论上的有效性进行了分析,即当固定
G
更新
下面这张图解释了这一博弈过程:
第一阶段只有判别模型
D
参与。将训练集中的样本
下图给出了一个更为直观的解释:
其中,蓝色虚线为判别模型
论文中给出的算法流程如下:
3. GANs的应用
对抗网络的一个主要缺点是训练过程不稳定,为了提高训练的稳定性,文献[2]提出了 Conditional Generative Adversarial Nets (CGAN),通过把无监督的 GAN 变成半监督或者有监督的模型,从而为 GAN 的训练加上一点目标,其优化的目标函数为:
CGAN在生成模型
G
和判别模型
文献[3]提出了一种Deep Convolutional Generative Adversarial Networks(DCGAN),将对抗网络与卷积神经网络相结合进行图片生成,DCGAN模型的结构如下:
DCGANs的基本架构就是使用几层“反卷积”(Deconvolution)。传统的CNN是将图像的尺寸压缩,变得越来越小,而反卷积是将初始输入的小数据(噪声)变得越来越大(但反卷积并不是CNN的逆向操作),例如在上面这张图中,从输入层的100维noise,到最后输出层64x64x3的图片,从小维度产生出大的维度。反卷积的示意图如下所示,2x2的输入图片,经过3x3 的卷积核,可产生4x4的feature map:
由于反卷积存在于卷积的反向传播中。其中反向传播的卷积核矩阵是前向传播的转置,所以其又可称为transport convolution。只不过我们把反向传播的操作拿到了前向传播来做,就产生了所谓的反卷积一说。但是transport convolution只能还原信号的大小,不能还原其值,因此不是真正的逆操作。
DCGAN的另一个改进是对生成模型中池化层的处理,传统CNN使用池化层(max-pooling或mean-pooling)来压缩数据的尺寸。在反卷积过程中,数据的尺寸会变得越来越大,而max-pooling的过程并不可逆,所以DCGAN的论文里并没有采用池化的逆向操作,而只是让反卷积的滑动步长设定为2或更大值,从而让尺寸按我们的需求增大。另外,DCGAN模型在
G
和
文献[3]将GANs应用于文本转图像(Text to Image),从而可根据特定输入文本所描述的内容来产生特定图像。因此,生成模型里除了输入随机噪声之外,还有一些特定的自然语言信息。所以判别模型不仅要区分样本是否是真实的,还要判定其是否与输入的语句信息相符。网络结构如下图所示:
以下是实验的结果,同时可看到模型仍然存在Mode Collapse的问题:
4. 文献
- Goodfellow I J, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]// International Conference on Neural Information Processing Systems. MIT Press, 2014:2672-2680.
- Mirza M, Osindero S. Conditional generative adversarial nets[J]. arXiv preprint arXiv:1411.1784, 2014.
- Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks[J]. arXiv preprint arXiv:1511.06434, 2015.
- Reed S, Akata Z, Yan X, et al. Generative adversarial text to image synthesis[J]. arXiv preprint arXiv:1605.05396, 2016.