GANs的演进与训练技巧
GAN由生成器和判别器构成,两者的目标函数均为度量生成数据分布与真实数据分布之间距离的函数。那么,距离度量函数对概率分布序列拟合有很大的影响。同时,GAN的训练非常不稳定,且模型很容易出现模式坍塌,即生成样本的多样性受到损失。因此,对损失函数和训练方法的改进,不断的出现。
损失函数的演进
在统计中,度量两个分布之间距离常用KL-Divergence
$$
\begin{aligned}
D_{KL}(P\Vert Q)=\sum_{x\in\chi}P(x)log(\frac{P(x)}{Q(x)})
\end{aligned}\tag{1}
$$
该距离度量方式为非对称的,且在$P_g(x)=0,P_{r}(x)\gt0$为$\infty$
GAN
最初,GAN的目标函数为Jensen-Shannon-Divergence
$$
\begin{aligned}
JSD(P\Vert Q)=\frac{1}{2}D(P\Vert M)+D(Q\Vert M)
\end{aligned}\tag{2}
$$
式(1)中$M=\frac{1}{2}(P+Q)$
该距离度量方式是对称的,且一直有定义。
f-GAN
f-GAN主要研究了各种f-divergence函数作为生成模型GAN的距离度量函数的益处。同时,表明生成式对抗为通用变分距离估计方式的特殊情况。其中,f-divergence函数族为
$$
\begin{aligned}
D_f(P\Vert Q)=\int_{\chi}q(x)f(\frac{p(x)}{q(x)})dx
\end{aligned}\tag{3}
$$
式中生成器函数$f:\mathbb{R}_{+}\to\mathbb{R}$为凸的下半连续函数,且$f(1)=0$。
LSGAN
LSGAN利用最小二乘作为判别器的损失函数,这是因为与真实样本距离实际很远但被分类为真实样本的样本,容易造成Sigmoid损失函数的梯度容易为$0$,从而无法进一步的拉近生成样本与真实样本的距离。然而,最小二乘度量的是真实样本与生成样本之间的欧式距离,不会有梯度消失的问题,且实践表明训练的稳定性较强。
WGAN
WGAN利用Earth-Mover(也称为Wasserstein-1)距离度量两个分布之间的距离
$$
\begin{aligned}
W(\mathbb{P}_{r},\mathbb{P}_g)=\underset{\gamma\in\Pi(\mathbb{P}_{r},\mathbb{P}_{g})}{inf}\mathbb{E}_{(x,y)\in\gamma}[\Vert x-y \Vert]
\end{aligned}\tag{4}
$$
式中$\Pi(\mathbb{P}_{r},\mathbb{P}_g)$表示所有联合分布$\gamma(x,y)$的集合,其边缘分布为$\mathbb{P}_{r}$和$\mathbb{P}_g$
直觉上,$\gamma(x,y)$表示为了把分布$\mathbb{P}_{r}$变为$\mathbb{P}_g$,那么从$x$到$y$需要传输的“质量”,即EM距离度量了最优传输计划的成本。与JS-Divergence相比,在EM距离度量下,模型具有较强的拟合能力,且模型的训练稳定性较强。
在实践中,极小化很难求,根据Kantorovich-Rubinstein对偶理论,可为
$$
\begin{aligned}
W(\mathbb{P}_{r},\mathbb{P}_{\theta})=\underset{\Vert f\Vert_L\le1}{sup}\mathbb{E}_{x\sim\mathbb{P}_r}[f(x)]-\mathbb{E}_{x\sim\mathbb{P}_{\theta}}[f(x)]
\end{aligned}
$$
式中极大化是对所有1-Lipschitz连续函数$f:\chi\to\mathbb{R}$所求。
在WGAN中,critic的1-Lipschitz连续是通过权重clipping实现的,可见算法1。

在WGAN的实现中,生成器的前$25$次迭代,每次迭代对应判别器迭代100次;每500次生成器迭代,判别器迭代100次;其余情况下判别器每次迭代生成器迭代5次。
RGANs与RaGANs
论文《The relativistic discriminator: a key element missing from standard GAN》作者们认为GAN的训练应该减少真实数据为真的概率,原因如下:
- mini-batch数据中真实数据和生成数据各占一半,这属于先验知识。
- 真实数据与生成数据之间距离最小化时,可观测到真实数据为真的概率在降低。
- 最优场景下,标准GAN与积分概率度量GANs属于等价的。
Plus: 积分概率度量是通过函数空间中最大差异定义两个分布之间的距离,例如:WGAN利用Lipschitz函数空间。JS-Divergence通过概率比的对数形式度量两个分布之间的距离,f-Divergence族
均为此方式。
这种减少真实数据为真的概率可利用“相对判别器”引入,即估计给定真实数据与随机采样虚假数据更真实的概率,该算法被称为RGANs。若判别器估计给定真实数据比随机采样虚假数据平均上更真实的概率,那么该算法为RaGANs。实践中,作者们观测到RGANs和RaGANs均显著的更稳定,且生成更高质量的样本。在梯度惩罚范式下,标准RaGAN生成的数据比WGAN-GP质量好,且每次生成器更新只需要单个判别器更新。论文中,作者们表明积分度量的GAN为RGAN的特殊形式。
训练技巧
训练不稳定的原因分析
理论上,标准GAN的训练先训练判别器使其尽可能的最优(损失函数才能够更好的近似对称的距离度量方法JS-Divergence),再进行生成器的梯度更新。然而,实践中,随着判别器性能越好,而生成器反而变得更坏。标准GAN作者们认为该问题产生于饱和,而其它的损失函数不存在这样的问题。实际上,即使新的损失函数,生成模型性能也会变差且不稳定。
论文《Towards Principled Methods for Training Generative Adversarial Networks》分析了训练不稳定的原因,且提供了避免不稳定性问题的新设计方向。
训练不稳定性的来源
先来讨论下训练不稳定的来源,性能较优判别器的最大损失为$2log2-2JSD(\mathbb{P}_r\vert\mathbb{P}_g)$。然而,实践中,若训练判别器直至拟合,那么误差将会趋近于$0$,此时$JSD$是最大值$log2$。这是矛盾的,因为最优判别器下优化生成器应属于最小化JSD,反而JSD取了最大值。这种情况发生情况要么是分布属于不连续的,要么生成数据与真实数据支撑集无交集。
若数据的支撑集存在于低维流形,那么分布是不连续的。真实数据完全存在于低维流形,这是有实验和理论证据提供支持的。生成样本被定义为从简单的先验$z\sim p(z)$中采样,基于函数$g: \mathcal{Z}\to\mathcal{X}$进行样本生成,那么$\mathbb{P}_g$的支持被包含在$g(\mathcal{Z})$内。若$\mathcal{Z}$的维度小于$\mathcal{X}$的维度,那么$\mathbb{P}_g$不可能连续。这是因为大部分情况下$g(\mathcal{Z})$被包含在一个低维流形集合中,因此在$\mathcal{X}$中的度量为$0$。
对于生成样本存在于低维流形,作者们在论文中进行了证明,得到引理1
引理1:
若$g:\mathcal{Z}\to\mathcal{X}$为仿射变换和逐点非线性组合成的函数。那么,$g(\mathcal{Z})$被包含在一个维度至多为$\mathcal{Z}$的流形可数集合中。因此,若$\mathcal{Z}$的维度小于$\mathcal{X}$,$g(\mathcal{Z})$在$\mathcal{X}$上的度量为$0$。
Plus: 在这里学习到了深度神经网络为仿射变换和逐点非线性组合而成的函数。
由此可知,若$\mathbb{P}_r$和$\mathbb{P}_g$不重叠或存在于低维流形,那么总存在性能优越判别器可区分真实样本和生成样本,这就解释了生成器的训练总是不稳定的现象。
训练不稳定的解决方法
对训练不稳定和梯度消失问题,作者们建议对真实数据和生成数据增加噪音,且annealing调度噪音。同时,利用Wasserstein Distance作为两个分布之间的距离度量,即WGAN的损失函数作为损失函数。
梯度范数惩罚
梯度范数惩罚提出于2017年的《Improved Training of Wasserstein GANs》,主要为了解决WGAN权重clipping会导致生成低质量的样本,或拟合失效,该算法被称为WGAN-GP。确切的说,该梯度惩罚是生成样本与真实样本之间的插值,再作为判别器的输入,其输出对输入的梯度与$1$之间差值的范数为惩罚项,从而确保梯度值限制在$1$内,以满足Lipschitz连续的约束条件。
论文《On Convergence and Stability of GANs》把GAN训练动力学视为两个players利用no-regret算法进行重复博弈。与大部分理论相比,该视角没有把每步更新判别器均为最优视为假设,因此作者们认为regret最小化属于思考GAN训练动力学最合适的方式。在这里,作者们创建了一个交替梯度下降AGD与regret最小化之间较强的连接。由此,证明了在凸博弈下GAN训练的渐进拟合。然而,对于神经网络作为拟合器的非凸博弈中全局regret最小化很难实现,即GAN通常拟合到局部平衡。由此,可假设训练不稳定性和模式坍塌是拟合的局部平衡点不理想造成的,作者们也观测到模式坍塌通常伴随着判别器函数在真实数据点附近有sharp梯度,这也是梯度惩罚可以提升GAN训练的原因。基于该理论分析,作者们提出了DRAGAN(Deep Regret Analytic Generative Adversarial Networks)算法。
两个时间规模的更新规则
两个时间规模的更新规则TTRU提出于《GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium》,其对生成器和判别器分别利用两个单独的学习率。根据随机近似理论,作者们证明了TTRU可使模型拟合到一个静态的局部Nash均衡。通过实验与理论分析,表明判别器的更新速度快于生成器会导致模型收敛到均衡点。作者们还表明Adam优化器可被视为带有摩擦力的重球,那么该优化器更偏向于目标函数地形图中较平的最小点。同时,由于梯度下降为局部优化方法,那么算法往往收敛到局部纳什均衡点。对于该方法的有效性,在论文中,作者们只对DCGAN和WGAN进行了实验验证。
设定判别器的学习率高于生成器,这是因为通常生成器训练的过快会把判别器带到新的区域,以至于判别器欠拟合,进而无法对生成器提高很好的梯度信息。这与WGAN的判别器学习次数多于生成器的方法不谋而合。
正则化
对于f-GANs,论文《Stabilizing Training of Generative Adversarial Networks through Regularization》为了应对真实数据有限性导致判别器模型的过拟合,提出了生成数据与真实数据均和高斯噪音卷积的正则化方法,再进行计算相似度;真实数据往往存在于低维流形,为了应对真实数据与生成数据之间维度的不匹配,引入了积分概率度量,例如:Wasserstein Distance。对于高斯噪音卷积正则化,作者们证明了该方法使f-GAN模型对维度不匹配更鲁棒,且与惩罚梯度二范数平方的原理一致。
网络架构
论文《Progressive Growing of GANs for Improved Quality, Stability, and Variation》作者们为了生成高分辨率的图片,逐渐增加网络结构和图片的分辨率。这是因为直接学习生成高分辨率的图片很困难,而判别器很容易区分生成数据和真实数据,那么梯度会产生更多或更少的随机方向。同时,为了平衡网络层之间的训练速度,只利用标准正态分布对权重进行初始化,且模型训练时利用He初始化器的常量对权重进行normalization,从而确保参数的动态范围和学习率相同。为了防止生成器和判别器的梯度幅度过大,每个卷积层的输出正则化到$(0,1)$。
总结
GAN的训练可被视为min-max优化的零和博弈,只有两者不断的进步,才能导致生成器生成的样本更接近真实样本,即动态优化过程。若直接利用训练好的判别器,反而无法训练出较好的生成器。
版权: 本篇博文采用《CC BY-NC-ND 4.0》,转载必须注明作者和本文链接