使用有限数据训练生成对抗网络.

GAN的训练中,如果训练数据比较少,则判别器容易过拟合,轻易记住了所有真实样本,只要不是真实样本,那么就直接判定为假;而生成器容易欠拟合,生成图像的分布严格近似于参与训练的真实图像分布,只能复现训练时见过的样本。

为了增强小样本训练时GAN的表现,可以引入数据增强操作。然而如果使用增强样本直接训练,这些增强的变换会直接改变原训练样本所代表的目标分布,这必然使得生成样本的分布也产生偏离,这种现象称为渗透(leaking)

本文作者讨论了在小样本训练下列防止判别器过拟合的数据增强方法,并保证没有任何增强变换被渗透到生成图像中。

作者首先研究了训练数据量是如何影响GAN的训练。将大规模数据集(如FFHQ,LSUN CAT)按随机顺序划分为子集;图像分辨率为$256 \times 256$;测试时随机生成$50$k个样本,然后与所有训练样本计算FID分数。

图(a)表示不同数据量的训练过程中FID分数的变化情况。在不同数据量时,FID分数(代表生成器的生成能力)的出发点是相同的,但越往后差别越大;训练样本数足够多时,最终收敛到很低的FID;训练样本数不够时,FID在中间反弹,且数据量越少,反弹发生得越早。

图(b)分别给出了训练样本数为50k和20k时判别器对输入样本的输出得分;蓝色针对真实样本,橙色针对生成样本;实线表示分数的均值;红色竖虚线确定了获得最佳FID的时间,代表过拟合的时间点;当数据量越小时,过拟合发生的时间越早。

针对判别器的过拟合现象,作者进行了判别器增强,即对输入判别器的部分或全部样本(包括训练用真实样本和生成样本)先作数据增强的预处理。为了保证不发生渗透现象,训练判别器时喂给判别器的全部样本都经过数据增强;训练生成器时喂给判别器的样本也全部经过增强。

在这种设置下,判别器所处理的所有样本都是经过增强后的新的分布,生成器产生的样本也经过同样的增强后输入判别器。当数据增强是可撤销的(undoable),即在概率分布的层面上对数据空间是由可逆的变换表示,GAN的训练就可以隐式地撤销这些退化、找到原干净的真实样本分布作为匹配目标。

对于人类而言,只需要看到少量干净的目标样本,随后接收任何被处理过的样本,人类都能够推理出其背后的干净的样本。因此训练时只需要确保被以$p < 1$的概率执行,当且仅当生成的干净样本的分布是正确的时候,增强生成样本的分布与增强真实样本的分布才可以匹配到。

作者给出了三个数据增强的例子。图(a)为等比例缩放,这是一种非渗透的数据增强方式,因此可以稳定地提高模型表现。图(b)表示以概率$p < 1$旋转图像$90$°的正整数倍,当概率$p$超过某个值之后,生成的样本中出现了错误定向的图像,表明出现了渗透现象。图(c)表示对图像进行连续的颜色增强,当概率$p$过大时也出现了渗透现象。

作者指出,当概率$p$不超过一定数值时,增强判别器不会发生渗透现象。实验中设定$p=0.8$为实际安全限制(Pratical Safety Limit)。基于此,作者提出了自适应判别器增强(Adaptive Discriminator Augmentation, ADA)方法:在训练的初始阶段设置$p=0$,当判别器出现过拟合现象时自适应地增大$p$。

如果网络采用WGAN训练损失,则可以采用以下指标判断是否过拟合:

\[r_t = E[ \text{sign}(D_{train})]\]

理论上,随机初始化判别器使得输出分布的期望是$0$;训练后判别器对真实样本的打分高于生成样本;由于对抗存在,正常情况下判别器对真实样本的输出分布应该大于$0$值。因此,一开始\(\text{sign}(D_{train})\)接近于$0$,当判别器完全过拟合时,\(\text{sign}(D_{train})\)接近于$1$。 $r_t$越大,越可能过拟合,也就越需要通过增大$p$来引入更多样化的训练数据。