论文学习笔记(2)-Generative Adversarial Nets


GAN开篇之作2014年

Abstract

我们通过一个对抗过程( adversarial process)给估计生成模型(generative models)提出了一个新的框架(最后是为了取生成模型)。在这个新的框架中,我们同时训练两个模型:一个用于捕获数据分布的生成模型G,一个判别模型D,用于估计来自训练集数据而非模型G产生的数据的概率。生成模型G的训练过程:最大化判别模型D产生错误的概率(不懂),这个框架与最小化两人博弈相对应。在任意函数G和D的空间中,存在唯一解;其中,G恢复训练数据分布,D处处等于0.5。在G和D由多层感知机定义的情况下,整个系统可以利用BP算法进行训练。在训练模型或者生成样本的过程中,不需要马尔科夫链或展开近似推理网络( unrolled approximate inference networks)。通过定性和定量分析生成样本,实验结果展示了本框架的潜力。

1.Introduction

深度学习有希望发现丰富的,有层次的模型[2],这些模型表达了人工智能应用领域各种数据的概率分布,例如自然图像、语音音频波、自然语言库的符号等数据的概率分布。到目前为止,深度学习最显著的成功都涉及到判别式模型,这些判别式模型将高维、丰富的感官输入映射类别标签[14,20]。这些惊人的成功主要依赖于BP算法dropout算法的应用,特别是具有良好梯度的分段线性单元。深度生成模型的影响力很小,主要是由于:极大似然估计和相关策略中出现了难以解决的概率计算困难、很难利用生成上下文中使用分段线性单元获得的好处。我们提出了一个生成估计模型,分步解决这些困难。

本文提出的对抗网络框架,其中的生成模型类似于与对手对峙:判别式模型要区分样本是来自数据分布还是生成模型分布。(做一个生动的比喻:)生成模型可以认为类似于一个造假团队,试图生产假币而且在不被发现的情况下使用它;而判别模型类似于一个警察,试图检测假币。在这个博弈中的竞争驱使两个团队都改进他们的方法性能直至真品与伪造品难以辨别(目的是:让造假团队的技术达到真假难辨)。

本文提出的框架能够给 许多模型和优化算法 产生特定的训练算法。本文中,我们探索了一个特例:将随机噪声输入到多层感知器的生成模型、判别模型也是一个多层感知器。我们称这个特殊情况为对抗网络。在这情况下,我们可以利用高度成熟的BP算法和dropout算法[16]训练两个模型;以及利用前向算法通过生成模型,计算模型生成样本。(这个过程中)不需要近似推断和马尔科夫链条。

2.Related work

目前,大多数关于深度生成模型的工作都聚焦于 提供概率分布函数的 参数化规范 的模型上。可以通过最大化对数似然函数训练模型。在这个模型家族中,最成功的是深度玻尔兹曼机(Deep Boltzmann machine)[25]。这些模型通常具有难以处理的似然函数,因此需要对似然梯度进行大量的近似。这些困难促使“生成机器”的发展–即不明确表示似然性,但能够从所需分布生成样本的模型。生成随机网络[4]是生成机器的一个例子,它可以通过精确的反向传播而不是Boltzmann机器所需的大量近似来训练。这项工作通过消除生成随机网络中使用的马尔可夫链扩展了生成机器的概念。

我们的工作是通过 生成过程 反向传播导数,通过观察
lim σ 0 x E ϵ N ( 0 , σ 2 I ) f ( x + ϵ ) = x f ( x ) \lim _{\sigma \rightarrow 0} \nabla_{\boldsymbol{x}} \mathbb{E}_{\epsilon \sim \mathcal{N}\left(0, \sigma^{2} \boldsymbol{I}\right)} f(\boldsymbol{x}+\epsilon)=\nabla_{\boldsymbol{x}} f(\boldsymbol{x})

3.Adversarial nets

当(生成模型和判别模型)都是多层感知器时,对 抗模型框架 能够被直接应用。为了学习 生成器 在 数据 x x 的分布,我们在输入噪声变量 p z ( z ) p_z(z) 的(基础)上定义了一个先验,将 数据空间 的映射 表达成 G ( z ; θ g ) G(z;\theta_g) ,其中 G G 是由多层感知器表示的可微函数,参数为 θ g \theta_g 。我们还定义了第二个多层感知器 D ( X ; θ d ) D(X;\theta_d) ,它的输出是一个简单的标量。 D ( x ) D(x) 表l示x来自数据而不是 p g p_g 的 概率。我们训练 D D ,以最大化给训练样本和G产生的样本打上正确标签概率。我们同时训练 G G 最小化 l o g ( 1 D ( G ( Z ) ) ) log(1-D(G(Z))) 。换一句话说, D D G G 使用值函数 V ( G , D ) V(G,D) ‘开展’一下的双人最小最大博弈
(1) ( min G max D V ( D , G ) = E x p d a t a ( x ) [ l o g D ( x ) ] + E z p z ( z ) [ l o g ( 1 D ( G ( z ) ) ) ] (\min_G\max_DV(D,G)=E_{x\sim p_{data}(x)}[logD(x)]+E_{z\sim p_z(z)}[log(1-D(G(z)))]\tag 1
在下一节中,我们会展示对抗网络的理论分析,基本上显示:训练标准允许人们恢复数据的生成分布,因为 G G D D 被赋予足够的容量(enough capacity) ,例如,在非参数限制中。本方法的不太正式,更具教学意义的解释,请参见图1。实际中,我们需要使用迭代的数值方法来是实施博弈。在训练的内层循环中‘优化D到完成(完美)’在计算上是不可能实现的,并且在有限数据集合上会导致过拟合。相反,我们在’k步优化D’与‘一步优化G’之间交替进行。这一处理方式,只要G变换的足够慢;就能使得D保持接近他的最优解。这一过程在算法1中正式呈现。

在实际中,等式1可能无法为‘G学习到足够好’提供足够的梯度。在学习之初,当G的性能很差时,D可以‘有高自信’地拒绝样本;因为这些样本与训练数据明显不同。在这种情况下, l o g ( 1 D ( G ( z ) ) ) log(1-D(G(z))) 饱和的。我们可以训练G去最大化 l o g ( D ( G ( z ) ) ) log(D(G(z))) ,而不是训练G去最小化 l o g ( 1 D ( G ( z ) ) ) log(1-D(G(z))) 。该目标方程 导致了 G和D的相同的动力学固定点,但是,在早期学习的时候提供更强的梯度。

4.Theoretical Results

生成器G隐含地将概率分布 p g p_g 定义为当 z p z z\sim p_z 时所获得的样本G(z)的分布。因此,如果给定足够的容量和训练时间,我们希望 算法1收敛至 p d a t a p_{data} 的良好预期。这个部分的结果是在非参数设定中完成的,例如,我们通过研究概率密度函数空间的收敛性 来 表示具有 有限容量的模型。

我们会在4.1节中展示这个最小最大化博弈对于 p g = p d a t a p_g=p_{data} 有一个全局最优。我们会在4.2节展示算法1优化等式1,从而获得期待的结果

在这里插入图片描述
图1:通过同时更新判别分布(D蓝色,虚线)来训练生成对抗网络,以便区分来自数据产生分布(黑,虚线) p x p_x 模型产生的分布(绿色,实线) p g ( G ) p_g(G) 。下面的水平线是z 的采样域,(图示)这种情况下是均匀的,上面的水平线是x域的一部分。向上的箭头显示了映射 x = G ( z ) x=G(z) 如何对变换样本施加非均匀分布。G在高密度区域收缩,在低密度区域扩展。再解释4个图

4.1全局最优 p g = p d a t a p_g=p_{data}

首先固定G,寻求D使,GAN目标函数 V ( G , D ) V(G,D) 最大化。等价于求 p d a t a p_{data} p g p_g 之间的JS散度。
固定 D D^* ,寻求G使得 V ( G , D ) V(G,D^*) 最小,就是使 p d a t a p_{data} p g p_g 之间的JS散度最小化,当 p g = p d a t a p_g=p_{data} , V ( G , D ) V(G,D^*) 最小。

4.2算法1的收敛性质

理论分析:严格按照4.1求解, p g p_g 会收敛于 p d a t a p_{data} 。但是采用迭代优化时,求出最优的 D D^* 之后,迭代一步 G 0 > G 1 G_0->G_1 ,此时 D D^* 不是 V ( G 1 , D ) V(G_1,D) 的最大值,那么,继续迭代将会愈加偏离收敛目标。且迭代找到最优值需要的次数很多,所以,在实际算法中,没更新k次判别器后更新一次生成器。虽然 p g p_g 不会严格收敛于 p d a t a p_{data} ,但是,生成器的效果已经能够符合人么的需求。

5.Experiments

我们用一系列数据集训练了对抗网络,包括 MNIST [23],多伦多人脸数据库(TFD)[28]和CIFAR-10 [21]。 生成网络使用线性激活[19,9]和 S 形激活的混合激活层,而判别网络使用 Maxout[10]激活。随机丢弃算法(Dropout)[17]用于训练判别网络。 虽然我们的理论框架允许在生成器
的中间层使用压差和其他噪声,但我们使用噪声作为生成网络最底层的输入。.
我们通过将高斯 Parzen 窗口拟合到用 G 生成的样本并在该分布下报告对数似然来估计测试集数据在 p g p_g 下的概率。参数σ通过验证集上的交叉验证获得高斯算子。 该程序在 Breuleux 等人的研究中[8]引入并用于各种生成
模型,其确切的可能性是不易处理的[25,3,5]。实验结果 显示在表 1 中。这种估计概率的方法具有稍高的
方差,并且在高维空间中表现不佳,但它是我们所知的最佳方法。 可以采样但不能估计概率的生成模型的进步直接激发了对如何评估此类模型的进一步研究。

6.Advantagesa and disadvantages

与以前的建模框架相比,这个新框架具有优点和缺点。缺点主要在于没有 p g ( x ) p_g(x) 的明确表示,并且 D 在训练期间必须与 G 很好地同步(特别是,在不更新 D 的情况下,G 不得过多训练,以避免“Helvetica 场景” “其中 G 将太多的 z 值折叠到 x 的相同值以具有足够的多样性来模拟 p d a t a p_{data} ”,就像Boltzmann 机器的负链必须在学习步骤之间保持最新一样。优点是永远不需要马尔可夫链,只有反向传播,学习期间不需要推理,并且可以将多种功能合并到模型中。表 2 总结了生成对抗网络与其他生成建模方法的比较。
上述优点主要是在计算上。对抗模型也可能从生成网络中获得一些统计优势,而不是直接用数据示例更新,而是仅通过流经判别器的梯度。这意味着输入的组件不会直接复制到生成器的参数中。对抗性网络的另一个优点是它们可以表示非常尖锐,甚至是较为初始的分布,而基于马尔可夫链的方法要求分布有些模糊,以便链能够在模式之间混合.

7.Conclusions and future work

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

  1. 条件生成模型 p ( x c ) p(x|c) : 可以通过将 c 作为 G 和 D 的输入来得到这个后验概率 。
  2. 给定 x,可以通过训练一个辅助的网络来学习近似推理,达到预测 z 的目的。这和 wakesleep 算法[15]训练出的推理网络类似,但是它具有一个优势,就是在生成器训练完成后,这个推理网络可以针对固定的生成器进行训练。
    3.可以通过训练共享参数的条件模型族来近似地对所有条件概率 p ( x s x s ) p(x_s|x_{s'}) 进行建模,其中 S是 x 下标的子集。本质上,可以使用敌对网络来实现确定性 MP-DBM[11]的随机扩展。
    4.半监督学习:当有限的标签数据可用时,来自鉴别器或推理网络的特征可以改善分类器的性能。
    5.改善效率:通过为协调 G 和 D 设计更好的方法,或在训练期间确定更好的分布来采样 z,能够极大的加速训练。
    本文已经展示了对抗模型框架的可行性,表明这些研究方向是有用的。

猜你喜欢

转载自blog.csdn.net/sinat_40624829/article/details/89424643