目前检查 GAN 过拟合的方法有哪些?

机器算法验证 生成模型
2022-03-21 04:25:43

在生成建模中,目标是找到一种方法让模型输出某种分布的样本pX给定大量样本x1,,xn. 特别是,我们希望从我们的模型中采样G为了满足

  • G(z)是一个新的例子
  • G(z)看起来像是从pX.

GAN 通过找到一个纳什均衡来解决这个问题,其中pg=pX, 在哪里pg是通过映射潜在噪声隐式定义的分布z在下面G. 我们怎么知道G不是简单地记住输入的数据吗?

例如,如果我训练一个 GAN 来输出猫的图片,我怎么知道输出不仅仅是用于训练的一只猫的修改图片G? 在原始的 Deep Convolutional GAN (DCGAN) 论文中,他们有以下解释DCGAN 图像,我觉得这不是特别有说服力。

2个回答

据我所知,没有任何真正强大的方法。我见过的一种策略涉及最近邻(通常使用欧几里得距离)。从那里,从业者进行目视检查以检查是否没有发生过度拟合。不过,这往往是一个糟糕的指标,因为最近邻方法往往无法在如此高维的空间中工作。此外,请参阅此处了解像素损失的失败。另一种策略涉及查看图像(合成数据和原始数据)嵌入的最近邻到一些旨在提取特征的空间。这听起来更好,但似乎没有太多经验或严格的理论依据,只有启发式解释。

您感兴趣的是 GAN 模式崩溃和模式下降。(你也可以称之为过拟合,只是社区采用了这些名称)。实际上有数千篇 GAN 论文致力于解决这个问题并取得了不同程度的成功,但检查模式崩溃/丢弃仍然是一个活跃的研究领域。

模式崩溃意味着生成器只学习输出少量不同的图像/类别,并且很明显无法学习任何意义上的分布。模式丢弃意味着生成器可能看起来可以学习分布,但仍然会丢弃模式(例如,假设您训练 GAN 生成 1000 种不同鸟类的图像……您不太可能注意到 GAN 只生成500 种,其余的忘记了)。我们还可以讨论类间模式崩溃(GAN 无法学习所有类)和类间崩溃(GAN 可以从所有类生成图像,但每个类只能生成一个/几个不同的图像)。


GAN 评估的通用指标

衡量 GAN 性能的最流行指标是Inception ScoreFrechét Inception DistanceInception Score 的一句话总结:这些图像看起来像是从许多不同的类别中提取的吗?一句话总结 FID:生成图像的感知特征分布是否与地面真实图像的分布相匹配?

IS 可以检测到类间模式崩溃,而 FID 也可以检测到类内模式崩溃。然而,这些指标无论如何都不是完美的,高分/低距离并不能保证没有发生崩溃/下降。

另一个指标是Classifier Augmentation Score,它基本上使用 GAN 输出来训练分类器,并衡量分类器的性能。直观地说,任何形式的过拟合/模式丢弃都会导致分类器效果不佳。然而,CAS 的计算成本相当高。

检测模式崩溃/丢弃的具体方法

GLO中,作者建议通过“重建”测试来检查 GAN 中的模式下降。基本上,对于一些坚持地面实况图像x,我们找到了最好的噪声向量z当通过 GAN 时,会产生类似x,并通过以下方式衡量成本minz ||f(z)x||22. 这个想法是,如果你的 GAN 只能生成一张猫的图像,它将无法重建保留的猫图像。最近在Seeing what a GAN cannot generate中更详细地探讨了类似的想法。

生日悖论可以更抽象地表述为: “如果有n不同的结果,您可能会在仅抽样后两次遇到相同的结果Θ(n)次”。因此,如果 GAN 仅从训练集中复制 10,000 张图像,我们只需查看其中的 100 张就可以解决这个问题,正如Arora 和 Zhang所做的那样。

PRD提出了一些直接的方法来测量 GAN 的精度和召回率。(精度意味着高质量、不模糊的样本,召回意味着我们没有丢弃数据中的任何模式,并且完全覆盖了分布)。总结起来太复杂了,但结果看起来很有希望。