机器学习和人工智能入门大数据,机器学习,人工智能人工智能/模式识别/机器学习精华专题

Towards Principled Methods for T

2020-02-17  本文已影响0人  山雾幻华


[toc]


1. Towards Principled Methods for Training Generative Adversarial Networks

arXiv:1701.04862 [cs, stat]
tensorflow2代码:https://github.com/zhangkaihua88/ML_Paper


2. 总结


摘要

为全面理解生成式对抗网络的训练动力学做出理论上的一步


引言

GAN所用的生成器和其他方法(VAE)并没有明显差别

最小化KL(\mathbb{P}_g||\mathbb{P}_r)
损失函数的权重就会反过来,即损失函数会在生成很假样本的时候给予很高的cost值。

GAN是优化(最原始形态)Jensen-Shannon散度(Jensen-shannon divergence, JSD),这两个cost的转换形式为:
J S D\left(\mathbb{P}_{r} \| \mathbb{P}_{g}\right)=\frac{1}{2} K L\left(\mathbb{P}_{r} \| \mathbb{P}_{A}\right)+\frac{1}{2} K L\left(\mathbb{P}_{g} \| \mathbb{P}_{A}\right)
这里\mathbb{P}_A是平均分布,密度为\frac{P_r+P_g}{2}
GAN成功生成看似真实图像的原因:是由于传统的最大似然方法的转换

GAN形式化成2个步骤,首先训练一个判别器D去最大化:
L(D,g_{\theta})=\mathbb{E}_{x\sim \mathbb{P}_r}\left[ \log D(x)\right]+\mathbb{E}_{x\sim \mathbb{P}_g}\left[ \log(1-D(x))\right]
可以发现最优判别器形如:
D^*(x)=\frac{P_r(x)}{P_r(x)+P_g(x)}

L(D^*,g_{\theta})=2JSD(\mathbb{P}_r||\mathbb{P}_g)-2\log2
当鉴别器是最优的时,最小化等式J S D\left(\mathbb{P}_{r} \| \mathbb{P}_{g}\right)=\frac{1}{2} K L\left(\mathbb{P}_{r} \| \mathbb{P}_{A}\right)+\frac{1}{2} K L\left(\mathbb{P}_{g} \| \mathbb{P}_{A}\right)看成最小化Jensen-Shannon散度的\theta的函数。

理论上,我们期望首先尽可能最优的训练判别器(所以\theta时候的cost函数近似JSD),然后在\theta上进行梯度迭代,然后交替这2个事情。然而,这并不work。判别器目标函数越小,则实际上就是P_rP_g之间的JS散度越小,通过优化JS散度就能将P_g“拉向”P_r,最终以假乱真。
实际上,判别器越好,对生成器的更新就会越糟糕,原始GAN论文认为这个问题主要来自饱和,换成另一个相似cost函数就不会有这个问题了。然而即使使用新的cost函数,更新还是会变得更糟,优化也会变得更不稳定。

就有下面几个问题


不稳定的来源

概念术语

  • 支撑集(support)其实就是函数的非零部分子集,比如ReLU函数的支撑集就是(0, +\infty),一个概率分布的支撑集就是所有概率密度非零部分的集合。
  • 流形(manifold)是高维空间中曲线、曲面概念的拓广,我们可以在低维上直观理解这个概念,比如我们说三维空间中的一个曲面是一个二维流形,因为它的本质维度(intrinsic dimension)只有2,一个点在这个二维流形上移动只有两个方向的自由度。同理,三维空间或者二维空间中的一条曲线都是一个一维流形。
  • 测度(measure)是高维空间中长度、面积、体积概念的拓广,可以理解为“超体积”

判别器越好,生成器梯度消失越严重

理论上训练的判别器的cost基本就是2\log2-2JSD(\mathbb{P}_r||\mathbb{P}_g)
实际上,如果只训练D直到收敛,它的误差接近0。可以得知判别器已经完全胜出了(D训练得更较精确,G的更新会变得越差),并不是均衡。
这种情况发生的时候是

1通过连续,我们实际上将引用一个绝对连续的随机变量(即具有密度的变量),如通常所做的那样。 有关进一步的说明,请参见附录B。常见的分布一般都有密度函数

分布非连续的原因(没有密度函数)

在GAN中,\mathbb{P}_g的定义是从一个简单先验z\sim p(z)进行采样,然后应用一个函数g:\mathcal{Z}\rightarrow \mathcal{X},所以\mathbb{P}_g的支撑集被包含在g(\mathcal{Z})里面。如果\mathcal{Z}的维度小于\mathcal{X}的维度(通常都是这样,采样128维,然后生成28x28的图片),那么是不可能让\mathbb{P}_g变成连续的 。这是因为在大多数情况下g(\mathcal{Z})会被包含在一个低维度流形的联合体上,因此在\mathcal{X}中有测度0存在。而直观上,这是高度非平凡的,因为一个n维的参数绝对不会意味着图片会处于n维流形上。事实上,有许多简单的反例,如Peano曲线,lemniscates等等。

\downarrow对应白话文\downarrow

\uparrow对应白话文\uparrow

假设g是一个NN。下面给出引理:

如果\mathbb{P}_r\mathbb{P}_g的支撑集是不相交或者位于低维流形上,那么总是存在一个完美的判别器

完美的判别理论

\downarrow脉络白话文\downarrow

\uparrow脉络白话文\uparrow

在下一个理论中,先放弃不相交的假设,将其推广到更一般的情况,
假设是2个不同的流形。如果这两个流形在很大部分空间上都是完美匹配的,那么意味着没有判别器可以将它们进行区分。直观上,具有这种情况的两个低维度流形还是很少存在的:对于在特定段中空间匹配的两条曲线,它们不能以遭受任何任意的小方式扰动下还能满足该属性。(即在低维流形中进行稍微扰动下,就分开了)。为此,将定义两个流形完美对齐的概念,并表明在任意的小扰动下,该属性永远不会以概率1保持。(即一扰动,该属性就会被破坏).

这里将流形M的边界表示为\partial M,内部表示为Int M。我们说两个流形\mathcal{M}\mathcal{P}(不管是否有边界)完美对齐是基于下面四组中(Int \mathcal{M}, Int \mathcal{P}),(Int \mathcal{M},\partial \mathcal{P}),(\partial \mathcal{M}, Int \mathcal{P}),(\partial \mathcal{M},\partial \mathcal{P})任意一组无边界流形对完全对齐成立前提下。[2]

如引理3所述,如果两个流形不完美对齐,那么他们的交集\mathcal{L}=\mathcal{M}\cap\mathcal{P}是一个有限流形的并集,其中维度严格小于\mathcal{M}\mathcal{P}

现在叙述下在这种情况下,基于两个流形上最优判别器结果。

这两个定理告诉我们存在一个最优判别器,其在\mathbb{P}_r\mathbb{P}_g几乎任何地方都是平滑而且是常量。所以事实就是该判别器在流形点上是常量,所以没法通过BP学到任何信息,同时在下面介绍的也是常量。下面的定理2.3是将整个理论进行总结得出的

注意到即使两个流形彼此靠得很近,这些散度也会maxed out。而就算生成器生成的样本看上去很好,可是此时两个KL散度可能很大。因此,定理2.3指出使用那些通常用来测试两个分布之间相似性的方法并不是一个好主意。更不用说,如果这些散度总是maxed out并试图通过梯度下降进行最小化也是不可能的。我们期望有一个softer的测度,可以包含流形中点之间距离的概念。我们将在第3节中稍后再讨论该主题,在该部分中我们将解释一个替代指标并提供我们可以分析和优化的范围。

\downarrow结论白话文\downarrow
有了这些理论分析,原始GAN不稳定的原因就彻底清楚了:

\uparrow结论白话文\uparrow

每个cost函数的结果和问题

上述均为原始cost
定理2.1和定理2.2得出一个很重要的事实。如果我们关心的两个分布的支撑集是不相关或者位于低维流形上的,最优判别器可能是完美的,而且梯度几乎在任何地方都是0.

原始的cost函数

一句话概括:判别器越好,生成器梯度消失越严重
接下来将介绍下当通过一个判别器将梯度传递给生成器时会发生什么。与目前为止的典型分析一个关键区别是,作者将开发一套理论来近似最优判别器,而不是使用(未知)真正的判别器。并证明随着近似越来越好,所观察到的梯度消失或者大规模不稳定的行为主要依赖使用的cost函数。
||D||表示范数:
||D||=\underset{x\in\mathcal{X}}{sup}|D(x)|+||\bigtriangledown_x D(x)||_2
该范数的使用可以让证明变得更简单,但是可以在另一个Sobolev范数中完成||\cdot||_{1,p},对于普遍逼近定理所涵盖的p<\infty,此时可以保证在这个范数中的神经网络近似[5]。

可以发现判别器训练的越好,则生成器梯度就会消失,生成器的cost函数接近Jensen-Shannon散度取决于近似的质量好坏。这点告诉我们一个基础理论:要么判别器的更新是不准确的或者直接梯度会消失。这使得训练这个cost变得很困难或者需要用户来决定准确的判别器训练过程,从而让GAN训练变得很困难。

生成器的代替函数-log D(the -log D alternative)

一句话概括:最小化第二种生成器loss函数,会等价于最小化一个不合理的距离衡量,导致两个问题,一是梯度不稳定,二是collapse mode即多样性不足。
为了避免判别器很好时候梯度消失的问题,人们选择使用一个不同的cost函数:
\Delta \theta=\bigtriangledown_{\theta}\mathbb{E}_{z\sim p(z)}[-\log D(g_{\theta}(z))]
现在先叙述并证明该梯度优化的cost函数,随后,证明虽然该梯度不一定会受到消失梯度的影响,但它确实会在最优判别器的噪音近似下导致大量不稳定的更新(在实验中已经广泛证实)。

\downarrow问题分析\downarrow

\uparrow问题分析\uparrow

Note即使我们忽略了更新会有无限的变化(即方差很大),仍然认为更新的分布是可以中心化的,这意味着如果我们限定更新,更新的期望将为0,即不向梯度提供任何反馈。
因为关于D\nabla D的噪音是去相关的假设太严格了,如图3.在训练稳定良好的DCGAN的任何阶段,除非已经收敛,否则当我们训练鉴别器接近最优时,梯度的范数会急剧增长。在所有情况下,使用此更新会导致样本质量不断下降。曲线中的噪音显示梯度的方差也在不断增长,而这会减缓收敛并且在优化阶段会有更多不稳定的行为

更柔和的指标和分布

一个很重要的问题是如何修复不稳定和梯度消失的问题。我们打破这些定理假设的一个方法就是给判别器输入增加连续噪音,因而平滑概率质量的分布。

从定理得知密度P_{X+\epsilon}(X)与到支撑集\mathbb{P}_X的平均距离成反比,由临界点的概率加权。在支撑集\mathbb{P}_X是流形的情况下。我们将得到到沿着流形的点的距离的加权平均值。我们如何选择噪声的分布将影响我们所选择的距离的概念。例如,在我们的corolary中,我们可以看到通过改变指数内的范数来改变协方差矩阵的效果。因此,可以使用具有不同衰变类型的不同噪声。

因此,最佳判别器处于\mathbb{P}_{g+\epsilon}\mathbb{P}_{r + \epsilon}之间
D^{*}(x)=\frac{P_{r+\epsilon}(x)}{P_{r+\epsilon}(x)+P_{g+\epsilon}(x)}

该定理证明,我们将样本g_{\theta}沿着数据流形朝着临界点移动,并对其概率和与样本之间的距离进行加权。 此外,第二项使我们的点远离高概率样本,再次由样本流形和到这些样本的距离加权。 这在本质上与对比散度相似,在对比散度中,我们降低了样本的自由能并增加了数据点的自由能。 当我们拥有比\mathbb{P}_r高的可能性时,从\mathbb{P}_g得出的样本更清楚地看到了该术语的重要性。 在这种情况下,我们将使b> a,并且第二项将具有降低这种太可能样本的概率的强度。 最后,如果x周围有一个区域与\mathbb{P}_g相比具有与\mathbb{P}_r相同的概率,则两个项之间的梯度贡献将抵消,因此当\mathbb{P}_r\mathbb{P}_g相似时,可以稳定梯度。

完全采用上式的梯度步骤存在一个重要问题,那就是在这种情况下,D将忽略恰好位于g_\mathcal(Z)中的误差,因为这是一组度量0。但是,g将仅在该空间上优化其成本。这将使鉴别器极易受到对抗性例子的影响,并且将使生成器的成本降低而鉴别器的成本却不高,并且糟糕的样本将变得毫无意义。当我们意识到上式的期望内的项将为正标量乘以\nabla_{x} \log \left(1-D^{*}(x)\right) \nabla_{\theta} g_{\theta}(z)时,这是很容易看出的,这是朝向精确值的方向导数Goodfellow等人的对抗词。 (2014b)。因此,在发生器中的噪声样本中反向传播也很重要。这将产生关键的好处:生成器的反向支持期限将通过歧视者会关注的一组积极措施上的样本进行。正式化这个概念,通过发生器的实际梯度现在将与\nabla_{\theta} J S D\left(\mathbb{P}_{r+\epsilon} \| \mathbb{P}_{q+\epsilon}\right)成比例,这将使两个噪声分布匹配。当我们对噪声进行退火时,这也会使Pr和Pg匹配。为了完整起见,我们显示了在这种情况下获得的平滑渐变。证明与定理3.2的证明相同,因此我们留给读者。

与定理3.2相同,a和b将具有相同的属性。 主要区别在于,我们会将所有嘈杂的样本移向数据流形,可以将其视为将一小部分样本移向数据流形。 这将保护区分器免受措施0的对抗示例

一个有趣的观察是,如果我们有两个分布在\mathbb{P}_{r}\mathbb{P}_{g}的支撑集在流形上是封闭的,则噪声项将使嘈杂的分布\mathbb{P}_{r+\epsilon}\mathbb{P}_{g+\epsilon}几乎重叠,并且它们之间的JSD将很小。 这与无噪声变型\mathbb{P}_{r}\mathbb{P}_{g}形成了鲜明的对比,在无噪声变型中,所有歧管都最大化,而与歧管的紧密程度无关。 我们可以争辩说,使用带噪声的变体的JSD来度量原始分布之间的相似性,但这将取决于噪声量,而不是\mathbb{P}_{r}\mathbb{P}_{g}的固有度量。 幸运的是,还有其他选择。

当我们减小噪声方差时,它平稳地变为0。

现在我们来谈谈我们的主要结果之一。 我们感兴趣的是研究Pr和Pg之间的距离而没有任何噪声,即使它们的支撑位于不同的歧管上,因为(例如)这些歧管越近,样本数据歧管上的实际点也越近。 此外,我们最终想要一种评估生成模型的方法,而不论它们是连续的(如在VAE中)还是不连续的(如在GAN中),这是一个目前尚未完全解决的问题。 下一个定理将Pr和Pg的Wasserstein距离(无任何噪声或修改)与Pr +和Pg +的发散度以及噪声的方差相关。 由于Pr +和Pg +是连续分布,因此这种偏差是一个明智的估计,甚至可以尝试将其最小化,因为根据这些分布训练的鉴别器将近似它们之间的JSD,并根据Corolary 3.2提供平滑的梯度。

定理3.3告诉我们一个有趣的idea。即上述式子中的两项是可以控制的。第一项可以通过噪音退火的方式来减少,第二项可以通过一个GAN(基于噪音输入来训练判别器)来最小化,因为他会近似于两个连续分布的JSD。该方法的一个优点是我们不再需要担心训练的选择方案。因为噪音,我们可以训练判别器直到最优而且没任何问题,并通过推理3.2得到平滑的可解释梯度。所有这一切仍然是在最小化\mathbb{P}_r\mathbb{P}_g之间的距离,这两个分布也是我们最终关心的两个无噪声分布。

\downarrow结论白话文\downarrow

原始GAN问题的问题根源

本文其实已经针对第二点提出了一个解决方案,就是对生成样本和真实样本加噪声

在训练过程中,我们可以对所加的噪声进行退火(annealing),慢慢减小其方差,到后面两个低维流形“本体”都已经有重叠时,就算把噪声完全拿掉,JS散度也能照样发挥作用,继续产生有意义的梯度把两个低维流形拉近,直到它们接近完全重合。以上是对原文的直观解释。
在这个解决方案下我们可以放心地把判别器训练到接近最优,不必担心梯度消失的问题。而当判别器最优时,对公式26取反可得判别器的最小loss为
\begin{aligned} \min L_D(P_{r+\epsilon}, P_{g+\epsilon}) &= - \mathbb{E}_{x\sim P_{r+\epsilon}}\,\,[\log D^*(x)] - \mathbb{E}_{x\sim P_{g+\epsilon}}\,\,[\log(1-D^*(x))] \\ &= 2\log 2 - 2JS(P_{r+\epsilon} || P_{g+\epsilon}) \end{aligned}
其中P_{r+\epsilon}P_{g+\epsilon}分别是加噪后的真实分布与生成分布。反过来说,从最优判别器的loss可以反推出当前两个加噪分布的JS散度。两个加噪分布的JS散度可以在某种程度上代表两个原本分布的距离,也就是说可以通过最优判别器的loss反映训练进程!……真的有这样的好事吗?
并没有,因为加噪JS散度的具体数值受到噪声的方差影响,随着噪声的退火,前后的数值就没法比较了,所以它不能成为P_rP_g距离的本质性衡量。
加噪方案是针对原始GAN问题的第二点根源提出的,解决了训练不稳定的问题,不需要小心平衡判别器训练的火候,可以放心地把判别器训练到接近最优,但是仍然没能够提供一个衡量训练进程的数值指标。但是WGAN从第一点根源出发,用Wasserstein距离代替JS散度,同时完成了稳定训练和进程指标的问题!

\uparrow结论白话文\uparrow

WGAN前作分析了Ian Goodfellow提出的原始GAN两种形式各自的问题,第一种形式等价在最优判别器下等价于最小化生成分布与真实分布之间的JS散度,由于随机生成分布很难与真实分布有不可忽略的重叠以及JS散度的突变特性,使得生成器面临梯度消失的问题;第二种形式在最优判别器下等价于既要最小化生成分布与真实分布直接的KL散度,又要最大化其JS散度,相互矛盾,导致梯度不稳定,而且KL散度的不对称性使得生成器宁可丧失多样性也不愿丧失准确性,导致collapse mode现象。
WGAN前作针对分布重叠问题提出了一个过渡解决方案,通过对生成样本和真实样本加噪声使得两个分布产生重叠,理论上可以解决训练不稳定的问题,可以放心训练判别器到接近最优,但是未能提供一个指示训练进程的可靠指标,也未做实验验证。


附录

<span id="Appendix_1">附录1——两者分布不重合JS散度为log2</span>

题目:对于真实数据分布P_r和生成数据分布P_g,如果满足上述无法全维度重合的情况的话,则J S D\left(P_{r} \| P_{g}\right)=\log 2
证明
KL散度定义:D_{K L}(P \| Q)=\int_{-\infty}^{\infty} p(x) \log \frac{p(x)}{q(x)} d x
JS散度定义:D_{JS}(P||Q)={\frac{1}{2}} KL(P||M) + {\frac{1}{2}} KL(Q||M) \quad \quad M = {\frac{1}{2}}(P+Q)
\begin{aligned} &\therefore \begin{aligned} J S D(P \| Q)&=\frac{1}{2} \int_{-\infty}^{\infty} p(x) \log \left(\frac{p(x)}{\frac{p(x)+q(x)}{2}}\right)+\frac{1}{2} \int_{-\infty}^{\infty} q(x) \log \left(\frac{q(x)}{\frac{p(x)+q(x)}{2}}\right)\\ &=\frac{1}{2} \int_{-\infty}^{\infty} p(x) \log \left(\frac{2 p(x)}{p(x)+q(x)}\right)+\frac{1}{2} \int_{-\infty}^{\infty} q(x) \log \left(\frac{2 q(x)}{p(x)+q(x)}\right) \end{aligned}\\ &\because \int_{-\infty}^{\infty} p(x)=\int_{-\infty}^{\infty} q(x)=1\\ &\therefore J S D(P \| Q)=\frac{1}{2} \sum p(x) \log \left(\frac{p(x)}{p(x)+q(x)}\right)+\frac{1}{2} \sum q(x) \log \left(\frac{q(x)}{p(x)+q(x)}\right)+\log 2 \end{aligned}
因为对于任意一个x只有四种可能:


Paper---Towards Principled Methods for Training Generative Adversarial Networks
博客园---Generative Adversarial Nets[Pre-WGAN]
CSDN---Wasserstein GANs 三部曲(一):Towards Principled Methods for Training Generative Adversarial Networks的理解
知乎---令人拍案叫绝的Wasserstein GAN

知乎---WGAN和GAN直观区别和优劣
CSDN---GAN(Generative Adversarial Network)的学习历程


  1. 样本多样性缺失,

  2. 有趣的是,在实际中,我们可以很安全的假设任意两个流形不是完美对齐的,因为在这两个流形上任意一个小的扰动都会导致他们有横向交叉或者甚至不交叉。这可以通过引理2进行叙述和证明。

上一篇下一篇

猜你喜欢

热点阅读