美文网首页深度学习
Generative Adversarial Nets(译)

Generative Adversarial Nets(译)

作者: Eric_py | 来源:发表于2017-12-13 18:14 被阅读28次

                                                              生成式对抗网络

    友情提示:

    <生成式对抗网络>论文笔记 & 代码解析可参考如下网址

    http://blog.csdn.net/wspba/article/details/54582391

    摘要

    我们提出了一个通过对抗过程估计生成模型的新框架,在新框架中我们同时训练两个模型:一个用来捕获数据分布的生成模型G,和一个用来估计样本来自训练数据而不是G的概率的判别模型D,G的训练过程是最大化D产生错误的概率。这个框架相当于一个极小化极大的双方博弈。在任意函数G和D的空间中存在唯一的解,其中G恢复训练数据分布,并且D处处都等于1/2。在G和D由多层感知器定义的情况下,整个系统可以用反向传播进行训练。在训练或生成样本期间不需要任何马尔科夫链或展开的近似推理网络。 实验通过对生成的样品进行定性和定量评估来展示这个框架的潜力。

    1.引言

    深度学习的任务是寻找丰富的层次模型,能够在人工智能领域里用来表达各种数据的概率分布,例如自然图像,包含语音的音频波形和自然语言语料库中的符号等。到目前为止,在深度学习领域,目前为止最成功的的模型之一就是判别式模型,通常它们将高维丰富的感知器输入映射到类标签上。这些显著的成功主要是基于反向传播和丢弃算法来实现的,特别是具有特别良好梯度的分段线性单元。由于在最大似然估计和相关策略中出现的许多难以解决的概率计算的困难,以及很难利用在生成上下文中时使用分段线性单元的好处,深度生成模型的影响很小。我们提出一个新的生成模型估计程序,来分步处理这些难题。

    在提到的对抗网络框架中,生成模型对抗着一个对手:一个学习去判别一个样本是来自模型分布还是数据分布的判别模型。生成模型可以被认为是一个伪造团队,试图产生假币并在不被发现的情况下使用它,而判别模型类似于警察,试图检测假币。在这个游戏中的竞争驱使两个团队改进他们的方法,直到真假难分为止。

    这个框架可以针对多种模型和优化算法提供特定的训练算法。在这篇文章中,我们探讨了生成模型通过将随机噪声传输到多层感知机来生成样本的特例,同时判别模型也是通过多层感知机实现的。我们称这个特例为对抗网络。在这种情况下,我们可以仅使用非常成熟的反向传播和丢弃算法训练两个模型,生成模型在生成样本时只使用前向传播算法。并且不需要近似推理和马尔可夫链作为前题。

    2.相关工作

    含隐变量的有向图模型可以由含隐变量的无向图模型替代,例如受限制波兹曼机(RBMs),深度波兹曼机(DBMs)和它们很多的变种。这些模型之间的相互影响可以被表达为非标准化的势函数的乘积,再通过随机变量的所有状态的全局整合来标准化。这个数量(配分函数)和它的梯度的估算是很棘手的,尽管他们能够依靠马尔可夫链和蒙特卡罗(MCMC)算法来估计,同时依靠MCMC的学习算法的混合也会引发一个严重的问题。

    深度信念网络(DBNs)是一个包含一个无向层和若干有向层的混合模型。当使用一个快速近似的逐层训练法则时,DBNs 会引发无向模型和有向模型相关的计算难题。

    不受对数似然函数估计或约束的替代准则已经被提出来了,例如分数匹配和噪音压缩评估(NCE)。这些都需要先验概率密度来分析指定一个规范化的常量。应该注意的是许多有趣的带有一些隐层变量的生成模型(如DBNs和DBMs),它们甚至不需要一些难以处理的非标准化的概率密度先验知识。一些模型如自动编码降噪机和压缩编码的学习准则与分数匹配在RBMs上的应用非常相似。在NCE中,as in this work,使用一个判别训练准则来拟合一个生成模型。然而,生成模型常常被用来判别从一个固定噪音分布中抽样生成的数据,而不是拟合一个独立的判别模型。由于NCE使用一个固定的噪音分布,仅仅是从观测变量的一个小子集中学习到一个大致正确的分布后,模型的学习便急剧减慢。

    最后,一些技术并没有用来明确定义概率分布,而是用来训练一个生成器来从期望的分布中拟合出样本。这个方法优势在于这些生成器能够被设计使用反向传播算法训练。这个领域最近比较突出的工作包含生成随机网络(GSN)框架,它扩展了广义的除噪自动编码器:两者都可以看作是定义了一个参数化的马尔可夫链,即一个通过执行生成马尔科夫链的一个步骤来学习生成器参数的算法。同GSNs相比,对抗网络框架不需要使用马尔可夫链来采样。由于对抗网络在生成阶段不需要循环反馈信息,它们能够更好的利用分段线性单元,这可以提高反向传播的效率,但当使用循环反馈时却存在不受控激活的问题。大部分利用反向传播算法来训练生成器的例子包括变分贝叶斯自动编码和随机反向传播。

    3.对抗网络

    当模型都是多层感知器时,对抗模型框架是最直接应用的。为了学习生成器关于数据x上的分布Pg, 我们定义输入噪声的先验变量Pz(z),然后使用G(z;θg)来代表数据空间的映射,这里G是一个由含有参数θg 的多层感知机表示的可微函数。我们再定义了一个多层感知机D(x;θd)用来输出一个单独的标量。D(x) 代表x来自于真实数据分布而不是Pg的概率。我们训练D来最大化分配正确标签给来自于训练样例和由G生成的样例的概率。我们同时训练G来最小化log(1−D(G(z))):

    换句话说,D和G的训练是关于值函数V(G,D)的极小化极大的二人博弈问题:

    公式1

    在下一节中,我们提出了对抗网络的理论分析,基本上表明基于训练准则可以恢复数据生成分布,因为G和D被给予足够的容量,即在非参数极限。如图1展示了该方法的一个非正式却更加直观的解释。实际上,我们必须使用迭代数值方法来实现这个过程。在训练的内部循环中优化D到完成的计算是禁止的,并且有限的数据集将导致过拟合。相反,我们在优化D的k个步骤和优化G的一个步骤之间交替。只要G变化足够慢,就可以保证D保持在其最佳解附近。该过程如算法1所示。

    实际上,方程1可能无法为G提供足够的梯度来学习。训练初期,当G的生成效果很差时,D会以高置信度来拒绝生成样本,因为它们与训练数据明显不同。在这种情况下,log(1−D(G(z)))饱和。因此我们选择最大化logD(G(z))而不是最小化log(1−D(G(z))) 来训练G,该目标函数使G和D的动力学稳定点相同,并且在训练初期,该目标函数可以提供更强大的梯度。

    图1:训练对抗式生成网络时,同时更新判别分布(D,蓝色虚线)使D能区分数据生成分布Px(黑色虚线)中的样本和生成分布Pg (G,绿色实线) 中的样本。下面的水平线为均匀采样z的区域,上面的水平线为x的部分区域。朝上的箭头显示映射x=G(z)如何将非均匀分布Pg作用在转换后的样本上。G在Pg高密度区域收缩,且在Pg的低密度区域扩散。(a)考虑一个接近收敛的对抗的模型对:Pg与Pdata相似,且D是个部分准确的分类器。(b)算法的内循环中,训练D来判别数据中的样本,收敛到:D∗(x)=Pdata(x) /(Pdata(x)+Pg(x))。(c)在G的1次更新后,D的梯度引导G(z)流向更可能分类为数据的区域。(d)训练若干步后,如果G和D性能足够,它们接近某个稳定点并都无法继续提高性能,因为此时Pg=Pdata。判别器将无法区分训练数据分布和生成数据分布,即D(x)=1/2。

    4.理论结果

    当z∼Pz时,获得样本G(z),生成器G隐式的定义概率分布Pg为G(z)获得的样本的分布。因此,如果模型容量和训练时间足够大时,我们希望算法1收敛为Pdata的良好估计量。本节的结果是在非参数设置下完成的,例如,我们通过研究概率密度函数空间中的收敛来表示具有无限容量的模型。

    我们将在4.1节中显示,这个极小极大问题的全局最优解为Pg=Pdata。我们将在4.2节中展示使用算法1来优化等式1,从而获得期望的结果。

    算法1.生成对抗网络的minibatch随机梯度下降训练。判别器的训练步数,k是一个超参数。在我们的试验中使用k=1,使消耗最小。

    4.1全局最优:Pg=Pdata

    首先任意给定生成器G,考虑最优判别器D。

    命题1.固定G,最优判别器D为:

    公式2

    证明.给定任意生成器G,判别器D的训练标准为最大化目标函数V(G,D)数量

    公式3

    对于任意的(a,b)∈R^2∖{0,0},函数y→alog(y)+blog(1−y)在[0,1]中的a/(a+b) 处达到最大值。无需在Supp(Pdata)∪Supp(Pg)外定义判别器,证毕。

    注意到,判别器D的训练目标可以看作为条件概率P(Y=y|x)的最大似然估计,当y=1时,x来自于Pdata;当y=0时,x来自Pg。公式1中的极小化极大问题可以变形为:

    公式4

    定理1.当且仅当Pg=Pdata时,C(G)达到全局最小。此时,C(G)的值为−log4。

    证明.Pg=Pdata时,D∗G(x)=1/2(公式2)。再根据公式4可得,当D∗G(x)=1/2时,C(G)=log1/2+log1/2=−log4。为了看仅当Pg=Pdata时C(G)是否是最优的,观测:

    然后从C(G)=V(D∗G,G)减去上式,可得:

    公式5

    其中KL为Kullback–Leibler散度。我们在之前的表达式中识别出了模型分布和数据生成过程之间的Jensen–Shannon散度:

    公式6

    由于两个分布之间的Jensen–Shannon散度总是非负的,并且当两个分布相等时,值为0。因此C∗=−log(4)为C(G)的全局极小值,并且唯一解为Pg=Pdata,即生成模型能够完美的复制数据的生成过程。

    4.2算法1的收敛性

    命题2.如果G和D有足够的性能,对于算法1中的每一步,给定G时,判别器能够达到其最优,并且通过更新Pg来提高这个判别准则,则Pg收敛于Pdata。

    实际上,对抗网络通过函数G(z;θg)表示一个有限的Pg分布族,我们优化θg而不是Pg本身。使用多层感知器来定义G引入参数空间中的多个关键点。然而,多层感知器在实践中的优异表现表明,尽管缺乏理论保证,它们仍是一个合理的可用模型。

    5.实验

    我们在一系列包括MNIST、多伦多面孔数据库(TFD)和CIFAR-10的数据集上来训练对抗网络。生成器网络使用的激活函数包括修正线性激活(ReLU)和sigmoid 激活,而判别器网络使用maxout激活。Dropout被用于训练判别器网络。虽然我们的理论框架可以在生成器的中间层使用dropout和其他噪声,但是这里仅在生成器网络的最底层使用噪声输入。

    我们通过对G生成的样本应用高斯Parzen窗口并计算此分布下的对数似然,来估计测试集数据的概率。高斯的σ参数通过对验证集的交叉验证获得。Breuleux等人引入该过程且用于不同的精确似然难以处理的生成模型上。结果显示在表1中。该方法估计似然的方差较大且在高维空间中表现不好,但据我们所知却是目前最有效的办法。生成模型的优点是可采样而不直接估计似然,从而促进了对如何评估该模型的进一步研究。

    表1:基于Parzen窗口的对数似然估计。MNIST上报告的数字是测试集上的平均对数似然以及在样本上平均计算的标准误差。在TFD上,我们计算数据集的不同折之间的标准误差,在每个折的验证集上选择不同的σ。在TFD上,在每一个折上对σ进行交叉验证并计算平均对数似然函数。对于MNIST,我们与真实值(而不是二进制)版本的数据集的其他模型进行比较。

    训练后的生成样本如下图2、图3所示。虽然未声明该方法生成的样本优于其它方法生成的样本,但我们相信这些样本至少和文献中更好的生成模型相比依然具有竞争力,也突出了对抗框架的潜力。

    图2:来自模型的样本可视化。最右边的列示出了相邻样本的最近训练示例,以便证明该模型没有记住训练集。样本是完全随机抽取,而并非精心挑选的。与其他大多数深度生成模型的可视化不同,这些图像显示来自模型分布的实际样本,not conditional means given samples of hidden units.此外,这些样本是不相关的,因为,采样过程并不依赖马尔科夫链混合。a) MNIST;b) TFD;c) CIFAR-10(全连接模型);d) CIFAR-10(卷积判别器和“解卷积”生成器) 图3:通过在完整模型的z空间的坐标之间进行线性内插获得的数字。

    6.优点和缺点

    这个新框架相比以前的建模框架有其优缺点。缺点主要是Pg(x)的隐式表示,而且在训练期间,D和G必须很好地同步(特别地,不更新D时G不必过度训练,为避免“Helvetica情景”。否则,x值相同时G丢失过多z值以至于模型Pdata多样性不足,正如玻尔兹曼机的负向链在学习步骤间的必须持续不断地更新。其优点是无需马尔科夫链,仅用反向传播来获得梯度,学习间无需推理,且模型中可融入多种函数。表2总结了生成对抗网络与其他生成建模方法的比较。

    表2:生成建模中的挑战:对涉及模型的每个主要操作的深度生成建模的不同方法遇到的困难的总结。

    7.结论与未来工作

    该框架允许许多直接的扩展:

    1.条件生成模型p(x∣c)可以通过将c作为G和D的输入来获得。

    2.给定x,可以通过训练一个辅助网络来学习近似推理以预测z。这和wake-sleep算法训练出的推理网络类似,但是它具有一个优势,就是在生成器网络训练完成后,这个推理网络可以针对固定的生成器网络进行训练。

    3.能够用来近似模拟所有的条件概率p(xS∣xS̸),其中S是通过训练共享参数的条件模型簇的关于x索引的一个子集。本质上,可以使用生成对抗网络来随机拓展确定的MP-DBM。

    4.半监督学习:当标签数据有限时,判别网络或推理网络的特征会提高分类器效果。

    5.效率改善:为协调G和D设计更好的方法或训练期间确定更好的分布来采样z,能够极大的加速训练。

    本文已经展示了对抗建模框架的可行性,表明这些研究方向是有用的。

    相关文章

      网友评论

        本文标题:Generative Adversarial Nets(译)

        本文链接:https://www.haomeiwen.com/subject/wssmpxtx.html