本文是Ian Goodfellow在NIPS2016上演讲的总结文稿,是对GAN工作原理,未来发展的一篇简单概述,写的很好,在此博客中我保留了文章结构并其中重要的文字截取并翻译,文章本后还有习题和答案,这里省略,感兴趣的可以下载原文查看。
如果希望观看现场演讲视频的童鞋也可以访问:https://channel9.msdn.com/events/Neural-Information-Processing-Systems-Conference/Neural-Information-Processing-Systems-Conference-NIPS-2016/Generative-Adversarial-Networks
(1)生成模型可以通过多种方式融入强化学习。
(2)生成模型可以用缺失数据进行训练,可以对缺失数据的输入进行预判。半监督学习是减少标签数量的一种策略。生成模型,尤其是GANs,能够很好地执行半监督学习。
(3)生成模型的训练和采样是对我们表达和操纵高维概率分布能力的一次极好的检验。
(4)生成模型,特别是GANs,使机器学习能够处理多模态输出。一些传统的机器学习模型训练方法,如最小化期望输出和模型预测输出之间的均方误差,不能训练出能产生多个不同正确答案的模型。
(5)最后,许多任务本质上都需要从某个分布中实际生成样本。
Examples of some of these tasks that intrinsically require the generation of good samples include:
Single image super-resolution
Tasks where the goal is to create art
Image-to-image translation applications can convert aerial photos into maps or convert sketches to images.
2.1 Maximum likelihood estimation
最大化对数似然与最小化KL散度等价:
2.2 A taxonomy of deep generative models
2.3 Explicit density models
2.3.1 Tractable explicit models
完全可见信念网络(FVBN):FVBN的主要缺点是每次必须生成一个条目。这些步骤不能并行化。GANs被设计成能够并行生成所有x,从而产生更高的生成速度。
非线性独立分量分析(ICA):非线性独立分量分析模型的主要缺点是对函数的选择有限制。GANs的设计对g的要求很少,特别是允许使用比x大的z。
总之,具有明确易处理密度的模型是高度有效的,因为它们允许直接在训练数据的对数似然上使用优化算法。然而,提供易处理密度的模型家族是有限的,不同的家庭具有不同的缺点.
2.3.2 Explicit models requiring approximation
分为两类:一类是使用确定性近似法,变分方法,和那些使用随机逼近的方法马尔可夫链蒙特卡罗方法。
Variational approximations:变分方法定义了一个下界。
变分方法的主要缺点是,当使用近似后验分布太弱或先验分布太弱时,即使有完美的优化算法和有限训练数据,L与真实似然之间的差距可以导致pmodel学习到的是真正的pdata以外的东西.
与FVBNs对比, VAEs更难优化,但GAN同样如此.
马尔可夫链近似:收敛速度很慢,没有明确的方法来检验链是否收敛,在高维空间中,马尔可夫链的效率变低。多步马尔可夫链方法具有较高的计算代价
2.4 Implicit density models
生成随机网络:马尔可夫链往往不能扩展到高维空间,并增加了使用生成模型的计算成本。
2.5 Comparing GANs to other generative models
1.可以并行地生成样本,而不是使用运行时与x的维数成比例。这是相对于fvbn的优势
2.生成器函数的设计几乎没有什么限制。这是相对于玻尔兹曼机的一个优势,因为玻尔兹曼机的概率分布很少允许可操作的马尔可夫链抽样;相对于非线性ICA机,它的生成器必须是可逆的,潜在代码z必须与样本x具有相同的维数
3.不需要马尔可夫链。这是相对于玻尔兹曼机的一个优势。
4.不需要变分边界,某些特定的GAN框架已经被认为是通用的近似器,因此已知GANs是渐近一致的。一些VAE
假设是渐近一致的,但这还没有被证明。
5.主观认为GAN方法比其他方法产生更好的样本。
与此同时,GAN也有了一个新的缺点:训练他们需要达到博弈的纳什均衡,这是一个更加困难的问题而不是优化目标函数。
3.1 The GAN framework
GANs是一个结构化的概率模型,包含隐含变量z和观察变量x。
这个场景最直接地描述为一个博弈,而不是一个优化问题。博弈的解是纳什均衡。
The generator:
注意,函数G的输入不需要对应于深度神经网络的第一层的输入.如果我们希望Pmodel对x空间有完全支持,我们需要z的维度至少与x的维度一样大.
The training process:two gradient steps are made simultaneously: one updating ( D )to reduce J( D ) and one updating ( G ) to reduce J( G ) .
Adam is usually a good choice.
作者认为,在实践中效果最佳的协议是同步梯度下降,每轮D和G各迭代一步。
3.2 Cost functions
3.2.1 The discriminator's cost
目前所有GAN变种中使用的D的损失函数都一致,只是在G的损失函数上有所不同。
这个损失函数与带有sigmoid输入的标准二分类问题的交叉熵损失一致,不同之处在于分类器是通过两个不同的minibatch数据训练。
3.2.2 Minimax
博弈的最简单版本是零和博弈,可以将整个博弈用一个值函数来表示:
零和博弈也叫做minmax博弈,因为它的解包含外层的最小化和内层的最大化:
在博弈中进行学习的过程和最小化数据与模型间的JS散度过程很像。
3.2.3 Heuristic, non-saturating game
实际中minmax博弈性能并不好,因此需要做一定的改造:
经过改造后,博弈不再是零和博弈,不能使用单一的值函数。
3.2.4 Maximum likeliho o d game
3.2.5 Is the choice of divergence a distinguishing feature of GANs?
关于GAN产生的图像比VAE更加清晰的原因,早先的认为是VAE最小化的是KL散度,而GAN最小化的是JS散度。JS散度是非对称的,Dkl (pdata ||pmodel )和Dkl (pmodel ||pdata )是不等的,Dkl (pdata ||pmodel )趋向于在数据存在的所有地方都给与高概率,而Dkl (pmodel ||pdata )趋向于给所有没有数据的地方都给与低概率,从这个观点上看,Dkl (pmodel ||pdata )更适合产生高清晰的图像。
但近期的研究(如F-GAN)表明,散度的选择与GAN是否生成清晰图像关系不大,因此为何GAN能产生清晰的图像原因还不明确。
3.2.6 Comparison of cost functions
最大似然对策在代价上给出了非常高的方差,大部分的代价梯度来自于z的非常少的样本,这些样本对应的是最可能是真实的而不是虚假的样本。启发式设计的非饱和成本具有较低的样本方差,这可以解释为什么它在实践中更成功。这表明方差约简技术可能是改进GAN性能的一个重要研究领域,尤其是基于最大似然的GAN。
3.3 The DCGAN architecture
deep, convolution GAN特点:
3.4 How do GANs relate to noise-contrastive estimationand maximum likelihood?
这三种策略都可以解释为具有相同值函数的极大极小博弈策略。最大的差异在于Pmodel的位置。对于GAN,G是Pmodel,而对于NCE和MLE, Pmodel是D的一部分。除此之外,方法之间的区别在于更新策略。GAN用梯度下降法对博弈双方进行学习。MLE使用梯度下降法学习D,但对G使用启发式更新规则。具体地说,在每个D更新步骤之后,MLE复制在D内学习的密度模型,并将其转换为采样器,用G。NCE从不更新G,G对于NCE只是固定的噪声源。
训练GAN的一些技巧也可以查看https://github.com/soumith/ganhacks。
4.1 Train with labels
以任何方式、形状或形式使用标签,几乎总是会显著提高模型生成的样本的主观质量,虽然目前还不是很清楚原因。
4.2 One-sided label smoothing
Label smoothing已被证明在卷积网络物体识别中可以作为一种很好的正则化手段。它不会让模型在训练集中去选择一个不正确的类,而是减少正确类别的置信度。该方法还可以帮助鉴别器更好的低于对抗样本的攻击。在实际应用中注意不要对假样本使用Label smoothing。
4.3 Virtual batch normalization
Normalization应该作为模型的一个组成部分,批处理规范化非常有帮助,但是对于GANs有一些不好的方面。使用不同的小批数据来计算每一步训练的标准化数据会导致nomalization常量的波动,当minibatch很小是,这种波动会很大。
解决方法一是 Reference batch normalization:将网络运行两次,一次是使用reference examples的minibatch,该minibatch在训练开始前采样并且不会改变,另外一次是在当前的minibatch。两个batch的特征normalize都是使用reference batch中计算出来的均值和方差,这种方法的缺点是模型可能在reference batch上过拟合。
为了克服以上缺点提出了virutal batch normalization:normalization数据是联合使用两个batch的,Reference batch normalization和virutal batch normalization都具有这样的特性:训练minibatch中的所有示例都是独立处理的,生成器生成的所有示例(引用批处理的示例除外)都是i.i.d。
4.4 Can one balance G and D ?
D胜过G是才好。有时当D太准确时,G会出现gradient vanish,正确的解决不是限制D的能力,而是使用不会出现gradient vanish的参数化博弈。有时当D置信度很高时,G的梯度会变得很大,可以使用4.2的one-sided label smoothing来解决。
实践中在每一轮迭代中,D可以训练多次保持较优性能,G只训练一次。
5.1 Non-convergence
当博弈双方在function space中更新参数是能同时梯度下降收敛,但时间中参数的更新往往在parameter space中进行,不一定能满足凸性,因此GAN经常震荡。在GAN非收敛的问题中最严重的就是模式坍塌。
5.1.1 Mode collapse
当生成器学习将多个不同的输入Z映射到同意个输出点是可能会出现模式坍塌,完全的模式坍塌少见,但是部分的模式坍塌很普遍,如生成器生成的多幅图片中包含同样的颜色和纹理。
模式坍塌可能由于maxmin的解与minmax的解不一致导致。原始模型如下
交换minmax后为:
关于生成器的最小化现在依赖于内层的优化过程,生成器会被要求将多个z值映射到同一个x以使鉴别器取得最大值。
因为以上原因,GAN通常被用来产生有限的少量类别输出,目前StackGAN可以生成更多类别的输出。
克服这一问题的一种尝试是使用minibatch features。Minibatch GANs 很大程度上减少了模式坍塌问题的影响。
unrolled GANs是另外一种解决模式坍塌的思路。
5.1.2 Other games
如果我们关于如何理解一个连续的、高维的非凸对策是否收敛的理论能够得到改进,或者我们能够开发出比同时梯度下降更可靠的收敛算法,那么除了GANs之外的几个应用领域将会受益:
.......
5.2 Evaluation of generative models
评估GAN的性能目前还比较难,较高的似然可能产生较差的样本。
5.3 Discrete outputs
GAN设计的要求是生成器必须是可微的,这就意味着生成器不能产生离散的输出数据,如one-hot词或字符表示。如果去除这一限制将能解锁GAN for NLP领域,目前至少有三个途径:
1.使用强化算法(Williams, R. J. (1992). Simple statistical gradient-following algorithms connec-tionist reinforcement learning. Machine Learning )
2.使用concrete distribution(The concrete distribu-tion: A continuous relaxation of discrete random variables) 或者Gumbel-softmax(Categorical reparameterization with
gumbel-softmax)
3。训练生成的样本连续值可以解码为离散值(如直接采样词嵌入)
5.4 Semi-supervised learning
目前,STOA的GAN半监督学习是feature matching GANs,其基本思想是将n分类问题增加一个fake image分类转变为n+1分类问题,所有real类别叠加起来得到real的概率,将分类转变为GAN博弈。这种real-vs-fake分类可以在无标记数据上训练。
5.5 Using the code
GANs学习图像x的表示z,这种表示可以捕获x有用的高级抽象语义属性,但是使用这种信息目前还比较困难呢。
5.6 Developing connections to reinforcement learning
探寻GAN和强化学习之间的联系,目前研究成果还不多。