与判别网络对抗的生成网络 (Generative Adversarial Nets)

Generative Adversarial Nets (GAN)

主线为 Ian J. Goodfellow 的论文 (“Generative Adversarial Nets”) 内容 1。之前一些人译为“生成式对抗网络”。但从模型分类 (生成模型和判别模型) 的角度来看,更具体地,改为“与判别网络对抗的生成网络”会比较直观。

另外,后面的“我们”并不指我,而指“Ian J. Goodfellow”等人~

摘要

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

1. 简介

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

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

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

2. 相关工作

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

注:“大量近似”的原文为 numerous approximations,“数值近似”的英文为 numerical approximation。不知为何想起了这个~

利用如下观测的生成过程来反向传播梯度:

limδ0xEϵ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 的策略的最大值。

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

3. 对抗的网络

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

minGmaxDV(G,D)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))](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

实际上,必须对游戏用迭代的数值方法。训练中单独优化 D 计算上不可行,且有限数据集合上会导致过拟合。相反,优化D k 步和优化 G 1 步交替。结果仅当G缓慢变化时, D 保持在其最优解附近。算法 1 正式表示该过程。

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

4. 理论结果

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

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

4.1 pg=pdata 的全局最优性

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

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

DG(x)=pdata(x)pdata(x)+pg(x)(2)

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

V(G,D)=xpdata(x)log(D(x))dx+zpz(z)log(1D(G(z)))dz=xpdata(x)log(D(x))+pg(x)log(1D(x))dx(3)

对任意 (a,b)R2\(0,0) ,当 y[0,1] 时,函数 yalog(y)+blog(1y) 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)=Expdata[logDG(x)]+Ezpz(z)[log(1D(G(z)))]=Expdata[logDG(x)]+Expg(x)[log(1DG(x))]=Expdata[logpdata(x)pdata(x)+pg(x)]+Expg(x)[logpg(x)pdata(x)+pg(x)](4)

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

证明. pg=pdata 时, DG(x)=12 。由公式 (4) C(G)=log12+log12=log4 。可以看到这是 C(G) 的最优值,仅当 pg=pdata 时。观察到

Expdata[log2]+Expg[log2]=log4

C(G)=V(G,DG) 中减去上式,得
C(G)=log4+KL(pdatapdata+pg2)+KL(pgpdata+pg2)

其中, KL 为 Kullback-Leibler 散度 2。前面表达中模型分布间的 Jensen-Shannon 散度 3和数据生成过程:
C(G)=log4+2JSD(pdatapg)(6)

连续随机变量 P Q分布之间的 KL 散度为

KL(PQ)=p(x)logp(x)q(x)dx

所以,
====KL(pdata(x)pdata(x)+pg(x)2)pdata(x)logpdata(x)pdata(x)+pg(x)2dxpdata(x)logpdata(x)pdata(x)+pg(x)dx+log2pdata(x)dxpdata(x)logpdata(x)pdata(x)+pg(x)dx+log2Expdata[logpdata(x)pdata(x)+pg(x)]+log2

同理,
=KL(pg(x)pdata(x)+pg(x)2)Expg(x)[logpg(x)pdata(x)+pg(x)]+log2

Jensen-Shannon 散度为
JSD(PQ)=12KL(PM)+12KL(QM)

其中, M=P+Q2
所以,
=JSD(pdatapg)12KL(pdata(x)pdata(x)+pg(x)2)+12KL(pg(x)pdata(x)+pg(x)2)

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

4.2 算法 1 的收敛性

命题 2. 如果 G D性能足够,且算法 1 的每步,给定 G 时判别器可达到最优,且更新pg来提高标准

Expdata[logDG(x)]+Expg[log(1DG(x))]

pg 收敛到 pdata

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

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

5. 实验

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

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

给定R为以 x 为中心的正方形,h为正方体边长。则窗口函数

ϕ(xixh)={10|xikxk|h12k=1,2otherwise

ϕ(xixh)=1 时,样本点落入正方形内。估计的Parzen 概率密度为
p(x)=1ni=1nϕ(xixh)h2

窗口函数泛化为高斯函数时,将 n 个样本点为中心的高斯函数加权平均,有
p(x)=1ni=1n12πσe(xix)22σ2

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

模型样本可视化。为证模型并未记忆训练集,最右列显示与相邻样本最接近的训练实例。生成样本随机绘制。与其它深度生成模型不同的是,这些生成图像显示来自生成模型分布的实际样本,而非给定隐含单元样本时的条件均值。此外,生成样本间不相关,因为采样过程不依赖 Markov 链。

a) MNIST; b) TFD; c) CIFAR-10 (全连接模型) d) CIFAR-10 (卷积判别器和“反卷积”生成器)

6. 优劣

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

钙的结构崩溃称为Helvetica 情景。目前公认的钙模型基于三螺旋,但实际上它是由 4 个电子 (每个电子由 3 个质子支持) 组成的半永久结构。质子将电信号传给分子的中心原子 (王后原子)。当王后原子离开分子 (巢)后,将产生灾难性影响,会导致整个该结构倒塌 5

上述优势主要在计算上。对抗的模型也可能用数据实例,仅用流过判别器的梯度,从间接更新的生成模型中获得一些统计优势。这意味输入部分未直接复制进生成器的参数。对抗的网络的另一优点是可表示很尖,甚至退化的分布,而基于 Markov 链的方法为混合模式而要求模糊的分布。

7. 结论与未来工作

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

本文展示对抗的模型框架的可行性,证明了此研究方向有用。

全文未经校正,有问题欢迎指出。(~ o ~)~zZ


  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值