Generative adversarial networks (GAN)1 自从提出开始,就获得了极大的关注,其对抗的哲学思想也得到了广泛研究以及应用。但 GAN 的难训练问题也是广为人知的,在接触 GAN 的过程中大家不可避免会听到遇到两个问题,Mode Collapse 和 Mode Dropping。介于网上对两者(主要是后者)的材料较少,顾此在这进行记录。此处主要参考李宏毅老师机器学习课程的 GAN 部分2。
Mode Collapse
Mode Collapse,中文又称模式奔溃,主要出现于 GAN 训练的后期阶段,生成器生成图像样式单一问题。回顾 GAN 的原理,判别器用于分辨出真实图像和生成图像而生成器致力于生成让判别器难以分辨真伪的图像。原始的 GAN 损失更关注生成单张图像是否真实,而非生成的图像“们”是否符合实际的图像分布。这给了生成器投机取巧的机会,只生成个别几张逼真的样本,生成的图像真实但单一,不符合实际的图像分布。如图1所示,生成的图像多样性不足,生成数据(generated data)的分布与实际(real)的数据分布还相差甚远。
图1 Mode Collapse
Mode Dropping
Mode Dropping,指 GAN 能很好地生成训练集中的数据,但难以生成非训练集的数据,“缺乏想象力”。因为采样数量的局限性,现实中我们无法采集到全部可能的图像,即采集到所有可能的图像是不可能的(如果有能力采集到所有可能的图像,那么我们也就不需要 GAN 来生成图像了),所以通常我们会采样,采集一定数量的图像来代表整个图像分布。如图2所示,generated data 分布过于与训练集 real data 分布近似,但由于 real data 无法代表整体分布,生成器无法生成没见过的图像。可以看到在 iteration t 和 iteration t+1,生成器生成的图像除了颜色以外没有其他的变化。这就像是我们考试前不理解知识点而直接背答案一般,题目一变,就直接不会了。个人感觉这种现象也更像是过拟合于训练集。
图2 Mode Dropping
总结一下,mode collapse 是由于模型只生成单一图像(生成数据的方差小);而 mode dropping 更为棘手,在于模型过拟合于训练集。