**

译文:

代码地址:https://github.com/YadiraF/GAN
**
学习网址:
http://www.sohu.com/a/123650542_500659
http://www.cnblogs.com/huangshiyu13/p/5984911.html
学习的6个ppt:
文件178M,需要的留言。

摘要
通过对抗过程来估计生成模型,该过程中同时训练两个模型:生成模型G获得数据分布,判别模型D估计中样本来自训练数据 (而不是G)的概率 。G的训练过程为最大化D犯错的概率。生成模型的估计过程对应一场最小最大的双人游戏。任意函数G和D的空间中,存在唯一解,此时G可恢复训练数据的分布,而D等于1/2。如果G和D定义为多层感知机,那么整个系统可通过反向传播来训练。训练和样本生成时不需要任何的 Markov 链或展开的近似推理网络。

  1. 简介
    人工智能应用 (诸如自然图像,语音波形和自然语言的语料库)中会遇到各种各样的数据,深度学习的前景是发现代表这些数据的概率分布的丰富的分层模型。目前,深度学习最大的成功是判别模型。判别模型通常将高维的丰富的感官输入映射为 1 个类标签。这些成功主要归功于反向传播,Dropout 和使梯度表现不错的分段线性单元。由于难以近似许多难解的概率计算 (采用最大似然估计和相关策略) 和难以利用生成上下文中的分段线性单元,深度生成模型的影响偏小。我们提出一个新的产生模型的估计过程来回避这些困难。

对抗的网络框架中,生成模型与它的对手对决:判别模型学习去决定某个样本是否来自模型分布或数据分布。生成模型可认为类似一个造假团伙,该团伙试图制造假币,但使用前不检验。而判别模型类似警察,试图检验假币。游戏中的竞争促使双方改进方法,直到假币与真币不可分为止。

该框架可为许多模型和优化方法产生具体的训练方法。本文中,生成模型通过一个多层感知机传递随机噪声来生成样本,且判别模型也是一个多层感知机。这个特例称为对抗的网络。这里,仅用反向传播和 Dropout 来训练模型,生成模型通过前向传播来生成样本。不需要近似推理approximate inference或者 Markov 链。

  1. 相关工作
    直到最近,大多数深度生成模型的工作集中于为模型的概率分布函数指定参数。然后可最大化对数似然来训练模型。这类模型中最成功的可能是深度 Boltzmann 机。它们一般有难解的似然函数,因此要求对似然梯度的大量近似。这些困难推动了“生成机”的发展——不用显式表示似然的模型仍能从期望的分布中生成样本。随机的生成网络正是一个用反向传播训练 (而不是 Boltzmann 机要求的大量近似) 的生成机。该工作进一步消除了用于随机的生成网络的 Markov 链。

注:“大量近似”的原文为 numerous approximations,“数值近似”的英文为 numerical approximation。

利用如下观测的生成过程来反向传播梯度:
limδ→0?xE?~N(0,δ2I)f(x+?)=?xf(x)

我们开展工作的同时,Kingma,Welling 和 Rezende 等人提出更一般的随机反向传播规则,允许通过有限方差的高斯分布来反向传播,且对方差和均值反向传播。这些反向传播规则可学到生成器的条件方差 (条件方差视为我们工作的超参数) 。Kingma,Welling 和 Rezende 等人用随机反向传播来训练变分自编码器 (VAEs)。与对抗的生成网络相似,变分自编码器为可微分的生成网络配对第2个网络。与对抗的生成网络不同的是,VAE 中的第2个网络是一个使用近似推理的识别模型。GANs 要求对可见单元微分,故不能对离散数据建模。而 VAEs 要求对隐含单元微分,因而不能对离散的潜在变量建模。存在其它类似 VAE 的方法,但与我们的方法更不相关。

以前有工作用判别标准来训练生成模型。这些方式的标准难以用于深度生成模型上。这些方法难以近似深度模型,因为用变分近似无法近似深度模型所涉及的概率的下界。当模型用于从固定的噪声分布中区分数据时,噪声对比估计 (NCE) 通过学习该模型的权重来训练生成模型。用之前训练好的模型作为噪声分布,提高了训练一系列模型的质量。NCE 是本质上与对抗的网络游戏中的正式竞争相似的一种非正式竞争机制。NCE 关键的局限为它的“判别器”是由噪声分布和模型分布的概率密度比重来定义,从而要求评估和反向传播两个概率密度。

一些以前的工作已用到两个网络竞争的一般概念。最相关的工作为可预见性最小化。其中,一个训练好的神经网络中的每个隐含单元与第2个网络的输出不同。给定所有其它隐含单元的值,第2个网络的输出可预测该隐含单元的数值。本文的工作与可预测性最小化有3处重要的不同:1) 本文工作中,网络间的竞争是唯一的训练标准,足以训练网络。可预测性最小化仅是鼓励神经网络中隐含单元在完成其它任务的同时,统计上也相互独立的一个正则项;竞争并不是主要的训练标准。2) 竞争的本质不同。可预测性最小化中,两个网络的输出相互比较,一个网络试图使输出相似,而另一个网络试图使输出不同;输出为标量。GANs 中,一个网络生成一个丰富的高维向量来作为另一个网络的输入,并尝试选择使另一个网络不知如何判别的向量为输入。3) 学习过程不同。可预测性最小化被描述为一个最小化目标函数的优化问题,学习去逼近目标函数的最小值。GANs 基于最大最小游戏,而不是一个优化问题,且一个 Agent 寻求最大化值函数,另一个 Agent 寻求最小化值函数。游戏在鞍点处终止,此处是关于一个 Agent 的策略的最小值,和关于另一个 Agent 的策略的最大值。

对抗的生成网络有时曾与“对抗的实例”相混淆。对抗的实例是指为找出与误分类的数据相似的实例,通过在分类网络的输入上直接基于梯度优化,来获得的实例。对抗的实例与当前工作是不同的,因为对抗的实例不是一个生成模型的训练机制。相反,对抗的实例主要是显示网络行为异常 (经常以高置信度将两幅图像分为不同类,尽管两幅图像对人来说是同类) 的分析工具。对抗的实例的存在确实表明训练对抗的生成网络可能效率低,因为对抗的实例表明,在不模仿某类的人类感知属性时,使目前的判别网络自信地识别该类是可能的。


  1. 对抗的网络
    当模型都为多层感知机时,可直接应用对抗的模型框架。已知数据x,为学习生成器的概率分布Pg,定义输入噪声变量pz(z)的先验,然后表示数据空间的映射为G(z;θg),其中G为一个用参数θg的多层感知机表示的可微函数。同时定义第 2 个输出为单个标量的多层感知机D(x;θd)。D(x)为来自数据 (而不是pg)的x的概率。训练D来最大化为训练实例和来自G的生成样本分配正确标签的概率;同时,训练D来最小化log(1?D(G(z)))。换句话说,D和G根据值函数V(G,D)来进行双人的最小最大游戏:
    minGmaxDV(G,D)=Ex~pdata(x)[logD(x)]+Ez~pz(z)[log(1?D(G(z)))]256(1)

对抗的网络的理论分析本质上证明,性能足够好时 (即无参数限制) ,训练标准可恢复生成数据的分布来作为G和D。下图为该方法非正式的却更直观的解释。

\

训练对抗的生成网络时,同时更新判别分布 (D,蓝色虚线) 使D能区分数据生成分布 (黑色虚线) 中的样本和生成分布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) 更新 1 次G后,D的梯度引导G(z)流向更可能分类为数据的区域。
(d) 训练若干步后,如果G和D性能足够,它们接近某个稳定点并无法继续提高性能,因为此时pg=pdata。判别器将无法区分训练数据分布和生成数据分布,即D(x)=12。<喎�”/kf/ware/vc/” target=”_blank” class=”keylink”>vcD4NCjwvYmxvY2txdW90ZT4NCjxwPsq1vMrJz6OssdjQ67bU087Pt9PDtfy0+rXEyv3Wtbe9t6iho9G1wbfW0LWltsDTxbuvPG5vYnI+RDwvbm9icj68xsvjyc+yu7/J0NCjrMfS09DP3sr9vt28r7rPyc+74bW81sK5/cTius+ho8/gt7SjrNPFu688bm9icj5EPC9ub2JyPiBrILK9us3TxbuvPG5vYnI+RDwvbm9icj4gMSCyvb27zOaho73hufu99rWxPG5vYnI+RDwvbm9icj67usL9seS7r8qxo6w8bm9icj5EPC9ub2JyPrGjs9bU2sbk1+7Txb3iuL29/KGjy+O3qCAxINX9yr2x7cq+uMO5/bPMoaM8L3A+DQo8cD48aW1nIGFsdD0=”” src=”/uploadfile/Collfiles/20161001/20161001090427195.png” title=”\” />

实际上,为学习好G,方程(1)可能无法为G提供足够的梯度。学习初期,当G的生成效果很差时,D会以高置信度来拒绝生成样本。此时,log(1?D(G(z)))饱和。所以,训练G来最大化logD(G(z)),而不去训练G来最小化log(1?D(G(z)))。该目标函数使G和D的动力学稳定点相同,但训练早期,该目标函数提供了更强大的梯度。

  1. 理论结果
    当z~pz时获得样本G(z),产生器G隐式定义概率分布pg来作为G(z)的分布。因此,如果模型
    和训练时间足够大,希望算法 1 收敛后可很好地估计pdata。通过在概率密度函数空间中学习收敛来表示一个性能无限的模型。

最小最大游戏的全局最优为pg=pdata。

4.1 pg=pdata 的全局最优性

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

命题 1. 固定G,最优判别器D为
D?G(x)=pdata(x)pdata(x)+pg(x)256(2)

证明. 给定任意生成器G,判别器D的训练标准为最大化目标函数V(G,D):
V(G,D)=∫xpdata(x)log(D(x))dx+∫zpz(z)log(1?D(G(z)))dz=∫xpdata(x)log(D(x))+pg(x)log(1?D(x))dx256(3)

对任意(a,b)∈R2(0,0),当y∈[0,1]时,函数y→alog(y)+blog(1?y)在aa+b处达到最大值。无需在Supp(pdata)∩Supp(pg)外定义判别器。证毕。

D的训练目标可视为最大化估计条件概率P(Y=y|x)的对数似然。当y=1时,x来自pdata;当y=0时,x来自pg。公式 1 的最小最大游戏可形式化为:
C(G)=maxDV(G,D)=Ex~pdata[pdatalogD?G(x)]+Ez~pz(z)[pz(z)log(1?D(G?(z)))]=Ex~pdata[pdatalogD?G(x)]+Ex~pg(x)[pg(x)log(1?D?G(x))]=Ex~pdata[logpdata(x)pdata(x)+pg(x)]+Ex~pg(x)[logpg(x)pdata(x)+pg(x)]256(4)

定理 1. 达到虚拟的训练标准C(G)的全局最优,当且仅当pg=pdata。此时,C(G)达到值?log14。

证明. pg=pdata时,D?G(x)=12。由公式(4)得C(G)=log12+log12=?log14。可以看到这是C(G)的最优值,仅当pg=pdata时。观察到
Ex~pdata[?log12]+Ex~pg[?log12]=?log14
从C(G)=V(G,D?G)中减去上式,得
C(G)=?log14+KL(pdata∥pdata+pg2)+KL(pg∥pdata+pg2)
其中,KL为 Kullback-Leibler 散度 2。前面表达中模型分布间的 Jensen-Shannon 散度 3和数据生成过程:
C(G)=?log14+2?JSD(pdata∥pg)256(6)

连续随机变量P和Q分布之间的 KL 散度为
KL(P∥Q)=∫∞?∞p(x)logp(x)q(x)dx
所以,
====KL(pdata(x)∥pdata(x)+pg(x)2)∫∞?∞pdata(x)logpdata(x)pdata(x)+pg(x)2dx∫∞?∞pdata(x)logpdata(x)pdata(x)+pg(x)dx+log12∫∞?∞pdata(x)dx∫∞?∞pdata(x)logpdata(x)pdata(x)+pg(x)dx+log12Ex~pdata[logpdata(x)pdata(x)+pg(x)]+log12
同理,=KL(pg(x)∥pdata(x)+pg(x)2)Ex~pg(x)[logpg(x)pdata(x)+pg(x)]+log12
Jensen-Shannon 散度为
JSD(P∥Q)=12KL(P∥M)+12KL(Q∥M)
其中,M=P+Q2。
所以,
=JSD(pdata∥pg)12KL(pdata(x)∥pdata(x)+pg(x)2)+12KL(pg(x)∥pdata(x)+pg(x)2)

由于两个分布间的 Jensen-Shannon 散度总为非负的,当且仅当两者相等时 JSD 为0,此时C(G)的全局最小值为C?=?log14,且唯一解为pg=pdata,即生成模型完美复制数据的分布。

4.2 算法 1 的收敛性

命题 2. 如果G和D性能足够,且算法 1 的每步,给定G时判别器可达到最优,且更新pg来提高标准
Ex~pdata[log1D?G(x)]+Ex~pg[log(1?D?G(x))]
则pg收敛到pdata。

证明. 如上述标准考虑V(G,D)=U(pg,D)为关于pg的函数。注意到U(pg,D)为pg的凸函数。该凸函数上确界的一次导数包括达到最大值处的该函数的导数。换句话说,如果f(x)=supα∈Afα(x),且对每个α,fα(x)关于x是凸的,那么如果β=arg1supα∈Afα(x),则?fβ(x)∈?f。等价于给定对应的G和最优判别D,梯度下降更新pg。在定理 1 中证明supDU(pg,D)关于pg是凸的且有唯一的全局最优解,因此,pg更新足够小时,pg收敛到px,证毕。

实际上,对抗的网络通过函数G(z;θg)表示pg分布的簇有限,且优化θg (而不是pg本身),所以证明不适用。然而,实际中多层感知机的不错表现表明它们为可合理使用的模型,尽管缺少理论保证。

  1. 实验
    在数据集 MNIST,Toronto Face Database(TFD) 和 CIFAR-10 上训练对抗的生成网络。生成器用 ReLU 与 Sigmoid 激活单元的混合,而判别器用 maxout 激活单元。训练判别网络时用 Dropout。虽然理论框架可在生成器的中间层用 Dropout 和其它噪声,但这里仅在生成网络的最底层用噪声输入。

通过对G生成的样本拟合高斯 Parzen 窗 和计算该分布下的对数似然来估计测试数据集的概率。

验证集上交叉验证来获得高斯分布的参数σ。Breuleux 等人引入该过程且用于不同的似然难解的生成模型上。该方法估计似然的方差较大且高维空间中表现不好,但确实目前我们认为最好的方法。生成模型的优点是可采样而不直接估计似然,从而促进了该模型评估的进一步研究。训练后的生成样本如下图所示。
虽然未声明该方法生成的样本优于其它方法生成的样本,但我们相信这些样本至少和文献中更好的生成模型相比依然有竞争力,也突出了对抗的框架的潜力。



  1. 优点和缺点

新框架相比以前的模型框架有其优缺点。缺点主要为Pg(x)的隐式表示,且训练期间,D和G必须很好地同步 (尤其,不更新D时G不必过度训练,为避免“Helvetica scenario”。否则,x值相同时G丢失过多z值以至于模型Pdata多样性不足),正如 Boltzmann 机在学习步间不断更新。优点是无需 Markov 链,仅用反向传播来获得梯度,学习间无需推理,且模型中可融入多种函数。

钙的结构崩溃称为Helvetica 情景。目前公认的钙模型基于三螺旋,但实际上它是由 4 个电子 (每个电子由 3 个质子支持) 组成的半永久结构。质子将电信号传给分子的中心原子 (王后原子)。当王后原子离开分子 (巢)后,将产生灾难性影响,会导致整个该结构倒塌 5
上述优势主要在计算上。生成网络也可能不用直接通过数据实例更新,而是仅用流过判别器的梯度来更新,因此对抗模型可以从中获得一些统计优势。这意味输入部分未直接复制进生成器的参数。对抗的网络的另一优点是可表示很sharp,甚至退化的分布(degenerate distributions),而基于 Markov 链的方法为混合模式而要求模糊的分布。

  1. 结论与未来工作
    该框架允许许多直接的扩展:
    1) 通过将c作为输入添加到G和D来获得条件的生成模型p(x|c)。
    2) 给定x,为预测z,训练任意的网络可学习近似推理。类似于 wake-sleep 算法训练出的推理网络,但训练推理网络时可能要用到训练完成后的固定的生成网络。
    3) 该框架可以近似建模所有的条件概率P(Xs|Xs’),其中,s为通过训练共享参数的条件模型簇的x的索引。本质上,对抗的网络可用于随机扩展 MP-DBM。
    4) 半监督学习:当limited标签数据可用时,判别网络或推理网络的特征会提高分类器效果。
    5) 效率改善:为协调G和D设计更好的方法,或训练期间确定更好的分布来采样z,从而加速训练。

Generative Adversarial Nets相关推荐

  1. 简述一下生成对抗网络GAN(Generative adversarial nets)模型?

    简述一下生成对抗网络GAN(Generative adversarial nets)模型? 生成对抗网络GAN是由蒙特利尔大学Ian Goodfellow在2014年提出的机器学习架构. 要全面理解生 ...

  2. GAN(Generative Adversarial Nets)研究进展

    想与大家分享的是图像生成中一些工作. 这些工作都基于一大类模型,Generative Adversarial Networks(GAN).从模型名称上甚至都可以看出一些发展轨迹:GAN->CGA ...

  3. Generative Adversarial Nets[BEGAN]

    本文来自<BEGAN: Boundary Equilibrium Generative Adversarial Networks>,时间线为2017年3月.是google的工作. 作者提出 ...

  4. PaperNotes(5)-Conditional Generative Adversarial Nets

    Conditional GAN 论文阅读笔记 Abstract 1 Introduction 2 Related Work 3 Conditional Adversarial Nets 3.1 Gen ...

  5. GAN —— 《Generative Adversarial Nets》

    <Generative Adversarial Nets> 生成式对抗网络: 作者:lan Goodfellow: 单位:加拿大蒙特利尔大学: 发表会议及时间:NeurlPS(NIPS) ...

  6. GAIN: Missing Data Imputation using Generative Adversarial Nets(基于生成对抗网络的缺失数据填补)论文详解

    目录 一.背景分析 1.1 缺失数据 1.2 填补算法 二.GAIN 2.1 GAIN网络架构 2.2 符号描述(Symbol Description) 2.3 生成器模型 2.4 判别器模型 2.5 ...

  7. 【GANs】Generative Adversarial Nets

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

  8. AT-GAN: A Generative Attack Model for Adversarial Transferring on Generative Adversarial Nets

    文章目录 概 主要内容 符号说明 Original Generator Transfer the Generator Wang X., He K., Guo C., Weinberger K., Ho ...

  9. GAIN: Missing Data Imputation using Generative Adversarial Nets学习笔记

    GAIN: Missing Data Imputation using Generative Adversarial Nets(基于对抗生成网络实现缺失数据插补) 缺失数据插补算法问题背景 缺失数据 ...

  10. 【GANs】Conditional Generative Adversarial Nets

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

最新文章

  1. cuda error invalid argument
  2. A+B/A*B求A和B
  3. oracle判断一个字符是否是数字
  4. mysql数据库版本不同_mysql数据库版本不同所引起的问题
  5. Android手游《》斗地主完整的源代码(支持单机和网络对战)
  6. Python+Wind:用 Pyautogui 轻松下载 Wind 数据
  7. Web项目部署到阿里云
  8. win10 企业版 2016长期服务版激活方法
  9. Class 类文件结构解析
  10. 总结一个技术总监的教训和经验
  11. 烟火高桥蝶变“中非商港”,开放雨花引领国际商贸
  12. UCloud成首个通过乌云认证的云计算平台
  13. 电脑的显卡驱动需要更新吗?
  14. opencv实战2-修改保存图片、像素操作
  15. Linux 进程通信之:管道 (Pipe)
  16. The Butcher
  17. 中智集团携手亚信安全 打造立体化、智能化网络防御体系
  18. 带bitlocker解密的pe_Win10使用BitLocker加密U盘|Win10自带BitLocker加密U盘
  19. 性能测试知多少?怎样开展性能测试
  20. 求职信结尾经常用到的十句话

热门文章

  1. B站_千锋2020MySQL_6.04练习题
  2. mysql的force的作用_mysql中force Index等一些不是很常用的sql优化介绍
  3. 体系结构风格——《软件工程:实践者的研究方法》第八版
  4. Qt Creator 快捷键
  5. sourcetree打开快捷_SourceTree使用方法
  6. 修改windows10查询索引文件edb存放位置
  7. 3ds-Max2016 安装 无法正常打开win10
  8. html下拉列表框怎么添加数据,给html下拉框控件自动添加数据
  9. UnityShader案例篇—绘制雨滴
  10. umeditor使用教程