Generative Adversarial Nets 论文解读与翻译

这是GAN网络的开山之作,一开始只是想看一看,写写心得,但不知怎么的就把翻译给写下来了(一部分摘自其他Blog),贴上来也方便以后查阅。

背景

得益于反向传播算法和Dropout算法,使用线性分段单元的判别模型往往能够获得很好的梯度,而深度生成模型则没有很好地从深度学习网络之中获得利好,因为在极大似然估计以及相关策略上面会碰到很多复杂顽固的概率计算,而且把piecewise linear units(分段线性单元)用在生成模型上面比较困难。在这个背景之下lan J.Goodfellow等人提出了一种新的生成模型评价方法来解决这个难题。

在文章提出的对抗网络框架当中,生成模型和他的对手进行对抗:一个判别模型,他可以判断一个样本是数据集中的样本亦或是由生成模型产生的伪样本。可以将生成模型来比作一个造假币的团伙,尝试制造出不能被检测出来的假币,而判别模型就是将这些假币识别出来的警察。这场博弈里面不断驱使着造价团伙造出更加真实的假币,也驱使这警察的判别手段更加高明。

这个框架可以应用很多其他模型的训练和优化方法。在本文中将探索一种特别的情况,生成模型由一种在随机噪音的驱使之下通过多重感知器产生样本。把这种特殊的情况称为对抗网络。在这个情况下,我们可以用目前高度成功的反向传播算法和Drop算法来对两个模型来进行训练,而对于生成网络仅仅采用正向传播算法。并不涉及到马尔科夫(Markov)链。

相关工作

含有隐变量的有向图模型可以由含有隐藏的无向图模型来替代,例如受限的波兹曼机(RBM),深度波兹曼机(DBM)和它们很多的变种。这些模型之间的相互影响可以被表达为非标准化的势函数的乘积,再通过随机变量的非标准化的势函数的乘积,再通过随机变量的所有状态的全局整合来标准化。这个数量(配分函数)和他的梯度是很棘手的,尽管他们可以通过马尔卡夫链和蒙特卡洛算法来进行估计,但是依靠蒙特卡洛方法的混合也会带严重的问题。

深度信念网络(DBN)是一个包含一个无向层和若干有向层的混合模型。当使用一个快速逐层训练法则时,DBNS 会引发无向模型和有向模型相关的计算难题。

不是利用似然函数的估计或约数的选择准则已经被提出来了,例如分数匹配和噪音压缩评估(NCE)。他们都需要知道先验概率密度知识用来分析指定一个规范化的常量。请注意,许多有趣的带有一些隐层变量的生成模型(如DBN和DBM),它们甚至不需要一些难以处理的非标准化的概率密度先验知识。一些模型如自动编码降噪机和压缩编码的学习准则与分数匹配在RBM上的应用非常相似。在NCE中,使用一个判别训练准则来拟合一个生成模型。然而,生成模型常常被用来判别从一个固定噪音分布中抽样生成的数据,而不是拟合一个独立的判别模型。由于NCE使用一个固定的噪音分布,仅仅是从观测变量的一个小子集中学习到一个大致正确的分布后,模型的学习便急剧减慢。

最后,一些技术并没有用来明确定义概率分布,而是用来训练一个生成器来从期望的分布中拟合出样本。这个方法优势在于这些机器学习算法能够设计使用反向传播算法训练。这个领域最近比较突出的工作包含生成随机网络(GSN),它扩展了广义的除噪自动编码器:两者都可以看作是定义了一个参数化的马尔可夫链,即一个通过执行生成马尔科夫链的一个步骤来学习机器参数的算法。同GSNs相比,对抗网络不需要使用马尔可夫链来采样。由于对抗网络在生成阶段不需要循环反馈信息,它们能够更好的利用分段线性单元,这可以提高反向传播的效率。大部分利用反向传播算法来训练生成器的例子包括变分贝叶斯自动编码和随机反向传播。

对抗网络

当模型都是多层感知器时,对抗模型框架是最直接应用的。为了解释生成器在关于数据x上的分布 ,我们定义了一个预先输入的噪声变量 ,然后使用 来代表数据空间的映射。在这里的 是一个由含有参数 的多重感知机表示的可微函数。我们也定义了另一个输出单独标量的多重感知机 代表了x来自于真实的数据分布而不是 的概率。我们训练D来最大化其分配正确的标签给来自训练样例与生成器的样本的概率。我们同时训练G来最小化。换句话说,D和G的训练是一个关于价函数 来进行极小化极大的二人博弈问题:

在下一节中,我们提出了对抗网络的理论分析,基本上表明了训练准则可以恢复数据生成分布,因为 给予了足够的容量,也即在非参数限制情况。如题 1 展示了一个不那么正式,更加直观的对该方法的解释。实际上,我们必须使用迭代数值的方法来实现这个过程。在训练的内部循环中优化 直到完成训练的计算是禁止的,同时有限的数据集将导致结果的过拟合。相反,我们在优化 个步骤和优化 的一个步骤之间进行交题。这导致只要 变化的足够慢, 总可以保持在它的最优解附近,该过程的正式表示如算法 1 所示。

实际上,方程 1 可能不会提供足够的梯度给 很好地学习。训练初期,当 的省城效果还很差的时候 可以以很高的置信度来拒绝生成的样本,因为他们明显和训练集中的数据不一样。在这种情况下, 是饱和的(此时对应的梯度非常非常小)。因此我们选择最大化 而不是最小化 来对模型 进行训练。该目标函数使得 的动力学稳定点相同,并且可以提供更强的梯度给早期的训练。

算法执行示意图

图1:训练生成对抗网络的时候,同时更新判别分布( ,蓝色虚线),使其能够把数据生成分布中的样本(黑色点线) 从生成分布 (绿色实线)中的样本区分出来。下面的水平线是 的均匀采样区域。在水平线的上方为 的部分区域。向上的箭头展示了映射 如何将非均匀分布 作用在转换后的样本上。 的高密度区域收缩,在 的低密度区域扩散。(a)考虑一个接近收敛的对抗的模型对 相似,且 是个部分准确的分类器。(b)算法的内循环中,训练 来判别数据中的样本,收敛到: 。(c)在 的1次更新后, 的梯度引导G(z)流向更可能分类为数据的区域。(d)训练若干步后,如果G和D性能足够,它们接近某个稳定点并都无法继续提高性能,因为此时 。判别器将无法区分训练数据分布和生成数据分布,即

理论结果

时,生成器 隐式定义了一个概率分布 作为 获得的概率分布。因此,我们希望在容量和训练时间足够的情况下,算法 能够收敛到 的一个良好估计值。这一节的结果是在非参数设置下完成的,例如,我们通过研究概率密度函数空间中的收敛来表示具有无限容量的模型。

我们会在 节中展示这个极小化极大问题的全局最优解为 。我们会在 节中优化式 ,由此获得一个期望的结果。

算法1.生成对抗网络的Minibatch随机梯度下降训练。判别器的训练步数step,k,是一个超参数。在试验中我们使用最小化消耗的选择,令

算法1图

的全局最优解

我们首先考虑对任意给定生成器 的全局最优解。

命题 1. 对于给定不变的 ,判别器 的最优解为:

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

对任意 ,函数 中的 处达到最大值。无需在 外部定义判别器,证毕。

注意到,判别器D的训练目标可以看作为条件概率 的最大似然估计,当y=1时,x来自于;当y=0时,x来自 。公式1中的极小化极大问题可以变形为:

定理1. 当且仅当 时,C(G)达到全局最小。此时, 的值为

证明. 时,D∗G(x)=12(公式)。再根据公式 可得,。为了看仅当pg=pdata时C(G)是否是最优的,观测:

然后从减去上式,可得:

其中KL为Kullback–Leibler散度。我们在表达式中识别出了模型判别和数据生成过程之间的Jensen–Shannon散度:

由于两个分布之间的Jensen–Shannon散度总是非负的,并且当两个分布相等时,值为0。因此 的全局极小值,并且唯一解为,即生成模型能够完美的复制数据的生成过程。

算法1的收敛性

命题2. 如果G和D有足够的性能,对于算法1中的每一步,给定G时,判别器能够达到它的最优,并且通过更新pg来提高这个判别准则。

收敛为

证明. 如上述准则,考虑 为关于 的函数。注意到
的凸函数。该凸函数上确界的一次导数包括达到最大值处的该函数的导数。换句话说,如果 且对于每一个 是关于x的凸函数,那么如果 ,则 。这等价于给定对应的 和最优的 ,计算 的梯度更新。如定理 所证明,是关于 的凸函数且有唯一的全局最优解,因此,当pg的更新足够小时, 收敛到 ,证毕。

实际上,对抗的网络通过函数G(z;θg)表示pg分布的有限簇,并且我们优化θg而不是pg本身。使用一个多层感知机来定义G在参数空间引入了多个临界点。然而,尽管缺乏理论证明,但在实际中多层感知机的优良性能表明了这是一个合理的模型。

实验

我们在一系列数据集上,包括MNIST、多伦多面数据库(TFD)和CIFAR-10,来训练对抗网络。生成器的激活函数包括修正线性激活(ReLU)和sigmoid 激活,而判别器使用maxout激活。Dropout被用于判别器网络的训练。虽然理论框架可以在生成器的中间层使用Dropout和其他噪声,但是这里仅在生成网络的最底层使用噪声输入。

我们通过对G生成的样本应用高斯Parzen窗口并计算此分布下的对数似然,来估计测试集数据的概率。高斯的 参数通过对验证集的交叉验证获得。Breuleux等人引入该过程且用于不同的似然难解的生成模型上。结果报告在表 中。该方法估计似然的方差较大且高维空间中表现不好,但确实目前我们认为最好的方法。生成模型的优点是可采样而不直接估计似然,从而促进了该模型评估的进一步研究。

表1.基于Parzen窗口的对数似然估计。MNIST上报告的数字是测试集上的平均对数似然以及在样本上平均计算的标准误差。在TFD上,我们计算数据集的不同折之间的标准误差,在每个折的验证集上选择不同的σ。在TFD上,在每一个折上对σ进行交叉验证并计算平均对数似然函数。对于MNIST,我们与真实值(而不是二进制)版本的数据集的其他模型进行比较。

训练后的生成样本如下图2、图3所示。虽然未声明该方法生成的样本由于其它方法生成的样本,但我们相信这些样本至少和文献中更好的生成模型相比依然有竞争力,也突出了对抗的框架的潜力。

图2:来自模型的样本的可视化。最右边的列示出了相邻样本的最近训练示例,以便证明该模型没有记住训练集。样品是完全随机抽取,而不是精心挑选。与其他大多数深度生成模型的可视化不同,这些图像显示来自模型分布的实际样本。此外,这些样本是完全不相关的,因为,采样过程并不依赖马尔科夫链混合。a) MNIST;b) TFD;c) CIFAR-10(全连接模型);d) CIFAR-10(卷积判别器和“解卷积”生成器)

图3:通过在完整模型的z空间的坐标之间进行线性内插获得的数字。

表2:生成建模中的挑战:对涉及模型的每个主要操作的深度生成建模的不同方法遇到的困难的总结。

优势和劣势

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

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

结论和未来研究方向

该框架允许许多直接的扩展:

条件生成模型 可以通过将 作为 的输入来获得。
给定 ,可以通过训练一个任意的模型来学习近似推理,以预测 。这和wake-sleep算法训练出的推理网络类似,但是它具有一个优势,就是在生成器训练完成后,这个推理网络可以针对固定的生成器进行训练。
能够用来近似模型所有的条件概率 ,其中 通过训练共享参数的条件模型簇的关于x索引的一个子集。本质上,可以使用生成对抗网络来随机拓展MP-DBM。
半监督学习:当标签数据有限时,判别网络或推理网络的特征不会提高分类器效果。
效率改善:为协调 设计更好的方法,或训练期间确定更好的分布来采样 ,能够极大的加速训练。

本文已经展示了对抗模型框架的可行性,表明这些研究方向是有用的。