GAN论文精读

GAN

    • @[TOC](GAN)
  • 一、导论
  • 二、相关工作
  • 三、模型结构
    • 对抗网络
  • 四、理论结果
    • 当Pg = Pdata的全局最优性
    • 算法1的收敛性
  • 五、实验
  • 六、优缺点

一、导论

深度学习的前景是对人工智能领域应用中遇到的各种概率的分布的表示。深度学习在 Deep generative models方面不是很突出,是由于难以接近最大似然估计和一些方法上出现的很多难以处理的概率计算,并且也难以在生成环境中利用分段线性单元(piecewise linear units)的优势。因此作者提出了GAN——一个新的生成模型,这个模型可以避免这些困难。
在提出的GAN中,生成模型和判别模型相互对抗、不断改进。作者可以只使用反向传播和dropout算法训练两个模型,并只使用前向传播从生成模型中取样。生成器和判别器都是MLP,在训练或生成样本过程中,MLP可以从一个产生噪声(如高斯分布)的分布映射到任何一个想要拟合的分布,而不需要任何马尔可夫链或展开的近似推理网络。

二、相关工作

之前的方法是构造一个分布函数,然后提供参数给函数学习(最大化对数似然函数),而缺点就是在高维的时候计算量很大。一些依赖马尔科夫链的模型,如RBM、DBMs。在许多具有多层潜在变量的生成模型(如DBN和DBMs)中,甚至不可能推导出可处理的非归一化概率密度。DBNs在与无向模型和有向模型相关的计算困难。也有人提出了不近似或限制对数似然的替代标准,如score matching和NCE,这两者都需要学习的概率密度被解析指定到一个归一化常数。由于NCE使用固定的噪声分布,模型在观察变量的一个小子集上学习了一个近似正确的分布后,学习速度会急剧减慢。
一些技术并不涉及明确定义概率分布,而是训练生成机从期望的分布中抽取样本。这种方法的优点是,这种机器可以设计为通过反向传播进行训练。该领域最近的突出工作包括生成随机网络(GSN)框架,但是它被视为定义参数化马尔可夫链。
与GSNs相比,对抗网框架不需要马尔可夫链进行采样。由于对抗网络在生成过程中不需要反馈环,因此它们能够更好地利用分段线性单元,这可以提高反向传播的性能。缺点是不知道生成模型的分布。

三、模型结构

对抗网络

当模型都是多层感知器MLP时,对抗性建模框架最容易应用。为了学习生成器在数据x上的分布pg,我们定义了一个先验输入噪声变量pz(z),然后将数据空间的映射表示G(z;θg)。其中G是一个可微函数,θg是要学习的参数。我们还定义了第二个多层感知器D(x;θd)输出单个标量。D(x)表示x是来自真实数据而不是生成数据的概率。我们训练D以最大化判别正确(把真实数据判别为1,生成器G生成值判为0)的概率。然后同时训练G以最小化log(1−D(G(z)))。换句话说,D和G使用目标函数V (G, D)进行如下的极小极大博弈:
在这里插入图片描述
X是真实数据,z是噪声数据。当判别器D训练的很好的时候,能准确分辨真实数据和噪声,则D(x)=1,D(G(z))=0,此时V(D,G)=0。但是当判别器并不能完全分辨所有数据的时候,D(x)<1,logD(x)<0,log(1-D(G(z)))<0,V(D,G)<0。训练判别器D的时候需要参照目标函数V (G, D),我们希望MAX V (G, D)(也就是V (G, D)=0)。而在我们训练生成器G的时候,我们希望生成器生成的数据能“骗过”判别器,也就是要让判别器把生成数据判为真实数据的概率越高越好。G希望D(G(z))≈1,1-D(G(z))≈0,log(1-D(G(z)))≈无穷小,所以要min~D。
我们在优化D的k步和优化G的1步之间交替进行,这导致D保持在其最优解附近,只要G变化足够缓慢。在学习早期,当G较差时,D可以高置信度地拒绝样本(D(G(z))=0,log(1-D(G(z)))=0)。在这种情况下,log(1−D(G(z)))提前饱和,而不是通过训练G最小化log(1 - D(G(z)))。作者建议,可以训练G最大化log D(G(z))。这个目标函数导致G和D具有动态相同的固定点,但在学习早期提供了更强的梯度。
GAN论文精读_第1张图片
图1:生成对抗网络是通过同时更新判别分布(蓝色虚线)来训练的,这样它就可以区分真实数据分布(黑色虚线)px的样本和来自生成分布pg (G)(绿色实线)的样本。
(a)还没训练的时候,蓝色虚线无规则波动。
(b)训练D从数据中区分样本,收敛到D∗(x) = pdata(x) /(pdata(x)+pg(x))。D根据真实值分数高,生成值分数低来判别,所以在右侧绿色实线高峰的地方分数低。
© G更新后,绿色实现往黑色虚线移动。
(d)经过几个步骤的训练,如果G和D有足够的能力,它们会达到一个都不能提高的点,因为pg = pdata。鉴别器无法区分两个分布,即D(x) = 1/2。

四、理论结果

生成器G隐式地将概率分布pg定义为当z ~ pz时获得的样本G(z)的分布。因此,如果有足够的容量和训练时间,我们希望算法1收敛到一个好的pdata估计器。这个极大极小对策在pg = pdata时具有全局最优。
算法1:生成式对抗网络的小批量随机梯度下降训练。应用于鉴别器的步数k是一个超参数。在实验中使用k = 1。基于梯度的更新可以使用任何标准的基于梯度的学习规则,在实验中使用了动量,下图是算法流程:我们从Pg(z)里取样出m个随机噪声z,从Pdata(x)里面取样出m个真实数据x,然后把数据输入到下面第一个式子中计算D的梯度,并对D进行更新,这个过程迭代k轮。然后从Pg(z)里取样出m个随机噪声z,把噪声带入第二个式子来计算G的梯度,然后更新G,更新G只进行一次!

GAN论文精读_第2张图片

当Pg = Pdata的全局最优性

当且仅当pg = pdata时,实现了C(G)的全局最小值。此时C(G)的值为−log 4。

GAN论文精读_第3张图片
当G固定住的时候,辨别器D的最优解是(2)式。对于任何生成器G,判别器D的训练准则是使V (G, D)最大化。注意,D的训练目标可以解释为最大化估计条件概率P (Y = Y |x)的对数似然,其中Y表示x来自pdata (Y = 1)还是来自pg (Y = 0)。极大极小博弈现在可以重新表述为:

GAN论文精读_第4张图片
GAN论文精读_第5张图片
GAN论文精读_第6张图片
对于pg = pdata, DG∗(x) = 1/2,(考虑公式2)。因此,通过检查DG∗(x) = 1/2时的公式4,我们发现C(G) = log1/2 + log1/2 =−log4。要看到这是C(G)的最佳可能值,仅在pg = pdata时达到。
在这里插入图片描述
在这里插入图片描述
我们知道:极大似然估计 = 最小化KL 散度。
GAN论文精读_第7张图片
其中KL是Kullback-Leibler散度。在前面的表达式中,我们认识到模型分布和数据生成过程之间的Jensen - Shannon散度:
在这里插入图片描述
由于两个分布之间的Jensen-Shannon散度总是非负的,只有当它们相等时才为零,我们已经证明C * =−log(4)是C(G)的全局最小值,并且唯一的解是pg = pdata,即生成模型完美地复制了数据生成过程。

算法1的收敛性

如果G和D有足够的容量,在算法1的每一步,在给定G的情况下,允许鉴别器达到其最优,并更新pg以改进判据
在这里插入图片描述
,使pg收敛到pdata。在实践中,对抗网通过函数G(z;θg),我们优化θg而不是pg本身。使用多层感知器来定义G,在参数空间中引入多个临界点。

五、实验

作者用一系列数据集训练对抗网络,包括MNIST,Toronto Face Database(TFD)和CIFAR-10。生成器网络使用rectifier linear activations和sigmoid激活的混合,而鉴别器网络使用maxout激活。采用Dropout训练鉴别器网络。虽然理论框架允许在生成器的中间层使用dropout和其他噪声,但作者只使用噪声作为生成器网络最底层的输入。我们通过对G生成的样本拟合 Gaussian Parzen window来估计pg下测试集数据的概率,并报告该分布下的对数似然。从下表可以看到对抗网络在现有的方法里面表现的比较好。

GAN论文精读_第8张图片
下图展示了训练后从生成器网络中提取的样本。最右边一列显示了邻近样本中最近的训练示例,以证明模型没有记住训练集。样本是随机抽取的,不是精心挑选的。与大多数其他深度生成模型的可视化不同,这些图像显示了来自模型分布的实际样本,而不是给定隐藏单元的条件样本。此外,这些样本是不相关的,因为采样过程不依赖于马尔可夫链混合。a) MNIST b) TFD c) CIFAR-10(全连接模型)d) CIFAR-10(卷积判别器和“反卷积”生成器)
GAN论文精读_第9张图片
下表中生成建模中的挑战:对涉及模型的每个主要操作的深度生成建模的不同方法所遇到的困难的总结。
GAN论文精读_第10张图片

六、优缺点

这个框架的缺点主要是没有显式表示的pg (x)和D必须同步与G在训练(特别是G不能训练太多没有更新,为了避免“the Helvetica scenario”,而D可以迭代多轮)。
优点是不需要马尔可夫链,只使用backprop来获得梯度,在学习过程中不需要推理,并且可以将各种各样的函数纳入模型。

你可能感兴趣的:(生成对抗网络,人工智能)