简介

生成对抗神经网络(Generative Adversarial Nets,GAN)是一种深度学习的框架,它是通过一个相互对抗的过程来完成模型训练的。典型的GAN包含两个部分,一个是生成模型(GenerativeModel,简称G),另一个是判别模型(Discriminative Model,简称D)。生成模型负责生成与样本分布一致的数据,目标是欺骗判别模型,让判别模型认为生成的数据是真实的;判别模型试图将生成的数据与真实的样本区分开。生成模型与判别模型相互对抗、相互促进,最终生成模型能够生成以假乱真的数据,判别模型无法区分是生成的数据还是真实的样本,如此一来,就可以利用生成模型去生成非常逼真的数据。

  由于GAN能够生成复杂的高维度数据,因此被广泛应用于学术研究和工程领域。GAN的主要应用包括图像处理、序列数据生成、半监督学习、域自适应(Domain Adaptation)。图像处理是GAN应用最多的领域,包括图像合成、图像转换、图像超分辨率、对象检测、对象变换等;序列数据生成包括音乐生成、语音生成等。

引言

生成对抗网络(Generative Adversarial Network, GAN)是一种通过两个神经网络相互博弈的方式进行学习的生成模型。生成对抗网络能够在不使用标注数据的情况下来进行生成任务的学习。生成对抗网络由一个生成器和一个判别器组成。生成器从潜在空间随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别器的输入则为真实样本或生成器的输出,其目的是将生成器的输出从真实样本中尽可能分别出来。生成器和判别器相互对抗、不断学习,最终目的使得判别器无法判断生成器的输出结果是否真实。

例如,生成器可以看作货币造假者,目的是制造足够以假乱真的假币;判别器可以看作验钞机,负责判断钞票是否为假币,它能够随着假币质量的提高而不断升级,保持对假币的识别能力。

定义

给定数据分布 pdata,希望设计生成器,使得生成器所产生的数据分布 pg尽可能接近pdata。为了学习相应的数据分布,首先随机初始化一个噪音分布 p_{z}(z),然后将随机初始化的噪音分布作为生成器 G 的输入,得到输出 x ;判别器 D 判断 x 是来自于初始数据分布,或者来自生成器的生成。

我们可以形式化地定义生成器和判别器:

                                                           G:G\left ( z \right )\rightarrow R^{\left | x \right |}

                                                          D:D\left ( x \right )\rightarrow \left [ 0,1 \right ]

判别器D的训练目标是最大化分类的准确率,而生成器G的训练目标则是最小化判别器D的准确率。二者的估值函数是完全相反的,因而形成了零和博弈。在博弈中,DG两名玩家按照极小化极大估值函数 V(G,D) 进行博弈的过程:

          \underset{G}{min} \underset{D}{min}V\left ( G,D \right )=\L\mathbb{E}_{x\sim pdata(x)}\left [ logD(x) \right ]+\mathbb{E}_{z\sim _{Pz\left ( z \right )}}\left [ log1-DG(z))) \right ]

生成对抗网络的批量学习算法定义在Algorithm 1。算法的核心思路为,迭代更新判别器和生成器的参数,直到判别器和生成器都能达到较好的效果。

理论推导

本节主要证明两个问题:

  1. 生成对抗网络中的极小化极大值博弈问题中,存在全局最优解:p_{g}=pdata ;
  2. 通过Algorithm 1能够收敛到此全局最优解。

全局最优解 

其中, KL 是Kullback-Leibler散度,定义为信息熵与交叉熵之比,衡量两分布之间的差异; JSD 是Jensen-Shannon散度,用以解决KL散度不对称的问题。KL散度和JSD散度都是非负的,且JSD散度只有在p_{g}=pdata取到0。

因此$C(G)$在满足当且仅当p_{g}=pdata的条件下,估值函数 V\left (G,D \right ) 能够取到全局最小值 −log⁡4 。这意味着,在全局最优解的状态下,生成器能够产生与原始数据分布相同的样本。

算法收敛性

这相当于在给定相应 G的情况下,在最优 D 处计算p_{g}的梯度下降更新。随着判别器 D不断更新,p_{g}不断更新。在判别器的更新步骤达到最优的状态下,生成器的输出分布也相应达到最优,而此最优正是全局最优。这证明了通过Algorithm 1可以收敛到全局最优解。

缺点

一个优秀的GAN应用需要有良好的训练方法,否则可能由于神经网络模型的自由性而导致输出不理想。GAN由于定义的特性,在训练中可能会出现以下问题:

不稳定收敛

当生成器和判别器都可以访问其整个策略集时,生成对抗网络具有唯一的全局最优点。但在实际场景中,我们可以访问的数据并不一定是整个策略集。而当它们具有受限策略集时,未必能够稳定收敛到全局最优点。

模式崩溃

GAN经常遭受模式崩溃,从输入数据中丢失整个模式以至于无法正确泛化。 例如,在包含每个数字的许多样本的MNIST数据集上训练的GAN可能只会生成数字0的图片。

发生这种情况的一种原因是生成器与判别器相比学习速度太快。如果判别器 D 保持不变,那么最优生成器将只输出的元素。例如,如果在生成MNIST数据集的GAN训练期间,对于几个epoch,判别器以某种方式更喜欢数字0比其他数字稍微多一点,则生成器可能会抓住机会只生成数字0。即使在判别器改进后,生成器也无法逃脱局部最小值。

梯度消失

总结

本文就生成对抗网络的定义、原理、缺点以及相应的改进简要作了一份综述。生成对抗模型是近年来复杂数据分布上无监督学习最具前景的方法之一。GAN在图像生成、语义分割、数据增强等领域有着广泛的应用。GAN作为一种训练范式,在深度学习发展的当今仍然占有一席之地,如结合变分自编码器的VAEGAN,结合Attention机制的TransGAN等等。

参考文献

  1. Generative adversarial networks.
  2. Generative adversarial networks: An overview.
  3. Do gans always have nash equilibria?
  4. From gan to wgan.
  5. Conditional generative adversarial nets.
  6. Wasserstein generative adversarial net-works.
  7. Alphabeta
Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐