Goodfellow 等人提出来的 GAN 是通过对抗过程估计生成模型的新框架。在这种框架下,我们需要同时训练两个模型,即一个能 捕获数据分布 的 生成模型 G 和一个能 估计数据来源于真实样本概率 的 判别模型 D。生成器 G 的训练过程是最大化判别器犯错误的概率,即判别器误以为数据是真实样本而不是生成器生成的假样本。因此,这一框架就对应于两个参与者的极小极大博弈(minimax game)。在所有可能的函数 G 和 D 中,我们可以求出 唯一均衡解 ,即 G 可以生成与训练样本相同的分布,而 D 判断的概率处处为 1/2。
3 对抗网
当模型都为多层感知机时,对抗性建模框架可以最直接地应用。为了学习到生成器在数据 上的分布
,我们先定义一个先验的输入噪声变量
,然后将到数据空间的映射表示为
,其中
为多层感知机所表征的可微函数,
为生成器G的参数。我们还定义了第二个多层感知器
,它的输出为单个标量。D(x) 表示 x 来源于真实数据的概率。我们训练 D 以最大化正确分配真实样本和生成样本的概率,同时训练 G 最小化
。也就是说判别器 D 和生成器 G 对价值函数 V(G,D) 进行了极小极大化博弈:

我们后一部分会对对抗网络进行理论上的分析,该理论分析本质上可以表明如果 G 和 D 的模型复杂度足够(即在非参数限制下),那么对抗网络就能生成数据分布。
4 理论结果
生成器 G 隐式定义了一个概率分布 ,即当
~
时得到的样本
的分布。因此,如果有足够的容量和训练时间,我们希望算法1能收敛到
。本节的结果是在非参数设置下完成的,例如,我们通过研究概率密度函数空间的收敛来表示一个具有无限容量的模型。
我们将在4.1节中说明这个极小极大对弈对 具有全局最优性。然后,我们将在4.2节中说明算法1优化了Eq 1,从而获得了预期的结果。

如上图所示,生成对抗网络会训练并更新判别分布(即 D,蓝色的虚线),更新判别器后就能将数据真实分布(黑点组成的线)从生成分布 (绿色实线)中判别出来。下方的水平线代表采样域
,其中等距线表示
中的样本为均匀分布,上方的水平线代表真实数据
中的一部分。向上的箭头表示映射
如何对噪声样本(均匀采样)施加一个不均匀的分布
。
(a)考虑在收敛点附近的对抗训练: 和
已经十分相似,D 是一个局部准确的分类器。
(b)在算法内部循环中训练 D 以从数据中判别出真实样本,该循环最终会收敛到 。
(c)随后固定判别器并训练生成器,在更新 G 之后,D 的梯度会引导 流向更可能被 D 分类为真实数据的方向。
(d)经过若干次训练后,如果 G 和 D 有足够的复杂度,那么它们就会到达一个均衡点。这个时候 ,即生成器的概率密度函数等于真实数据的概率密度函数,也即生成的数据和真实数据是一样的。在均衡点上 D 和 G 都不能得到进一步提升,并且判别器无法判断数据到底是来自真实样本还是伪造的数据,即
。
图中的黑色虚线表示真实的样本的分布情况,蓝色虚线表示判别器判别概率的分布情况,绿色实线表示生成样本的分布。 表示噪声,
到
表示通过生成器之后的分布的映射情况。
可以看到在(a)状态处于最初始的状态的时候,生成器生成的分布和真实分布区别较大,并且判别器判别出样本的概率不是很稳定,因此会先训练判别器来更好地分辨样本。
通过多次训练判别器来达到(b)样本状态,此时判别样本区分得非常显著和良好。然后再对生成器进行训练。
训练生成器之后达到(c)样本状态,此时生成器分布相比之前,逼近了真实样本分布。
经过多次反复训练迭代之后,最终希望能够达到(d)状态,生成样本分布拟合于真实样本分布,并且判别器分辨不出样本是生成的还是真实的(判别概率均为0.5)。也就是说我们这个时候就可以生成出非常真实的样本啦,目的达到。
算法1:
对于每一次迭代:
- 从真实数据分布
抽取 m 个样本
- 从先验分布
抽取 m 个噪声样本
- 将噪声样本投入 G 而生成数据 {
},
,通过最大化 V(G,D) 的近似而更新判别器参数
,即极大化

且判别器参数的更新迭代式为

以上是学习判别器 D 的过程。因为学习 D 的过程是计算 JS 散度的过程,并且我们希望能最大化价值函数,所以该步骤会重复 k 次。
- 从先验分布
中抽取另外 m 个噪声样本 {
}
- 通过极小化 V(G,D) 而更新生成器参数
,即极小化

且生成器参数的更新迭代式为

以上是学习生成器参数的过程,这一过程在一次迭代中只会进行一次,因此可以避免更新太多而令 JS 散度上升

4.1
的全局最优性
我们首先考虑任何给定发生器G的最佳判别器D
命题1
当G固定时,最优鉴别器D为
证明: 给定任何生成器 G,鉴别器D的训练目标是最大化
对于任何 ,函数
在
中达到最大值。
注意,D的训练目标可以解释为最大化对数似然,以估计条件概率 ,其中
表示
是来自
还是
。等式1中minimax可以重新表示为:

定理1
当且仅当 时,虚拟训练准则
的全局最小值得以实现。此时,
的值为
。
对于 ,(公式2)。 因此,通过检查
的等式4,我们发现
。要知道这是仅在
时
可能达到的最佳值,请观察

通过从 减去该表达式,我们得到

KL是Kullback-Leibler散度。 我们在前面的表达式中认识到模型的分布与数据生成过程之间的詹森-香农差异:

由于两个分布之间的詹森-香农散度总是非负的,并且当它们相等时为零,我们证明了 是
的全局最小值,唯一的解是
,即生成模型完美地复制了数据分布。
4.2 算法1的收敛
命题2
如果G和D有足够的性能,对于算法1中的每一步,给定G时,判别器D能够达到它的最优,并且通过更新 来提高判别准则:。

然后 收敛到
。
证明:将 视作
的函数,则
为
的凸函数,其上确界的次导数一定包括该函数最大值处的导数,所以给定D时,通过梯度下降算法更新
从而优化G时,pg一定会收敛到最优值。而之前又证明了目标函数只有唯一的全局最优解,所以pg会收敛到pdata。
实际上优化G时是更新θg而不是pg。多层感知器在实践中的出色性能表明,尽管缺乏理论上的保证,但它们仍是使用的合理模型。
优点和缺点
缺点:
- 没有明确表示
- 在训练过程中 D 必须与 G 很好地同步(特别是,在不更新 D 的情况下,G 不能被过多训练,以避免出现“ Helvetica场景”,其中 G 将太多的 z 值折叠为相同的 x 值,以至于没有足够的多样性来建模
优点
- 不再需要马尔可夫链,仅使用反向传播即可获得梯度
- 在学习过程中无需进行推理
- 可以将多种功能集成到模型中
参考链接:
Generative Adversarial Nets
通俗理解生成对抗网络GAN - 陈诚的文章 - 知乎
机器之心GitHub项目:GAN完整理论推导与实现,Perfect!
论文阅读之Generative Adversarial Nets
网友评论