令人沮丧的结果:尽管目前很多 GAN 的衍生算法都声称自己要比原版 GAN 更强大,谷歌大脑的新研究却对这种主张持否定态度。生成对抗网络(GAN)自 Ian Goodfellow 等人于 2014 年提出以来已成为机器学习界最火热的讨论话题,各种在它之上的改进型层出不穷。然而谷歌的论文指出,原版 GAN 在多种任务中的表现与其他模型相当,而在 CIFAR-10 上甚至有着最高的 FID 成绩。在社交网络上有人对此评价道:或许我们应该把目光转向到开发新架构上了。此论文已在 reddit 上引起了激烈的讨论,包括 WGAN-GP 作者也参与其中。
生成对抗网络(GAN)是生成模型的一个重要子类别,并已成功应用于图像生成和编辑、半监督学习和域适应等任务中。在 GAN 框架下,模型学习一个简单分布 p_z 的决定性变换 G,目标是匹配数据分布 p_d。这一学习问题可被视为生成器和判别器之间的双人游戏——其中生成器提交尽可能接近真数据的内容,而判别器需要学习如何辨别真数据与假数据。这两个玩家都倾向于用尽量小的成本解决当前问题,博弈的解是纳什均衡,最终双方都不能单方面提高成本。
2014 年 GAN 被 Ian Goodfellow 等人提出以后,很多研究者在其之上提出了各种各样不同的改进型,现在我们能看到完全无监督的(GAN、Wasserstein GAN、BE-GAN、改进型 Wasserstein GAN),和有条件的(Conditional GAN、Auxiliary Classifier GAN)。虽然这些模型在特定领域上的结果看起来很好,但我们对于哪种 GAN 算法在客观上要比其他更好并没有达成明确的共识。部分原因在于缺乏稳健而有一致性的评判指标,以及我们很少会以同样的尺度——包括使用同样的计算成本搜索所有超参数——来对不同的 GAN 进行比较。但是,对目前业内的 GAN 算法进行比较是非常重要的一件事,首先,我们需要为从业者找到广义上最优的算法;其次,比较也可以推动人们对于算法的理解,有利于技术发展——我们需要知道哪些改进是决定性的,哪些改进只能停留在论文上,而在实践中意义不大。
评估的主要问题在于我们无法明确地计算概率 p_g(x)。这意味着我们不能在测试集上评估诸如对数似然这样的经典度量数据。作为补救措施,此前的很多研究者会把重点放在定性数据的比较上,如 GAN 输出图片的视觉质量(如:萌物生成器:如何使用四种 GAN 制造猫图)。但是,这种方法是主观的,可能会具有误导性。
谷歌的研究人员在一篇新的论文《Are GANs Created Equal? A Large-Scale Study》中采用了两种更加客观的 GAN 性能评测方法,两者都假设已有预训练的分类器。初始得分(Inception Score,IS)是基于这样一个事实:好模型生成的样本应该是当分类器进行评估时,样本的类别分布的熵较低。同时,它也应该生产覆盖所有类别的样本。与之相反,Frechet 初始距离(Frechet Inception Distance,FID)通过衡量真数据与假数据的嵌入差异进行计算。假设编码层遵循多变量高斯分布,则分布之间的距离会减小到相应高斯之间的 Frechet 距离。
谷歌研究人员称,该工作做出了以下贡献:
1. 对所有目前业内最先进的 GAN 进行了公平而全面的比较,实验结果证明在给定足够计算资源的情形下,几乎所有的 GAN 变体都实现了相似的 FID 值。
2. 通过实践提供了强有力的证据表明 GAN 变体横向对比需要结果分布的总结报告,而非简单的最佳结果对比,因为优化过程具有随机性,同时各类模型不甚稳定。
3. 研究人员评估了 FID 对 mode dropping 的鲁棒性,使用了不同的编码网络,同时对各方法在经典数据集上的 FID 最佳可实现成绩进行了评估。
4. 引入了一系列难度递增的测试任务,可以实现精准客观的度量。
5. 谷歌将在近期开源该研究的实验设置和模型实现。
论文:Are GANs Created Equal?A Large-Scale Study
论文链接:https://arxiv.org/abs/1711.10337
摘要:生成对抗网络(GAN)是生成模型的一个重要子类别。尽管大量研究带来了很多有趣的 GAN 算法,我们仍然很难评估哪种算法更好。因此,我们对顶尖模型和评估度量进行了一个中立、多面性的大规模实证研究。研究发现大部分模型在有足够的超参数优化和随机重启(random restart)时得分相似。这表明算法改进的原因是更高的计算量和基础算法改变之外的调整。为了克服当前度量的局限性,我们还提出了能够计算查准率和查全率的多个数据集。我们的实验结果表明未来的 GAN 研究应该基于更系统、客观的评估流程。最后,我们没有找到证据证明任何一个测试算法一致优于原版算法。
3. 生成对抗网络的变体
该研究中,谷歌大脑团队着眼于无条件生成对抗网络,因此他们仅使用未标注数据进行学习。此外,现有的训练方法也导致了优化问题和以往不同,如 (i) 对判别器的输出和对应损失的约束,梯度范数惩罚的出现和应用。
原版 GAN 公式 [8] 中一共提出了两个损失函数。其一即极小极大 GAN 的判别器会输出一个概率,而损失函数为二元分类任务中负的对数似然度(如表 1 MM GAN 所示)。在该原版模型中,生成器学习所要生成的样本会有很低的概率会被判别为假。为了提升梯度所传递的信息,作者还提出了一个非饱和损失函数(如表 1 NS GAN 所示),其中生成器旨在最大化生成样本被判别为真的概率。
表 1:各 GAN 变体的生成器和判别器损失函数。其中主要的区别即判别器输出一个概率(MM GAN、NS GAN、DRAGAN)还是输出一个无界实数(WGAN、WGAN GP、LS GAN、BEGAN),或者它们是否存在梯度罚项(WGAN GP、DRAGAN)与它们需要在哪一部分进行评估。我们主要根据各种变体的流行程度选择需要对比的模型。
在 Wassersrein GAN[1] 中,判别器允许输出一个实数,目标函数就等价于不带 Sigmoid 的 MM GAN 损失函数(如表 1 WGAN 所示)。这篇论文的作者证明在最优判别器(Lipschitz 平滑)下,针对生成器极小化值函数将等同于极小化模型和数据分布之间的 Wasserstein 距离。判别器的权重会截断为一个非常小的绝对值以加强平滑度。为了提升训练的稳定度,Gulrajani et al. [9] 在梯度的范数上增加一个软约束以促使判别器为 1-Lioschitz 平滑。梯度范数是通过数据点和生成样本之间的线性插值而得到的点估计,其中最优判别器应该为单位梯度范数 [9]。
梯度范数的罚项还可以添加到任何原版 GAN 损失函数(MM GAN 或 NS GAN)中,并在数据流形(如表 1 所示基于 NS GAN 的 DRAGAN)周围进行评估。这促使判别器在数据流形的周围呈分段线性。Fedus et al. [6] 展示了梯度范数罚项和非饱和 GAN(NS GAN)的结合是非常有好处的。
Mao et al. [15] 提出了判别器的最小二乘损失函数,并表示最小化对应目标函数(如表 1 所示 LS GAN)隐性地最小化了 Pearson X^2 散度。这篇论文因此主要提出了比原版 MM GAN 中使用的 Sigmoid 交叉熵损失函数更平滑的损失函数。
最后,Berthelot et al. [4] 建议使用自编码器作为判别器,并优化真实和生成数据之间自编码器损失分布的 Wasserstein 距离下界。他们引入了一个额外的超参数 γ 以控制生成器和判别器之间的平衡。
5. 度量法
该研究集中于两种度量。首先从(度量本身)鲁棒性的角度分析了最近提出的 FID,推断它具备较好的性能,可用于实践。但是,该度量和 Inception Score 一样无法检测过拟合:GAN 存储所有训练数据的内存在两种度量中都可以取得满分。基于这些缺点,谷歌大脑团队提出一种对 GAN 查准率和查全率的近似,以及使用它量化过拟合程度的方法。研究者强调该方法应该作为 IS 或 FID 的补充,而不是替代。
对 FID 的乐观性评估见表 2。研究者观察到 FID 的偏差较高,方差较小。从这个角度,评估全协方差矩阵是不必要的,且可能产生反效果。约束协方差矩阵就足够了。
表 2:FID 的偏差和方差。如果数据分布与模型分布匹配,则 FID 的值应该为零。但是,研究者在 10,000 个样本的数据中观察到偏差和低方差。
图 1 表示 FID 受到丢失的模式的显著影响。
图 1:随着样本捕捉到的类别增多,数据集的 FID 下降。在模式 dropping 的情况下,FID 显著上升。
图 4:最小 FID 作为计算量函数的运行。上图展示了具备标准差区间的固定计算量的最小 FID 分布。对于每个计算量,研究者使用从 100 次运行中进行的 5000 个 bootstrap 重采样评估平均值和方差。在相对较低的计算量下(如少于 15 个超参数),所有模型的最小 FID 得分类似。此外,对于固定的 FID 而言,在具备足够计算量的情况下,「坏」模型也可以优于「好」模型。研究者认为用于搜索超参数的计算量是比较不同算法的重要方面。
图 5:大量超参数搜索(每个模型 100 个超参数样本)。研究者发现 GAN 训练对超参数设置极为敏感,没有特别稳定的 GAN 模型。
表 3:每个数据集上大规模超参数搜索获取的最优 FID。得分分两步计算:首先,运行对大量超参数的大规模搜索,选择最优模型;然后,使用不同的初始种子对所选模型进行 50 次重运行训练,来评估训练的稳定性,并报告平均 FID 和标准差(异常值除外)。星号(*)表示严重异常值出现,通常是严重的模式崩溃或训练失败(** 表示 20% 的失败率)。研究者观察到每个模型的性能严重依赖数据集,没有一个模型与其他模型相比有绝对优势。由于生成图像不够清晰,VAE 遭受了严重惩罚。注意这些结果都不是顶尖的:(1)大型架构可以改善所有模型;(2)作者通常报告最优 FID,从而开启了随机种子优化的大门。
图 6:F_1 得分随着计算量的变化趋势。上图显示具备 95% 的置信区间的计算量可达到的 F1 最大得分分布。对于每个计算量,研究者使用从 100 次运行中进行的 5000 个 bootstrap 重采样评估平均值和(平均)置信区间。对 F_1 得分进行优化时,NS GAN 和 WGAN 均具备高查准率和查全率。而 BEGAN 和 VAE 在该数据集度量上的平庸表现值得进一步研究。