本人在不改变原意的情况下对《Generative Adversarial Nets. MIT Press, 2014》这篇经典的文章进行了翻译,由于个人水平有限,难免有疏漏或者错误的地方,若您发现文中有翻译不当之处,请私信或者留言。工作虽小,毕竟花费了作者不少精力,所以您若转载请注明出处!

Generative Adversarial Nets(译文)

Abstract

  我们提出了一个新的框架,主要是通过一个对抗过程来估计生成过程。我们同时训练2个模型:一个生成模型G用于捕捉数据分布,一个判别模型D用于估计训练数据的概率。对于生成器G而言,其训练过程就是得到判别器D出错的最大化概率。该框架类似于一个最大最小的博弈游戏。在任意空间中,函数G、D存在唯一的解。在生成器G和判别器D被定义为一个多层的感知器的情况下,整个系统可以利用反向传播进行训练。在训练或生成样本期间,不需要任何马尔可夫链或展开的近似推理网络。通过对生成的样本进行定性和定量评估,实验证明了该框架的潜力。

1、Introduction

  深度学习的前景是发现丰富的层次模型,这些模型表示人工智能应用中遇到的各种数据的概率分布,例如自然图像、包含语音的音频波形以及自然语言语料库中的符号。截止到目前,深度学习最显著的成功主要是判别模型,该模型将那些高维、丰富的感官输入映射到分类标签。这些显著的成功主要是基于反向传播和dropout算法,使用分段线性单元,具有特别好的梯度。深度生成模型的影响较小,这是因为很难对最大似然估计和相关策略中出现的许多难以处理的概率计算进行近似,也因为很难在生成的语义信息中利用分段线性单元的优势。我们提出了一种新的生成模型估计方法,从而避免了这些困难。

  在所提出的对抗性网络框架中,生成模型与对手相比较:一种判别模型,用于学习确定样本是来自模型分布还是来自数据分布。生成模型可以被认为类似于一组伪造者,他们试图制造假币并在不被发现的情况下使用,而鉴别模型类似于警察,他们试图检测假币。这个游戏中的竞争促使两个团队改进他们的方法,直到假冒品与真品无法区分为止。

  该框架可以为多种模型和优化算法生成特定的训练算法。在本文中,我们探讨了生成模型通过多层感知器传递随机噪声生成样本的特殊情况,而判别模型也是多层感知器。我们把这种特殊情况称为对抗网。在这种情况下,我们可以仅使用非常成功的反向传播和退出算法来训练这两个模型,并仅使用正向传播从生成模型中采样。不需要近似推理或马尔可夫链。

2、Related work

  直到最近,关于深层生成模型的大多数工作都集中在提供概率分布函数参数说明的模型上。然后可以通过最大化对数似然来训练模型。在这个模型家族中,也许最成功的是深层玻尔兹曼机器。此类模型通常具有难以处理的似然函数,因此需要对似然梯度进行多次近似。这些困难推动了“生成机器”的发展——这些模型没有明确表示可能性,但能够从所需的分布中生成样本。生成型随机网络是生成型机器的一个例子,它可以通过精确的反向传播而不是Boltzmann机所需的大量近似值进行训练。这项工作通过消除生成随机网络中使用的马尔可夫链,扩展了生成机器的概念。我们的工作通过生成过程反向传播导数,生成过程参考以下观测函数:
lim⁡σ→0∇xEε∼N(0,σ2I)f(x+ϵ)=∇xf(x)\lim\limits_{\sigma \to 0}\nabla_x\mathbb{E}_{\varepsilon \sim N(0,\sigma^2I)}f(x+\epsilon)=\nabla_xf(x) σ→0lim​∇x​Eε∼N(0,σ2I)​f(x+ϵ)=∇x​f(x)
  在我们开展这项工作的时候,我们不知道Kingma和Wellingand Rezen de等人已经开发了更一般的随机反向传播规则,允许通过具有有限方差的高斯分布反向传播,并反向传播到协方差参数和平均值。这些反向传播规则可以让我们了解生成器的条件方差,我们在这项工作中将其视为超参数。Kingma和Welling以及Rezende等人使用随机反向传播来训练变分自动编码器(VAE)。与生成对抗网络一样,变分自动编码器将可微生成网络与第二个神经网络配对。与生成性对抗网络不同,VAE中的第二个网络是执行近似推理的识别模型。GAN需要通过可见单元进行微分,因此无法对离散数据进行建模,而VAE需要通过隐藏单元进行微分,因此没有离散的潜在变量。也存在其他类似的VAE方法,但是这与我们的方法关系不大。以前的工作也采取了使用判别准则来训练生成模型的方法。这些方法使用的标准对于深度生成模型来说是难以解决的。这些方法甚至很难对深度模型进行近似,因为它们涉及概率比,而概率比无法使用概率下限的变分近似进行近似。噪声对比估计(NCE)涉及通过学习权重来训练生成模型,使该模型有助于区分固定噪声分布中的数据。使用先前训练的模型作为噪声分布,可以训练一系列质量不断提高的模型。这可以看作是一种非正式的竞争机制,在精神上类似于对抗性网络游戏中使用的正式竞争。NCE的关键限制在于其“鉴别器”由噪声分布和模型分布的概率密度之比定义,因此要求能够通过这两种密度进行评估和反向传播。
  以前的一些工作使用了两个神经网络竞争的一般概念。最相关的工作是可预测性最小化。在可预测性最小化中,将神经网络中的每个隐藏单元训练为不同于第二个网络的输出,第二个网络根据所有其他隐藏单元的值预测该隐藏单元的值。这项工作在三个重要方面不同于可预测性最小化:
1) 在这项工作中,网络之间的竞争是唯一的训练标准,它本身就足以训练网络。可预测性最小化只是一个正则化器,它激励神经网络的隐藏单元在完成其他任务时保持统计独立;这不是主要的训练标准。
2) 竞争的性质是不同的。在可预测性最小化中,比较两个网络的输出,一个网络试图使输出相似,另一个网络试图使输出不同。所讨论的输出是单个标量。在GANs中,一个网络产生一个丰富的高维向量,用作另一个网络的输入。
3) 学习过程的规范是不同的。可预测性最小化被描述为一个目标函数最小化的优化问题,并且学习接近目标函数的最小值。GAN基于一个极小极大博弈而不是一个优化问题,并且具有一个价值函数,一个寻求最大化,另一个寻求最小化。

  生成性对抗网络有时与“对抗性示例”的相关概念相混淆[28]。对抗性示例是通过直接对分类网络的输入使用基于梯度的优化来找到的示例,以便找到与错误分类的数据相似的示例。这与目前的工作不同,因为对抗性示例不是训练生成模型的机制。相反,对抗性示例主要是一种分析工具,用于显示神经网络以有趣的方式运行,通常自信地以高置信度分类两幅不同的图像,即使人类观察者察觉不到它们之间的差异。这些对抗性例子的存在确实表明,生成性对抗性网络训练可能效率低下,因为它们表明,现代歧视性网络可以自信地识别一个类别,而不模仿该类别的任何人类可感知属性。

3、Adversarial Nets

  当模型都是多层感知机时,对抗性模型框架最容易被直接应用。为了学习生成器在数据xxx上的分布pgp_gpg​,我们定义了输入噪声变量的先验知识pz(z)p_z(z)pz​(z),然后定义G(z;θ)G(z;\theta)G(z;θ)表示噪声变量到数据空间的映射,这里GGG是由具有参数θg\theta_gθg​的多层感知器表示的可微函数。我们也定义了第二个多层感知器D(x;θd)D(x;\theta_d)D(x;θd​),该感知器的输出是一个单一的标量。D(x)D(x)D(x)表示的是来自数据xxx的概率。我们对DDD进行训练,以期最大化将正确标签训练实例和来自于GGG样本的概率。我们同时训练GGG,最小化函数log(1−D(G(x)))log(1-D(G(x)))log(1−D(G(x)))。换句话说,DDD和GGG使用值函数V(G,D)V(G,D)V(G,D)去玩以下的极大极小游戏(或者翻译为博弈游戏)。
  在下一节中,我们将介绍对抗网络的理论分析,基本上表明,当G和D具有足够容量时,即在非参数限制下,训练标准允许恢复数据生成分布。请参见图1,了解该方法不太正式、更具教学意义的解释。在实际使用中,我们必须使用迭代的数值方法来完成这个游戏。在训练的内环中优化D以完成训练在计算上是禁止的,并且在有限的数据集上会导致过度拟合。相反,我们在优化D的k个步骤和优化G的一个步骤之间交替进行。这导致只要G变化足够慢,D就会保持在接近其最优解的位置。算法1正式介绍了该过程。在应用中,上述方程无法为GGG提供足够的梯度,以便于更好的学习。在学习的早期,当GGG数值很低时,DDD可以按照很高的置信度来拒绝样本,因为它们与训练数据明显不同。在这种情况下,log(1−D(G(z)))log(1-D(G(z)))log(1−D(G(z)))是饱和的。我们可以训练判别器GGG去最大化logD(G(z))logD(G(z))logD(G(z))。

4、Theoretical Results

  当z∼pzz\sim p_zz∼pz​时,生成器GGG隐式的将概率分布pgp_gpg​定义为样本G(z)G(z)G(z)的分布。因此,如果给定足够的容量和训练时间,我们希望算法1收敛到一个良好的估计值pdatap_{data}pdata​。本节的结果是在非参数设置下完成的,例如,我们通过研究概率密度函数空间中的收敛性来表示具有无限容量的模型。在第4.1节,我们将说明对于pg=pdatap_g=p_{data}pg​=pdata​最大最小值博弈过程中存在一个全局最优值。在第4.2节,我们将会证明利用算法1对方程1进行优化,可以获得所需的结果。


图1:生成式对抗网络通过同时更新判别分布(D,蓝色,虚线)进行训练,以便于区分来自数据生成分布(黑色,点线)pxp_xpx​,和生成式分布pg(G)p_g(G)pg​(G)(绿色,实线)。最下面的水平线是zzz采样的区域,在这种情况下是均匀的。而上面的水平线是xxx区域的一部分。向上的箭头展示的是映射x=G(z)x=G(z)x=G(z)如何将非均匀分布pgp_gpg​施加到变换样本上。GGG在高密度区域收缩,在 pgp_gpg​的低密度区域扩张。(a)考虑一对近似收敛的对抗,pgp_gpg​类似于pdatap_{data}pdata​,DDD是一个部分精确的分类器。(b)在算法的内环中,DDD被用于训练区分样本和数据,趋同于D∗(x)=pdata(x)pdata(x)+pg(x)D^*(x)=\frac{p_{data}(x)}{p_{data}(x)+p_g(x)}D∗(x)=pdata​(x)+pg​(x)pdata​(x)​。(c)在对GGG进行更新后,DDD的梯度引导G(z)G(z)G(z)流向更有可能被分类为数据的区域。(d) 经过几个步骤的训练后,如果GGG和DDD有足够的能力,此时他们将达到一个点,在该点处两者均不能提高,因为pg=pdatap_g=p_{data}pg​=pdata​。此时判别器不能够去区分这两个分布,因为D(x)=1/2D(x)=1/2D(x)=1/2。

4.1 p_g=p_{data}的全局优化

我们首先考虑对于任意给定的生成器GGG去优化判别器DDD。固定生成器GGG,最优判别器为:DG∗(x)=pdata(x)pdata(x)+p+g(x)D_G^*(x)=\frac{p_{data}(x)}{p_{data}(x)+p+g(x)} DG∗​(x)=pdata​(x)+p+g(x)pdata​(x)​
对于判别器DDD的训练标准为,给定任意的生成器GGG,使得V(G,D)V(G,D)V(G,D)最大化

对于任意的(a,b)ϵR20,0(a,b) \epsilon \frac{R^2}{{0,0}}(a,b)ϵ0,0R2​,函数y→alog(y)+blog(1−y)y \rightarrow alog(y)+blog(1-y)y→alog(y)+blog(1−y)在aa+bϵ[0,1]\frac{a}{a+b} \epsilon[0,1]a+ba​ϵ[0,1]时达到最大值。且判别器不需要在外部被定义。
注意,对于DDD的训练目标可以被解释为最大化估计条件概率P(Y=y∣x)P(Y=y|x)P(Y=y∣x)的似然。这里YYY表示xxx是来自于pdata(y=1)p_{data}(y=1)pdata​(y=1)还是pg(y=0)p_g(y=0)pg​(y=0)。方程1的最大最小方程可以被重新建模为:


当且仅当pg=pdatap_g=p_{data}pg​=pdata​时,才达到虚拟训练准则C(G)C(G)C(G)的全局最小值。在该点处,C(G)=−log4C(G)=-log4C(G)=−log4
对于pg=pdata,DG∗(x)=1/2p_g=p_{data},D_G^*(x)=1/2pg​=pdata​,DG∗​(x)=1/2。因此,在方程4中当DG∗(x)=1/2D_G^*(x)=1/2DG∗​(x)=1/2时,我们发现C(G)=log1/2+log1/2=−log4C(G)=log1/2+log1/2=-log4C(G)=log1/2+log1/2=−log4。仅当pg=pdatap_g=p_{data}pg​=pdata​时,C(G)C(G)C(G)可能存在最佳值。有:

通过从C(G)=V(DG∗,G)C(G)=V(D_G^*,G)C(G)=V(DG∗​,G)减去这个表达式,我们可以得到:

这里,KL表示的是KL散度或者相对熵。我们在前面的表达式中认识到模型分布和数据生成过程之间的Jensen–Shannon散度:

由于两个分布之间的Jensen–Shannon散度总是非负的,如果它们相等,则为零。们已经证明了C∗=−log(4)C^*=-log(4)C∗=−log(4)是C(G)C(G)C(G)的全局最小值,唯一的解决方案是pg=pdatap_g=p_{data}pg​=pdata​,即完美复制数据分布的生成模型。

4.2 算法1的收敛性

  如果GGG和DDD有足够的容量,在算法1的每一步,鉴别器在给定GGG的情况下,允许达到其最佳值,并且更新pgp_gpg​以改进准则。

然后pgp_gpg​收敛到pdatap_{data}pdata​
  考虑V(G,D)=U(pg,D)V(G,D)=U(p_g,D)V(G,D)=U(pg​,D)作为pgp_gpg​的函数。注意,在pgp_gpg​中,函数U(pg,D)U(p_g,D)U(pg​,D)是凸的。凸函数上确界的子导数包括函数在达到最大点处的导数。换句话说,如果f(x)=supα∈对于每个α,A fα(x)和fα(x)在x中是凸的,那么∂fβ(x)∈ ∂f如果β=argsupα∈A fα(x)。这相当于在给定相应的G的情况下,在最佳D处计算pg的梯度下降更新。supD U(pg,D)在pg中是凸的,具有唯一的全局最优解,如Thm 1中所证明的,因此在pg更新足够小的情况下,pg收敛到px,从而得出证明。实际上,对抗网络通过函数G(z;θg),我们优化θg而不是pg本身,因此证明不适用。然而,多层感知器在实践中的优异性能表明,尽管缺乏理论保证,但多层感知器是一种合理的使用模型。

5、Experiments

我们在一系列数据集上训练了对抗网络,包括MNIST、多伦多人脸数据库(TFD)和CIFAR-10。生成式网络混合使用线性激活函数和sigmoid激活函数,而判别器网络使用最大输出激活。dropout被用于训练鉴别器网络。虽然我们的理论框架允许在生成器的中间层使用dropout和其他噪声,但我们仅将噪声用作生成器网络最底层的输入。

我们通过将高斯Parzen窗口拟合到G生成的样本,并报告该分布下的对数似然,来估计pg下测试集数据的概率。通过验证集上的交叉验证,获得高斯函数的σ参数。该程序在Breuleux等人中介绍,并用于各种生成模型,对于这些模型,精确的可能性是不可控制的。结果如表1所示。这种估计可能性的方法具有较高的方差,在高维空间中表现不佳,但它是我们所知的最佳方法。生成性模型的进步可以取样但不能估计可能性,这直接推动了对如何评估此类模型的进一步研究。在图2和图3中,我们展示了训练后从发电机网络中提取的样本。虽然我们没有声称这些样本优于现有方法生成的样本,但我们认为这些样本至少与文献中更好的生成模型具有竞争力,并突出了对抗性框架的潜力。

6、Advantages and Disadvantages

与以前的建模框架相比,这个新框架有其优点和缺点。缺点主要是pg(x)没有明确的表示,并且在训练期间D必须与G很好地同步(特别是,在不更新D的情况下G不能训练太多),为了避免“Helvetica场景”,即G将太多的z值压缩为相同的x值,以具有足够的多样性来模拟pdata),就像Boltzmann机器的负链必须在学习步骤之间保持最新一样。其优点是不需要马尔可夫链,仅使用backprop获得梯度,在学习过程中不需要推理,并且可以将多种函数合并到模型中。表2总结了生成性对抗网络与其他生成性建模方法的比较。

上述优点主要是计算性的。对抗性模型也可能从发生器网络中获得一些统计优势,该网络不直接使用数据样本进行更新,而仅使用流经鉴别器的梯度进行更新。这意味着输入的组件不会直接复制到生成器的参数中。对抗性网络的另一个优点是,它们可以表示非常尖锐甚至退化的分布,而基于马尔可夫链的方法要求分布有点模糊,以便链能够在模式之间混合。

7、Conclusions and Future Work

该框架可以直接进行多个方向的拓展:

Generative Adversarial Nets原文翻译相关推荐

  1. Generative Adversarial Nets 论文翻译

    论文原文: https://dl.acm.org/doi/pdf/10.1145/3422622 代码: GitHub - goodfeli/adversarial: Code and hyperpa ...

  2. Generative Adversarial Nets论文翻译

    Abstract We propose a new framework for estimating generative models via an adversarial process, 我们提 ...

  3. GANs简述(一)Generative Adversarial Nets

    0.说在开头 最近接触到基于机器学习进行入侵检测的项目,加上研讨班上需要面向毕设预开题,在看了最近一些论文之后打算开始小白的GANs之旅,这篇先从Goodfellow在2014年最早提出GANs这一概 ...

  4. 【GANs】Generative Adversarial Nets

    [GANs]Generative Adversarial Nets 1 GAN 1.1 GANs的简介 1.2 思想与目标函数 1.3 GAN代码 1.4 全局最优推导 1.5 GANs方向展望 1 ...

  5. 【GANs】Conditional Generative Adversarial Nets

    [GANs]Conditional Generative Adversarial Nets 2 CGAN 2.1 CGAN简介 前言 流程图 目标函数 2.2 CGAN代码 2 CGAN 2.1 CG ...

  6. 生成对抗网络Generative Adversarial Nets(译)

    仅供参考,如有翻译不到位的地方敬请指出. 论文地址:Generative Adversarial Nets  论文翻译:XlyPb(http://blog.csdn.net/wspba/article ...

  7. 生成式对抗网络GAN(Generative Adversarial Nets)论文笔记

    1.介绍 本文基本从2014年<Generative Adversarial Nets>翻译总结的. GAN(Generative Adversarial Nets),生成式对抗网络.包含 ...

  8. 论文总结-Generative Adversarial Nets

    Generative Adversarial Nets 概述 0. 摘要 1. 介绍 2. 相关工作 3. 对抗网络 4. 理论结果 4.1全局最优解 4.2收敛性 4.3 理论证明的局限性 5. 实 ...

  9. ESRGAN - Enhanced Super-Resolution Generative Adversarial Networks论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

最新文章

  1. 操作系统期末复习重点题型归纳
  2. mysql 自动归档,如何将数据库从非归档模式转为自动归档模式:
  3. spring的DI/IOC机制
  4. Android 多选列表
  5. 计算两个矩阵相乘(Java)
  6. 关于JS中for循环时,作用域问题和this指针指向的总结
  7. 【Flink】Generic types have been disabled in the ExecutionConfig and type KryoSerializer Row
  8. linux rz命令安装
  9. 英雄联盟php文件,英雄联盟-QQ网吧游戏特权-QQ网吧
  10. 计算机硕士工资一览表 08年最新各大IT公司薪水行
  11. vscode下载慢、安装、插件和使用(七七)
  12. 解决win11不能拖拽图片进ppt/ps的问题
  13. 除留余数法构造哈希函数并用链地址法处理哈希冲突【C++实现】
  14. java的println、print与printf
  15. php做引流脚本,自动引流脚本你知道是怎么实现的自动化引流?
  16. PT927G光猫获取超管+删除tr069教程
  17. 解决mathtype微分点不显示
  18. c语言编译器10.110去广告,msvcp110.dll电脑文件
  19. nodejs的 面试大全 容易 难的都有
  20. 电子产品上亚马逊UL报告正确做法

热门文章

  1. 做一个Python颜值打分系统,比比看杨幂和杨超越到底谁更美?
  2. SylixOS中的线程【5】--- 线程结束
  3. Ubuntu查看定时任务执行日志
  4. android跳转到系统的各项设置界面
  5. 孙正义持有的软银股份是多少?
  6. TOJ4646划分数
  7. 无线智能插座Android Studio开发工具下载安装
  8. 全志A40i开发板Android系统编译
  9. Golang学习(二十九)序列化和反序列化
  10. Ubuntu镜像源更改为清华镜像源