【论文精读】Generative Adversarial Nets

前言

大名鼎鼎的生成对抗网络GAN,发表在NeurIPS2014。GAN为生成领域打开了新的大门,为神经网络赋予更多的能力。论文短小精悍,证明部分较为硬核,但是也格外巧妙,希望本篇博客能够帮助读者更好理解其中细节。


Paper: https://proceedings.neurips.cc/paper_files/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf

Abstract

作者提出了一个新的生成模型的范式,通过对抗学习的过程,同时训练两个模型:生成模型 G G G和判别模型 D D D。前者用于捕获原始数据的分布,后者判断一个数据是生成的还是来自原始数据。 G G G的目标是最大化模型 D D D犯错的概率,让判别模型最终无法分辨图像的真伪。两个模型都由多层MLP组成,无需马尔科夫链或者展开的近似推理网络(前文预测后文)。实验展示了该框架的潜力。

1 Introduction

当前深度学习模型在判别模型上取得引人瞩目的成功,但是在生成模型上却难有建树,因为难以通过极大似然估计和相关策略去拟合分布,本文提出了一个新的生成模型回避了拟合的问题。
本文提出的对抗网络框架,生成模型和判别模型进行对抗,生成模型如同造假币者,试图造出发现不了的假币,而判别模型类似警察,试图检测出假币,二者相互竞争,不断改进,直到造的假币与真币无法区分。
该框架可以为多种模型和优化算法提供特定的训练算法。本文的生成模型通过将随机噪声通过多层感知器来生成样本的特殊情况,并且判别模型也是多层感知器。这样的对抗网络可以通过反向传播和dropout来进行训练,无需近似推理或者马尔科夫链。

Introduction部分完全就是摘要部分的扩充,将其中的一些概念更加详细的表述了一遍,并没有提及他人或者其它领域的工作,可见作者对于本文这样开创性工作的自信。GAN作为一种新的模式或框架,引领了数万篇工作在生成模型领域发扬光大。

2 Related work

最近的生成模型仍然专注于拟合目标分布。代表性工作如深度玻尔兹曼机,此类模型有大量难以处理的似然函数。本文所提出的模型通过梯度下降反向传播解决了上述问题。VAE工作开发了更通用的随机反向传播规则,可以让人们了解生成器的条件方差。
之前通过一个辨别模型来帮助生成模型的效果并不好,如NCE,使用之前训练好的模型作为噪声分布来提高模型的性能。其局限性在于判别器是由噪声分布和模型分布的概率密度之比定义的,因此需要通过这两种密度进行评估和反向传播,损失函数较为复杂,在求解上性能不如GAN。
之前的一些工作也有让两个网络互相竞争的概念,如可预测最小化PM。本文与PM有三点不同之处:

  1. GAN网络之间的竞争是唯一的训练标准,而PM只是一个正则化器。
  2. 竞争的性质不同。PM是比较两个网络的输出,而GAN中是将一个网络的输出作为另一个网络的输入。
  3. 学习过程的规范不同。PM被描述为最小化目标函数问题,而GAN基于博弈问题,并且有一个价值函数,一个寻求最大化,一个寻求最小化。

GAN有时会和对抗样本的概念相混淆。对抗样本是为了找到与数据相似但是分类错误的样例,而不是作为一个生成模型。

3 Adversarial nets

当模型都是多层感知机时,GAN的应用更为直接。为了学习生成器在数据 x x x上的分布 p g p_g pg,作者定义了一个先验的输入噪声函数 p z ( z ) p_z(z) pz(z),然后通过生成器 G ( z ; θ g ) G(z;\theta_g) G(z;θg)将噪声映射到数据空间。判别器 D ( x ; θ d ) D(x;\theta_d) D(x;θd)的输出 D ( x ) D(x) D(x)用于表示 x x x来自于真实数据而不是生成生成数据的概率。判别器的目标是最大化正确分配标签的概率,而生成器的目标是最小化 l o g ( 1 − D ( G ( z ) ) ) \mathrm{log}(1-D(G(z))) log(1D(G(z)))。生成器和判别器遵循如下博弈游戏:
min ⁡ G max ⁡ D V ( D , G ) = E x ∼ p data  ( x ) [ log ⁡ D ( x ) ] + E z ∼ p z ( z ) [ log ⁡ ( 1 − D ( G ( z ) ) ) ] \min _{G} \max _{D} V(D, G)=\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] minGmaxDV(D,G)=Expdata (x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]
下一节会展示GAN的理论分析,尤其是在参数拟合能力足够强的情况下,生成器如何重建分布(基于non-parametric limit),如下图所示:
image.png
该图详细解释可以分为以下四个步骤:

  1. 噪声z通过生成器映射到x上,分布如绿色曲线所示,此时蓝色虚线判别器由于未经过学习所以预测不是很稳定。
  2. 经过判别器的训练,蓝色曲线学习到如何分辨真实数据和生成数据,收敛到 D ∗ ( x ) = p d a t a ( x ) p d a t a ( x ) + p g ( x ) D^*(x)=\frac{p_{\mathrm{data}}(x)}{p_{\mathrm{data}}(x)+p_{g}(x)} D(x)=pdata(x)+pg(x)pdata(x)
  3. 接着生成器进行学习,生成数据向着真实数据分布方向靠拢。
  4. 当二者到达一个平衡式,达到纳什均衡,判别器无法区分两个分布, D ( x ) = 1 2 D(x)=\frac{1}{2} D(x)=21

回到上面的式子,在实践中,必须使用迭代的方式来完成这个游戏,通过交替 k k k D D D和一步 G G G,防止内循环中将 D D D优化最佳导致大量的计算和过拟合的风险。算法1介绍了该过程。
image.png
训练开始时,生成的图像太假,很容易被判别器识破,在这种情况下, l o g ( 1 − D ( G ( z ) ) ) \mathrm{log}(1-D(G(z))) log(1D(G(z)))达到饱和,此时可以最大化 l o g ( D ( G ( z ) ) ) \mathrm{log}(D(G(z))) log(D(G(z)))而不是最小化 l o g ( 1 − D ( G ( z ) ) ) \mathrm{log}(1-D(G(z))) log(1D(G(z)))。虽然二者都能收敛到相同的位置,但是前者可以提供更强的梯度,收敛更快。

non-parametric limit:意思是概率分布的拟合能力上限数据量本身决定,而不是由模型参数量决定,只要数据无限大,模型性能可以无限好,这样的模型有KNN,dp-means,高斯过程(概率机器学习)。
而自带先验分布假设的模型如线性回归、逻辑回归、支持向量机等。它们都不是non-parametric limit。

4 Theoretical Results

生成器隐式定义了概率分布 p g p_g pg,因此作者希望在充足的训练样本和时间的情况下,算法1能够收敛到 p d a t a p_{\mathrm{data}} pdata

4.1 Global Optimality of p g = p d a t a p_g=p_{\mathrm{data}} pg=pdata

首先考虑给定任意生成器 G G G所能得到的最佳判别器 D D D

Proposition 1

固定 G G G,最优的判别器 D D D如下:
D ∗ ( x ) = p d a t a ( x ) p d a t a ( x ) + p g ( x ) D^*(x)=\frac{p_{\mathrm{data}}(x)}{p_{\mathrm{data}}(x)+p_{g}(x)} D(x)=pdata(x)+pg(x)pdata(x)
证明1: 对于给定的判别器,对于任意的生成器,其目标是最大化质量函数 V ( G , D ) V(G,D) V(G,D)
V ( G , D ) = ∫ x p data  ( x ) log ⁡ ( D ( x ) ) d x + ∫ z p z ( z ) log ⁡ ( 1 − D ( g ( z ) ) ) d z = ∫ x p data  ( x ) log ⁡ ( D ( x ) ) + p g ( x ) log ⁡ ( 1 − D ( x ) ) d x \begin{aligned} V(G, D) & =\int_{\boldsymbol{x}} p_{\text {data }}(\boldsymbol{x}) \log (D(\boldsymbol{x})) d x+\int_{\boldsymbol{z}} p_{\boldsymbol{z}}(\boldsymbol{z}) \log (1-D(g(\boldsymbol{z}))) d z \\ & =\int_{\boldsymbol{x}} p_{\text {data }}(\boldsymbol{x}) \log (D(\boldsymbol{x}))+p_{g}(\boldsymbol{x}) \log (1-D(\boldsymbol{x})) d x \end{aligned} 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
其中第二项是根据测度论中的Radon-Nikodym Theorem,将对噪声的积分改动为对假图像的积分,从而将两个积分项合并为一个积分项。积分中的式子可以看做是关于 y y y的函数 y → a l o g ( y ) + b l o g ( 1 − y ) y \to a\mathrm{log}(y)+b\mathrm{log}(1-y) yalog(y)+blog(1y),根据求导结果,当 y y y a a + b \frac{a}{a+b} a+ba时,式子取得最大值,即 D ∗ ( x ) = p d a t a ( x ) p d a t a ( x ) + p g ( x ) D^*(x)=\frac{p_{\mathrm{data}}(x)}{p_{\mathrm{data}}(x)+p_{g}(x)} D(x)=pdata(x)+pg(x)pdata(x)
证毕。

Radon-Nikodym Theorem即无意识统计学家定理,当 z → x z \to x zx是单射时,对噪声 z z z的采样相当于对假图像进行采样,即: E z ∼ p z ( z ) l o g ( 1 − D ( G ( z ) ) ) = E x ∼ p G ( x ) l o g ( 1 − D ( x ) ) \mathbb{E}_{z \sim p_z(z)}\mathrm{log}(1-D(G(z)))=\mathbb{E}_{x \sim p_G(x)}\mathrm{log}(1-D(x)) Ezpz(z)log(1D(G(z)))=ExpG(x)log(1D(x))

注意到训练目标 D D D可以解释为最大化估计条件概率 P ( Y = y ∣ x ) P(Y=y|x) P(Y=yx)的最大似然。即: C ( G ) = max ⁡ D V ( G , D ) = E x ∼ p data  [ log ⁡ D G ∗ ( x ) ] + E z ∼ p z [ log ⁡ ( 1 − D G ∗ ( G ( z ) ) ) ] = E x ∼ p data  [ log ⁡ D G ∗ ( x ) ] + E x ∼ p g [ log ⁡ ( 1 − D G ∗ ( x ) ) ] = E x ∼ p data  [ log ⁡ p data  ( x ) P data  ( x ) + p g ( x ) ] + E x ∼ p g [ log ⁡ p g ( x ) p data  ( x ) + p g ( x ) ] \begin{aligned} C(G) & =\max _{D} V(G, D) \\ & =\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}}\left[\log D_{G}^{*}(\boldsymbol{x})\right]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}}\left[\log \left(1-D_{G}^{*}(G(\boldsymbol{z}))\right)\right] \\ & =\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}}\left[\log D_{G}^{*}(\boldsymbol{x})\right]+\mathbb{E}_{\boldsymbol{x} \sim p_{g}}\left[\log \left(1-D_{G}^{*}(\boldsymbol{x})\right)\right] \\ & =\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}}\left[\log \frac{p_{\text {data }}(\boldsymbol{x})}{P_{\text {data }}(\boldsymbol{x})+p_{g}(\boldsymbol{x})}\right]+\mathbb{E}_{\boldsymbol{x} \sim p_{g}}\left[\log \frac{p_{g}(\boldsymbol{x})}{p_{\text {data }}(\boldsymbol{x})+p_{g}(\boldsymbol{x})}\right] \end{aligned} C(G)=DmaxV(G,D)=Expdata [logDG(x)]+Ezpz[log(1DG(G(z)))]=Expdata [logDG(x)]+Expg[log(1DG(x))]=Expdata [logPdata (x)+pg(x)pdata (x)]+Expg[logpdata (x)+pg(x)pg(x)]
其实这种写成期望的形式和上面写成积分形式本质上是一样的。
理论: 上面证明了当 D ∗ ( x ) = p d a t a ( x ) p d a t a ( x ) + p g ( x ) D^*(x)=\frac{p_{\mathrm{data}}(x)}{p_{\mathrm{data}}(x)+p_{g}(x)} D(x)=pdata(x)+pg(x)pdata(x)时,判别器能够最大化质量函数,那么对于生成器来说,就要最小化 D ( x ) D(x) D(x),即实现 C ( G ) C(G) C(G)的全局最小值,此时 p g = p d a t a p_g=p_{data} pg=pdata C ( G ) C(G) C(G)的值为 − l o g 4 -\rm log 4 log4
证明2: p g = p d a t a p_g=p_{data} pg=pdata时, D G ∗ ( x ) = 1 2 D^*_G(x)=\frac{1}{2} DG(x)=21,此时 C ( G ) = l o g 1 2 + l o g 1 2 = − l o g 4 C(G)=\rm log\frac{1}{2} + log\frac{1}{2}=-log4 C(G)=log21+log21=log4。为了证明这是不是 C ( G ) C(G) C(G)的全局最小值,可以将 C ( G ) C(G) C(G)通过简单的化简改成下面的式子:
C ( G ) = − log ⁡ ( 4 ) + K L ( p data  ∥ p data  + p g 2 ) + K L ( p g ∥ p data  + p g 2 ) C(G)=-\log (4)+K L\left(p_{\text {data }} \| \frac{p_{\text {data }}+p_g}{2}\right)+K L\left(p_g \| \frac{p_{\text {data }}+p_g}{2}\right) C(G)=log(4)+KL(pdata 2pdata +pg)+KL(pg2pdata +pg)
KL散度又可以进一步合并成对称的JS散度,如下:
C ( G ) = l o g ( 4 ) + 2 ⋅ J S D ( p d a t a ∣ ∣ p g ) C(G)=\mathrm{log(4)}+2·JSD(p_{data}||p_g) C(G)=log(4)+2JSD(pdata∣∣pg)
JS散度非负,并且当且仅当两个分布相等时JSD为0,因此可以证明 − l o g 4 -\rm log 4 log4是全局最小解。
证毕。

4.2 Convergence of Algorithm 1

此部分证明不够严谨,略。

5 Experiments

本文实验在MNIST、TFD和CIFAR-10数据集上进行。生成器激活函数采用ReLU和Sigmoid,判别器采用maxout。模型中也加入了dropout防止过拟合,虽然模型架构允许在任何地方使用dropout和噪声,但是作者只在生成器的输入采用噪声。
作者采用基于 Parzen 窗口的对数似然估计来评估生成图像的质量。结果如下表所示:
image.png
这种评估方式方差较大,并且在高维空间不稳定, 但是是目前最好的方法。下图展示了训练后生成的部分样本,可以看出GAN生成的图像确实很有竞争力,表现出极大的潜力。

6 Advantages and disadvantages

GAN主要有两点不足:

  1. 并没有显示拟合真实的分布。
  2. 生成器和判别器在训练中难以同步。特别是生成器不能在不更新判别器的情况下过多训练,这会导致“the Helvetica scenario”现象,即模式崩塌,生成器会只生成同样的图像(反正再差判别器也分辨不出来,直接摆烂了)。

当然GAN的优点也是很突出的:

  1. 无需马尔科夫链,仅使用梯度反向传播。
  2. 学习过程无需前后推理,可以将多种函数合并到框架中。

下表是GAN与其他生成方法的比较。
image.png
上述的优势还只是从计算上来说,GAN还可以从生成器网络中获得一些统计优势,即不使用真实的数据进行更新,而是间接根据判别器的结果进行更新,这意味着输入的组成部分不会直接复制到生成器的参数中。GAN的另一个优势是可以拟合更丰富的分布,而基于马尔科夫链的方法对分布有一定的限制。
image.png
上图黄色框标记的部分是真实的图像,其它都是生成的图像。可见生成的图像并不是对真实图像的逼近(即真正拟合到分布),而是略有差别,且真实自然。
image.png
并且输入的噪声渐变,输出的图像也会跟着渐变。

7 Conclusions and future work

  1. 通过将条件添加到GAN中,可以得到条件生成模型 p ( x ∣ c ) p(x|c) p(xc),模型能够生成指定的图像。
  2. 可以通过训练辅助网络来预测噪声执行学习的近似推理。优点是可以在生成器网络完成训练之后针对固定生成器网络来训练推理网络。
  3. 通过训练一系列共享参数的条件模型,可以对所有条件进行近似建模。
  4. 半监督学习:当可用的标记数据有限时,来自判别器或者推理网络的特征可以提高分类器的性能。
  5. 效率改进。通过设计更好的方法去协调生成器和判别器的训练过程,可以加快训练速度。

阅读总结

GAN作为生成对抗网络的开山之作,为后续许多生成模型奠定了基础,尤其是如今生成图像往往能够以假乱真。本篇文章的作者也都是赫赫有名的大人物,所以GAN这篇文章简洁明了,思路清晰,摘要部分直接概括方法核心思想,引言也只是对摘要的简单扩充,只有相关工作列举了一些他人的成果。全篇工作几乎没有一句多余的话,甚至实验部分也很简洁,只有不到半页,这可能就是强者的自信吧。
这篇文章的思想特别有借鉴意义,不是对真实分布的拟合,而是通过生成对抗的方式间接靠近真实分布。这样的生成会更加自然且创新性,不易受到真实分布的特别约束。此外,GAN并不是一个模型,而是一个思想,一个框架爱,其可扩展性和简易性为后续工作铺平了道路,仿佛为生成领域提供了一张白纸,任由人在其上面进行创造性的工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HERODING77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值