GAN论文精读
GAN论文精读
GAN(生成对抗网络),包含有两个模型,一个是生成模型(Generative model),另一个是判别模型(Discriminative model)。生成模型的任务是生成看起来自然真实、和原始数据集相似的数据,而判别模型的任务是判断一张图片是真实的还是生成的。两个模型相互博弈,最终生成模型生成的图片越来越逼真,判别模型判断的越来越准确。
摘要
简介
我们提出了一个通过对抗过程来估计生成模型的新框架,在该框架中,我们同时训练了两个模型:捕获数据分布的生成模型G和估计样本来自训练数据的概率的鉴别模型D。G的训练过程是使D犯错的可能性最大化。该框架对应于minimax两人游戏(双方博弈)。在任意函数G和D的空间中,存在唯一的解决方案,其中G恢复训练数据分布,并且D随处都等于1/2。在G和D由多层感知机定义的情况下,整个系统可以通过反向传播进行训练。在训练或样本生成期间,不需要任何马尔科夫链或展开的近似推理网络。实验通过对生成的样本进行定性和定量评估,证明了该框架的潜力。
分析
GAN是一个对抗学习,主要通过生成器和判别器两个模型相互博弈,最终生成器生成的图片越来越逼真,判别器判断的越来越准确。GAN的优点是不需要马尔科夫链或展开的近似推理网络,缺点是训练过程不稳定,容易出现模式崩溃。
导论
简介
深度学习的希望是发现丰富的,层次化的模型,该模型表示人工智能应用中遇到的各种数据的概率分布,例如自然图像,包含语音的音频波形以及自然语言语料库中的符号。到目前为止,深度学习中最显著的成功涉及鉴别模型,通常是将高纬度,丰富的感知输入映射到类别标签的模型。这些惊人的成功主要是基于反向传播和dropout算法,使用了分段线性单元,它们具有特别良好的梯度,深度生成模型的影响较小,这是由于难以估计在最大似然估计和相关策略中出现的许多棘手的概率计算,并且由于难以在生成上下文中利用分段线性单位的优势。我们提出了一种避免这些困难的新的生成模型估计程序。
在提到的对抗网络框架中,生成模型对抗着一个对手:一个学习去判别一个样本是来自模型分布还是数据分布的判别模型。生成模型可以被认为是一个伪造团队,试图产生假货并在不被发现的情况下使用它,而判别器类似于警察,试图检测假币。在这个游戏中竞争驱使两个团队改进他们的方法,直到真假难分为止。
这个框架可以针对多种模型和优化算法提供特定的训练算法。在这篇文章中,我们探讨了生成模型通过将随机噪声传输到多层感知机来生成样本的特例,同时判别模型也是通过多层感知机实现的。我们称这个为对抗网络。在这种情况下,我们可以仅使用非常成熟的反向传播和丢弃算法训练两个模型,生成模型在生产样本时只使用前向传播算法,并且不需要近似推理和马尔科夫链作为前提。
分析
目前深度学习中优秀的是鉴别模型D,但是生成模型的效果不好。这是由于在处理最大似然估计等概率计算时,以及在生成上下文中利用分段线性单位的优势时,存在困难。因此我们提出了一种避免这些困难的新的生成模型估计程序。生出器主要是产生一些虚假的数据来迷惑判别器,而判别器则是判断一张图片是真实的还是生成的。两个模型相互博弈,最终生成器生成的图片越来越逼真,判别器判断的越来越准确。GAN可以针对多种模型和优化算法提供特定的训练算法,不需要近似推理和马尔科夫链作为前提。生成器的输入时随机噪声,输出是一张图片,判别器的输入是一张图片,输出是一个概率值,表示这张图片是真实的概率。
相关工作
简介
直到最近,大多数有关深度生成模型的工作都集中在提供一个概率分布函数的参数规范的模型上。然后可以通过最大化对数似然来训练模型。在这个模型家族中,最成功的也许是深部的玻尔兹曼机。这些困难推动了“生成机”的发展,这些模型不能明确表示可能性,但能够从所需分布中生成样本。生成随机网络[4]是生成机器的一个示例,可以使用精确的反向传播而不是玻尔兹曼机器所需的众多近似值对其进行训练。通过消除生成随机网络中使用的马尔可夫链,这项工作扩展了生成机器的概念。
生成过程中的反向传播求导,通过观察可以发现:
在研究这项工作时,我们还没有意识到 Kingma 和 Welling 和Rezende等人的工作。已经开发了更通用的随机反向传播规则,允许人们通过具有有限方差的高斯分布进行反向传播,并反向传播至协方差参数和均值。这些反向传播规则可以使人们了解发生器的条件方差,在这项工作中我们将其视为超参数。 Kingma和Welling 和Rezende等使用随机反向传播来训练变分自动编码器(VAE)variational autoencoders 。
像生成对抗网络一样,变分自编码器将可区分的生成网络与第二个神经网络配对。与生成对抗网络不同,VAE中的第二个网络是执行近似推理的识别模型。 GAN需要通过可见单元进行区分,因此不能对离散数据建模,而VAE需要通过隐藏单元进行区分,因此不能具有离散的潜在变量。存在其他类似VAE的方法,但与我们的方法关系不大。
先前的工作还采用了使用鉴别准则discriminative criterion来训练生成模型的方法。这些方法使用的标准对于深度生成模型来说是很难的。这些方法即使对于深层模型也很难近似,因为它们涉及概率比率,而概率比率无法使用下限概率的变分近似来近似。噪声对比估计 Noise-contrastive estimation(NCE)涉及通过学习权重来训练生成模型,这些权重使该模型可用于区分固定噪声分布中的数据。使用先前训练的模型作为噪声分布可以训练一系列质量不断提高的模型。可以将其视为一种非正式竞赛机制,其精神类似于对抗网络游戏中使用的正式竞赛。 NCE的关键局限在于其“鉴别器”是由噪声分布和模型分布的概率密度之比定义的,因此需要具有通过这两种密度进行评估和反向传播的能力。
先前的一些工作使用了使两个神经网络竞争的一般概念。最相关的工作是最小化可预测性。在最小化可预测性方面,将神经网络中的每个隐藏单元训练为与第二个网络的输出不同,第二个网络的输出会根据所有其他隐藏单元的值来预测该隐藏单元的值。
这项工作在三个重要方面不同于可预测性的最小化:1)在这项工作中,网络之间的竞争是唯一的训练标准,并且足以单独训练网络。可预测性最小化只是一个正则化器,它鼓励神经网络的隐藏单元在完成其他任务时在统计上独立,它不是主要的培训标准。 2)竞争的性质不同。为了使可预测性最小化,比较了两个网络的输出,其中一个网络试图使输出相似,而另一个网络试图使该输出不同。有问题的输出是单个标量。问题中的输出是一个标量。在GAN中,一个网络会生成一个丰富的高维向量,该向量将用作另一个网络的输入,并尝试选择另一个网络不知道如何处理的输入。3)学习过程的规范不同。可预测性最小化被描述为目标函数要最小化的优化问题,学习接近目标函数的最小值。 GAN是基于最小极大博弈而不是优化问题,并且具有一种价值函数,一个代理人试图最大化该价值,而另一个代理人试图最小化。游戏在一个鞍点处终止,该鞍点对于一个玩家的策略而言是最小值,对于另一个玩家的策略而言是最大值。
生成对抗网络有时与“对抗示例”的相关概念相混淆。对抗性示例是通过直接在分类网络的输入上使用基于梯度的优化找到的示例,以便查找与尚未分类的数据相似的示例。这与当前的工作不同,因为对抗性示例不是训练生成模型的机制。取而代之的是,对抗性示例主要是一种分析工具,用于显示神经网络以有趣的方式运行,通常以高置信度自信地对两个图像进行分类,即使人类观察者无法察觉它们之间的差异。此类对抗性示例的存在确实表明,生成式对抗性网络训练可能是低效的,因为它们表明,有可能使现代鉴别网络自信地识别某个类别,而无需模仿该类别的任何人类可感知的属性。
分析
对比了之前的一些网络模型与技术,解释了GAN在此基础上的改进与创新。GAN是一个端到端的网络模型,GAN是通过学一个模型来近似分布。但缺点是不知道分布是什么样子,但计算上比较容易,对f的期望求导等价于对f自己求导,通过误差反向传递对GAN进行求解。
对抗网络
简介
模型都是多层感知器时,对抗建模框架最容易应用。要了解发生器在数据x上的的分布,我们在输入噪声变量z上定义一个先验(z),然后将到数据空间的映射表示为G(z;θg),其中G是一个微分函数,由具有参数θg的多层感知器表示。我们还定义了第二个多层感知器D(x;θd),它输出一个标量。 D(x)表示x来自数据而非的概率。我们训练D来最大化为G训练样本和样本分配正确标签的可能性。我们同时训练G来最小化。换句话说,D和G的训练是关于值函数V(G,D)的minimax二人博弈。
在下一部分中,我们将对对抗网进行理论分析,本质上表明,当G和D具有足够的容量(即在非参数范围内)时,训练准则允许人们恢复生成数据的分布。有关该方法的较不正式,较教学性的说明,请参见图1。在实践中,我们必须使用迭代的数值方法来实现这种博弈过程。在训练的内部循环中将D优化到完成是计算上的问题,并且在有限的数据集上会导致过度拟合。取而代之的是,我们在优化D的k个步骤和优化G的一个步骤之间交替进行。只要G的变化足够缓慢,就可以使D保持在其最佳解附近。该过程在算法1中正式提出。
在实践中,等式1可能无法为G提供足够的梯度来学习。在学习的早期,当G较差时,D可以以高置信度拒绝样本,因为它们明显不同于训练数据。在这种情况下,饱和。与其训练G以使最小,我们可以训练G以使)最大化。该目标函数使G和D的动力学稳定点相同,但在学习早期就提供了更强的梯度。
分析
主要给出了GAN的目标函数以及对GAN目标函数的求解,生成器的主要任务是让判别器出错,也就是让目标函数的值最小;判别器的任务是正确判别输入图像是真实的还是生成的,也就是使目标函数的值最大。双方进行博弈,最终达到一个平衡。目标函数就是minimax游戏,给定判别器,找到使目标函数最小化的生成器,给定生成器,找到使目标函数最大化的判别器。
理论结果
KL散度
KL散度是用来度量两个概率分布P和Q之间的差异性的非对称性的指标。KL散度越小,两个概率分布越接近。
KL散度的性质:非负性和不对称性,即KL(P||Q)≠KL(Q||P)。
JSD
JSD是KL散度的一种改进,JSD是对称的,其取值是0到1之间,而KL散度是非对称的。JSD越小,两个概率分布越接近。
JSD与KL散度的关系
简介
主要是GAN整个模型的数学公式推导以及证明,涉及KL散度、JSD等,具体的证明过程可以参考原文。最后还给出了模型在MNIST数据集以及TFD数据集上的效果,可以看出对抗网络效果还是不错的。
实验
简介
我们训练了对抗网络,在多个数据集上,包括MNIST,Toronto Face Database(TFD)和CIFAR-10 。生成器网络混合使用了relu和sigmod,作为激活函数,而鉴别器网络使用了maxout 激活。dropout被应用于训练鉴别器网络。虽然我们的理论框架允许在生成器的中间层使用dropout和其他噪声,但我们仅将噪声用作生成器网络最底层的输入。
我们通过将高斯Parzen窗口拟合到G生成的样本中,估计了pg下测试集数据的概率,并且报告这个分布下的对数似然。在验证集上进行交叉验证,得到高斯函数的σ参数。该过程在Breuleux等人的中被引入,并用于各种确切似然是不可处理的生成模型。结果如表1所示。这种估计可能性的方法方差有点大,并且它在高维空间中表现不佳但它是我们所知的最好的方法。生成模型的进步可以尝试,但不能估计将来研究的可能性,比如激励进一步研究如何评估这些模型。在图2和图3中,我们展示了训练后从生成器网络中提取的样本。虽然我们并没有声称这些样本比现有方法生成的样本更好,但我们相信这些样本至少与文献中最好的生成模型具有竞争力,并突出了对抗框架的潜力。
分析
说明GAN在数据集上的效果不错,并且具有不小的未来潜力的模型,以后可能会有更好的效果,得到更好的应用。
优点和缺点
简介
这个新框架相对于以前的建模框架有优点也有缺点。缺点主要是没有显式表示pg(x),并且D在训练时必须与G很好地同步(特别是G在没有更新D的情况下一定不能训练太多,以避免“Helvetica场景”,这时G会将太多的z值映射到相同的x值,从而有足够的多样性来建模pdata),就像玻尔兹曼机器的负链必须在学习步骤之间保持更新一样。优点是不需要马尔可夫链,只使用backprop来获得梯度,在学习过程中不需要推理,并且可以将各种各样的函数纳入模型。表2总结了生成对抗网络与其他生成建模方法的比较。
前面提到的优势主要是计算方面的。对抗模型也可能获得一些统计优势,因为生成器网络不直接使用数据示例更新,而只使用流经鉴别器的梯度。这意味着输入的组件不会直接复制到生成器的参数中。对抗网络的另一个优点是,它们可以表示非常尖锐,甚至退化的分布。而基于马尔可夫链的方法要求分布具有模糊性,以便链能够在模式之间混合。
分析
优点
- 不需要马尔可夫链,回避了近似计算棘手的概率计算
- 可以将各种各样的函数纳入模型
- 端到端的网络模型
- 能够训练任何一种生成器网络
- 无须设计遵循任何种类的因式分解的模型
缺点
- 需要同步训练,否则会产生Helvetica场景
- 不知道数据分布是什么样子
- 在学习过程中容易产生崩溃问题
- 不容易收敛,模型过于自由不可控
结论和未来工作
- 条件GAN
- 图像编辑
- 类似图像填充和超分辨率
- 半监督学习
- 改进训练方式