Towards Principled Methods For Training Generative Adversarial Networks
文章目录
全文梳理
从整体的角度来简单梳理一下整篇论文:
首先在介绍中解释了训练生成模型的传统方法选择KL散度为目标函数,由于其不对称的性质,当两个分布的密度不一样的时候,选取不同的分布作为参考可能会获得不同的结果。而生成对抗网络的本质是最小化 J S D JSD JSD散度, J S D JSD JSD散度本身是不对称的, G A N s GANs GANs在理论上的训练可以分为两步:第一步是将辨别器训练为最优辨别器,此时关于 θ \theta θ代价函数可以近似 J S D JSD JSD散度,然后再训练生成器,在 θ \theta θ上做梯度更新。但是实际上这种方案是不可行的,在辨别器最优的时候,训练生成器时梯度的更新会消失。于是人们又选择了另外一种代价函数作为替代,虽然解决了生成器梯度消失的问题,但是生成器的梯度更新不稳定,收敛也很慢。
然后在第二部分中,作者分别证明了 P r P_r Pr和 P g P_g Pg实际都是处于一个高维空间中的低维流形上。证明了两个非全维度的流形实际上分本无法完美对齐。然后得出了两个低维流形之间总存在一个完美的辨别器,可以将这两个流形完美的分开。然后证明了刚才所说的完美辨别器其实在两个流形是恒定存在的,并非我们通过反向传播学习得到的,实际上我们并未通过反向传播学习到任何东西。
然后给出了定理:两个非全维度非完美对齐的流形彼此位于任意接近的位置,这些散度也将是最大化的。生成器的样本也许看起来很好,但是 K L KL KL散度仍是无穷。因此,定理2.3指出了一个事实:尝试使用散度来测试分布间的相似性是一个不好的想法。如果这些散度总是最大的,那么尝试通过梯度下降去最小化他们是不可能的。
接着分析了原始的代价函数中存在的问题:当辨别器接近于完美辨别器时(误差为0),那么训练生成器的梯度会变为0,也就是所谓的梯度消失。然后又分析了用以解决梯度消失的代价函数在训练时所存在的问题:生成器梯度的期望时一个具有无穷梯度和方差的柯西分布,这会造成梯度越来越大,训练不稳定。
第三部分中,作者认为要解决上述问题首先要破坏他们的假设条件:向辨别器的输入添加连续的噪声。用来平滑概率的分布。并从中找到了灵感,通过一步一步的改进,最终选择了一种指标: w a s s e r s t e i n wasserstein wasserstein距离。
摘要
本文的目标是朝着完全理解生成对抗网络的训练动态过程迈进理论性的一步。
本片论文主要分为三个部分:
- 第一个部分介绍当前的问题。
- 第二个部分致力于研究和严格证明包括训练不稳定和饱和等训练GANs时出现的问题。
- 第三个部分探讨解决这些问题的实际和理论方向,并介绍了研究它们的新工具。
1. 介绍
G A N s GANs GANs取得了巨大的成功,并运用在多个领域,但是很难训练。近期的文章总是致力于探索稳定的结构,尽管略有小成,这样的方式对于结构的调整非常敏感,使得很难用新的变体进行实验,也很难将这些变体用于新的领域,严重限制了GANs的应用。对于其训练的不稳定性几乎没有理论上的解释,本文出现的目的就是为了打破此现状。
G A N s GANs GANs生成器的结构与其他方法(如变分自动编码器)的结构差别不大。毕竟其核心就是先从简单的先验分布z~p(z)采样,然后输出最终的样本 g θ ( z ) g_\theta(z) gθ(z),有时在终端添加噪声。而 g θ ( z ) g_\theta(z) gθ(z)总是以 θ \theta θ为参数的神经网络,主要的差别在于g θ _\theta θ是如何训练的。
训练生成模型的传统方法
传统的训练生成模型的方式依赖于最大化概率,或者等价的最小化位置数据分布 P r P_r Pr和生成器分布 P g P_g Pg(取决于 θ \theta θ)之间的KL散度,假定两个分布都以密度 P r P_r Pr和 P g P_g Pg连续,这些方法尝试最小化:
K L ( P r ∣ ∣ P g ) = ∫ χ P r ( x ) log P r ( x ) P g ( x ) d x KL(P_r||P_g)=\int_\chi P_r(x) \log\frac{P_r(x)}{P_g(x)}dx KL(Pr∣∣Pg)=∫χPr(x)logPg(x)Pr(x)dx
此cost Function有一个好的性质:它在 P g = P r P_g=P_r Pg=Pr处有一个唯一的最小值,也不需要未知的 P r ( x ) P_r(x) Pr(x)的知识来优化。但是 P r P_r Pr和 P g P_g Pg之间的这种散度是非对称的:
- 如果 P r ( x ) > P g ( x ) P_r(x)>P_g(x) Pr(x)>Pg(x),说明x很容易被当成是一个真实样本,这就是通常所说的 m o d e d r o p p i n g mode\space dropping mode dropping现象的核心原因:很大区域的 P r P_r Pr值很高,而 P g P_g Pg的值很小或者为0时。注意当 P r ( x ) > 0 但 P g ( x ) → 0 P_r(x)>0但P_g(x)\rightarrow0 Pr(x)>0但Pg(x)→0时 K L KL KL内部的积分很快增长至无穷,意味着代价函数因为生成器分布未包含部分数据花费极高的代价。(mode dropping :生成分布的某个集中部分和真实分布逼近,其他部分未能和真实分布逼近,因而造成很大的代价)
- 如果 P r ( x ) < P g ( x ) P_r(x)\lt P_g(x) Pr(x)<Pg(x),说明x很容易被当成一个真实样本,这种情况下生成器输出的图像看起来不真实。在这种情况下, P r ( x ) → 0 但 P g ( x ) > 0 P_r(x)\rightarrow0但P_g(x)>0 Pr(x)→0但Pg(x)>0,我们可以看到 K L KL KL内的值趋于0,意味着代价函数会在生成看起来不真实的图像上花费极低的代价。
如果我们最小化 K L ( P g ∣ ∣ P r ) KL(P_g||P_r) KL(Pg∣∣Pr),情况就会相反,这意味着新的代价函数会花费很高的代价生成看起来不合理的图像。
生成对抗网络训练生成模型的方法
生成对抗网络时最小化 J S JS JS散度,这种散度是上述两个代价函数的对称中间点:
J S D ( P r ∣ ∣ P g ) = = 1 2 K L ( P r ∣ ∣ P A ) + 1 2 K L ( P g ∣ ∣ ( P A ) JSD(P_r||P_g)==\frac{1}{2}KL(P_r||P_A)+\frac{1}{2}KL(P_g||(P_A) JSD(Pr∣∣Pg)==21KL(Pr∣∣PA)+21KL(Pg∣∣(PA)
P A P_A PA是平均分布,密度为 P r + P g 2 \frac{P_r+P_g}{2} 2Pr+Pg。
人们猜想GANs在生成看起来真实的图像的成功是因为转而选择了新的代价函数。但是问题还远远没有结束。
生成对抗网络的形成有两步:
-
训练辨别器 D D D来最大化 L ( D , g θ ) = E x ~ P g [ l o g ( 1 − D ( x ) ) ] L(D,g_\theta)=E_{x~P_g}[log(1-D(x))] L(D,gθ)=Ex~

最低0.47元/天 解锁文章





