NVIDIA针对数据不充分数据集进行生成改进,大幅度提高Cifar10数据生成
生成对抗网络因其优异的生成质量而得到广泛的关注,然而想要得到高质量的生成结果往往需要大批量的训练数据进行加持才能训练出逼真的生成结果,这点在各大主流优秀的生成对抗网络模型下得到验证。一旦训练数据不足的情况下能否得到优秀的结果,能否让判别器不去过度拟合训练样本呢?这个问题由来自NVIDIA的研究者付诸行动并给出了一定的解决方案,本文将共同来阅读论文“Training Generative Adversarial Networks with Limited Data”
论文引入
庞大的数据集在背后推动着生成模型的发展,然而为特定应用收集足够大的图像集是存在挑战的,这要求数据要对主题类型,图像质量,地理位置,时间段,隐私,版权状态等施加限制,就比如CelebA数据集,在人脸位置、质量和图像的大小都存在着严格的要求,这个要求一旦施加在上十万张图像数据集下就是很庞大的工作量。
而GAN训练的样本量往往是在$10^5 \sim 10^6$量级,这对于医学图像和小样本的数据训练是困难的,往往导致的是判别器过度拟合训练数据,此时判别器对生成器的反馈就会变得毫无意义,并且导致训练出现分歧。文章中做了在不同量级下数据集对生成质量的影响,结果如图1所示。
图1.不同量级下数据集对生成质量的影响
图1a显示了FFHQ不同子集的基线结果,在每种情况下,训练都以相同的方式开始,但是随着训练的进行,FID开始上升。训练数据越少,越早发生。图1b,c显示了训练过程中真实图像和生成图像的判别器输出分布。分布最初是重叠的,但随着判别器变得越来越有把握,它们会保持漂移,FID开始恶化的点与分布之间失去足够的重叠是一致的。由图1c可以看到,当判别器过分拟合训练数据时,即使是真实图像的验证集也会判别和生成数据分布一致,这就是判别器过度拟合到了训练数据上的有力说明。
既然过拟合问题出现了,而且是由于数据集不足导致的,那能不能扩充数据集(旋转、加噪声)进行解决呢?
然而扩充数据集往往在训练分类器这样的判别语义信息任务是有效的,但是简单的扩充数据集在GAN中将会导致“泄漏”,这主要是由于数据集的扩充会导致GAN学习生成扩充的数据分布。本文要介绍的论文Training Generative Adversarial Networks with Limited Data利用多样的数据扩充来防止判别器过度拟合的同时确保扩充不会”泄漏”到生成的图像中。总结一下ADA方法在生成模型上的优势:
- ADA可以实现少样本数据下的较好质量的生成
- ADA可以保证数据扩充前提下防治数据的”泄漏”
- 自适应的判别器增强保证了模型不轻易出现过拟合,模型更加稳定
数据不充分下生成改进
数据不充分的情况下进行数据扩充无疑是最直接了当的解决方式,传统的GAN训练数据集的任何扩充都将继承到生成的图像,这无疑是数据扩充不希望得到的结果,如何解决呢?
数据扩充
平衡一致性正则化(bCR)提出了应用于同一输入图像的两组扩增应产生相同的输出,为判别器损失上添加一致性正则项,也为真实图像和生成的图像实施判别器一致性,而训练生成器时则不应用增强或一致性损失,这部分直观的理解如图2a所示。然而,bCR中生成器可以自由生成包含扩充的图像而不会受到任何惩罚,这就导致了”泄漏”的进一步增强,文章在后面实验部分也验证了bCR确实导致了”泄漏”的发生。
图2.bCR与DA下生成模型设计
文章设计了一种新的扩充方式,与bCR相似也是对输入到判别器的图像应用了增强。但是,该方法并没有使用单独的CR损失项,而是仅使用增强图像来评估判别器,并且在训练生成器时也要这样做(图2b)。文章称之为判别器增强(discriminator augmentation,DA),这种方法看上去非常简单,甚至你在乍一看都会质疑它是否可以正常工作,是不是会怀疑判别器从未看到训练图像的真实外观的情况下,能否可以正确地指导生成器(图2c)。为此,文章研究了在何种情况下DA不会泄漏对所生成图像的增强。
设计不会”泄漏”的数据扩充(DA)
[1]考虑了训练GAN时的类似问题,并表明只要隐含的过程由数据空间上概率分布的可逆转换来表示,训练就隐式地消除了损坏并找到了正确的分布,称这种增强算子为非泄漏。这些可逆变换的功能在于,它们可以通过仅观察扩充的集合来得出有关基础集合的相等性或不平等性的结论。
在图2b中,我们可以看到DA设计的时候在数据增强上(数据增强这里可以理解为数据扩充),做了增强概率$p$的设计,以$p <1$的概率进行数据的增强,此时的数据增强将不是绝对的改变数据(旋转、翻转和缩放、色彩增强等),这样生成模型将看到的是更多正常的图像,然而一些数据增强是不会影响最后的生成结果,例如各向同性图像缩放,文章也是利用实验对其它情况进行直观的解释,整个过程如图3所示。
图3.不同增强下p对“泄漏”的影响
在图3中,通过三个实际示例来验证我们的分析,上方的图像代表着对应不同$p$的时候,模型生成的图像,这也通过FID进行可视化展示。在a中进行各向同性图像缩放,无论p的值如何,其均不会泄漏。但是在图3b中,当$p$太高时,生成器无法知道生成的图像应面向哪个方向并最终随机选择一种可能性。实际上,由于有限采样,网络的有限表示能力,归纳偏差和训练动态,当p保持在$0.85$以下时,生成的图像始终正确定向。在这些区域之间,生成器有时会最初选择错误的方向,然后向正确的分布部分漂移。对于一系列连续的色彩增强,也具有相同的观察结果(图3c)。该实验表明,只要$p$保持在0.8以下,实际上就不太可能发生”泄漏”。
文章采用的数据扩充方式
文章借鉴了RandAugment [9]在图像分类任务中的成功,考虑了18种变换的流水线,这些变换分为6类:像素层(x翻转,90°旋转,整数平移),更一般的几何变换,颜色变换,图像空间滤波,加性噪声和抠图。由于在训练生成器时,也会执行增强,这要求增强是可区分的。
在训练过程中,使用一组固定的预定义变换来处理图像给判别器,增强的强度控制在$p \in [0,1]$控制,在DA设计上,对于所有转换,始终使用相同的p值。随机化是针对每个扩展和一个小批量中的每个图像分别进行,只要p保持在实际安全极限以下,就引导发生器仅产生清晰的图像。
文章通过对不同的扩充类别和数据集大小对$p$进行详尽的扫描来研究DA的有效性,整个实验结果如图4所示。
图4.不同增强下实验结果
在许多情况下,DA可以显着改善结果,最佳增强强度在很大程度上取决于训练数据的数量,绝大多数来自像素层和几何变换上的增强,颜色转换适度有益,而图像空间过滤,噪点和裁切并不是特别有用。曲线还表明,当$p \to 1$时,某些增强会泄漏。对于10k的训练集,$p$的较高值则会起到不好的结果,而对于140k,所有增强都是有害的。根据这些结果,文章最后选择在模型设计上仅采用像素层,几何和颜色转换。图4d显示,虽然较强的增强会减少过度拟合,但也会减慢收敛速度。
实际上,当固定增强控制$p$时,对数据集大小的敏感性往往需要进行昂贵的网格搜索,依靠任何固定的p可能不是最佳选择,文章进一步就此问题设计了自适应$p$来解决这些问题。
自适应判别器增强(ADA)
文章的设计目的是希望避免手动调整增强强度$p$,而是根据过拟合的程度动态控制它。量化过度拟合的标准方法是使用单独的验证集(真实图像数据但是并不在训练集中),并观察其相对于训练集的行为,这个表示方式已经在图1的b和c中体现。当过度拟合开始时,验证集开始表现得越来越像生成的图像。这是可量化数据增强的效果,但这也带来了一问题,就是稍微奢侈了些,尤其是真实样本已经很少了,还要分出来一部分作为验证集。
训练集$D_{train}$,验证集$D_{validation}$和生成图像$D_{generated}$表示判别器的输出,以及它们在$N$个连续小批处理中的平均值$E [·]$。在实验上,使用$N = 4$,它对于Bitchsize为64时候,也就是处理$4 \times 64 = 256$个图像。文章对图1的观察结果转换为两种可能的过度拟合启发式公式:
\[r_v = \frac{\mathbb E[D_{train}]-\mathbb E[D_{validation}]}{E[D_{train}]-\mathbb E[D_{generated}]} \space \space \space \space \space r_t = \mathbb E[sign(D_{train})]\]对于这两种启发式方法,由上述分析我们已经知道当过度拟合开始时,验证集开始表现得越来越像生成的图像,也就是当$r = 0$表示没有过度拟合,而当$r = 1$表示完全过度拟合,文章的目标是调整增强概率$p$,以使所选的启发式方法与合适的目标值匹配。第二个启发式算法$r_t$估计训练集中获得正向判别器输出的部分。
将$p$初始化为零,并根据所选的过拟合试探法($r_v,r_t$的值)每四个小批量调整一次其值,如果试探法表明过度拟合或过度拟合过小,通过将$p$递增/递减固定量来应对,通过对$p$从0到1足够快地上升,但是例如在500k图像(数据量很大),每一步之后,$p$都被限制为0,将这种变化称为自适应判别器增强(ADA),文章也进行了实验比对,结果如图5和图6所示。
图5.自适应判别器增强评估实验
在图5a,b中,可以观察到$r_v$和$r_t$都可以有效防止过度拟合,并且它们都比使用网格搜索找到的最佳固定$p$改善了结果,文章也确定了在后续实验中$r_t$的初始值设置为0.6。图5d显示了具有自适应vs固定$p$的$r_t$的演变,表明固定$p$在开始时往往太强,而在结束时往往太弱。
图6.ADA验证实验
图6使用ADA重复了图1的设置,可以看到无论训练集的大小如何,都可以实现收敛,并且不再发生过度拟合。 如果不进行扩充,随着时间的流逝,生成器从判别器接收到的梯度将变得非常简单,判别器开始仅关注少数功能,并且生成器可以自由创建其他无意义的图像。 同时使用ADA时,梯度场保持更详细,从而避免情况的恶化。
实验与评估
文章在FFHQ和LSUN CAT进行实验,有趣的是ADA和bCR的优势在很大程度上是可加的,图7给出了实验结果。
图7.FHQ和LSUN CAT下进行实验
为进一步定量说明,文章和PA-GAN [2],WGAN-GP [3],zCR [4],auxiliary rotations[5]和spectral normalization[6]进行定量比对,结果如图8,不得不说的是ADA在Cifar10数据集下取得了非常好的结果这在之前的生成模型上是看不到的,这个进步是很大的。
图8.定量对比实验
在迁移学习上,ADA也展示了优越的结果。
图9.ADA在迁移学习下的表现
最后放一下在小型数据集Cifar10数据集下,ADA模型展示的可怕的生成效果:
图10.ADA在Cifar10数据集下定性结果
总结
ADA展示了在训练数据短缺时,自适应判别器扩充可以稳定且有效的训练并极大地提高结果质量。 但是也要指出扩充数据集并不能替代真实数据,相同数据量下肯定是真实数据越多得到的生成效果越好的。自适应增强的设计也展示了NVIDIA科研上的严谨,更值得说的是,NVIDIA这样的不太在乎算力资源的研究者能专心在少数据样本的训练上展开研究本身就是很值得敬佩的。
参考文献
[1] A. Bora, E. Price, and A. Dimakis. AmbientGAN: Generative models from lossy measurements. In Proc. ICLR, 2018.
[2] D. Zhang and A. Khoreva. PA-GAN: Improving GAN training by progressive augmentation. In Proc. NeurIPS, 2019.
[3] I. Gulrajani, F. Ahmed, M. Arjovsky, V. Dumoulin, and A. C. Courville. Improved training of Wasserstein GANs. In Proc. NIPS, pages 5769–5779, 2017.
[4] Z. Zhao, S. Singh, H. Lee, Z. Zhang, A. Odena, and H. Zhang. Improved consistency regularization for GANs. CoRR, abs/2002.04724, 2020.
[5] T. Chen, X. Zhai, M. Ritter, M. Lucic, and N. Houlsby. Self-supervised GANs via auxiliary rotation loss. In Proc. CVPR, 2019.
[6] T. Miyato, T. Kataoka, M. Koyama, and Y. Yoshida. Spectral normalization for generative adversarial networks. In Proc. ICLR, 2018.