你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

生成对抗网络(GAN)是当今最流行的图像生成方法之一,但评估和比较 GAN 产生的图像却极具挑战性。之前许多针对 GAN 合成图像的研究都只用了主观视觉评估,一些定量标准直到最近才开始出现。本文认为现有指标不足以评估 GAN 模型,因此引入了两个基于图像分类的指标——GAN-train 和 GAN-test,分别对应 GAN 的召回率(多样性)和精确率(图像质量)。研究者还基于这两个指标评估了最近的 GAN 方法并证明了这些方法性能的显著差异。上述评估指标表明,数据集复杂程度(从 CIFAR10 到 CIFAR100 再到 ImageNet)与 GAN 质量呈负相关关系。

生成对抗网络(GAN)[19] 是由一对存在竞争关系的神经网络——生成器和判别器——组成的深度神经网络架构。通过交替优化两个目标函数训练该模型,这样可以让生成器 G 学会产生与真实图像类似的样本,还能让判别器 D 学会更好地甄别真假数据。这种范式潜力巨大,因为它可以学会生成任何数据分布。这种模型已经在一些计算机视觉问题上取得了一定成果,例如文本到图像的转换 [56] 和图像到图像的转换 [24,59]、超分辨率 [31] 以及逼真的自然图像生成 [25]。

自从提出了 GAN 模型后,近几年间出现了许多变体,如以提升生成图像质量为目的的 GAN 模型 [12,15,25,36] 和以稳定训练过程为目的的 GAN 模型 [7,9,20,34,36,40,57]。通过调整附加信息(如类别标签),GAN 还可以被修改为生成给定类别图像的网络 [16,35,37,41]。实现这一想法有许多方法:连结标签 y 和生成器的输入 z 或中间特征映射 [16,35],使用条件批归一化 [37] 以及用辅助分类器增强鉴别器 [41]。随着这些方法的提出,有一个问题就变得重要了起来:该如何评价和比较这些模型呢?

评估和比较 GAN,或者说评估和比较 GAN 产生的图像,是一件极具挑战性的事,部分原因是缺乏明确的、在可比较概率模型中常用的似然方法 [51]。因此,之前许多针对 GAN 合成的图像的工作都只用了主观视觉评估。如图 1 所示,当前最佳 GAN 生成图像的样本 [36],用主观评估方法无法精确评估图像质量。近两年的研究已经开始尝试通过定量方法评估 GAN[22,25,32,46]。

你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

图 1:当前最佳 GAN 模型(如 SNGAN)[36] 生成逼真图像,这些图像难以用主观评估法与真实图像进行比较。我们的基于准确率的图像分类新方法解决了这个问题,并展示了真实图像和生成图像间的显著差异。

将 Inception 分数(IS)[46] 和 Fr´echet Inception 距离(FID)[22] 作为与生成图像视觉质量相关的临时指标。IS 通过计算图像产生的 (logit) 响应和边际分布(即在 ImageNet 上训练出来的 Inception 网络生成的全部图像的平均响应)之间的 KL 散度衡量生成图像的质量。换句话说,IS 无法与目标分布的样本进行比较,仅可用于量化生成样本的多样性。FID 比较的是真实图像和生成图像间的 Inception 激活值(Inception 网络中倒数第二层的响应)。但这样的比较将真实图像和生成图像的激活值近似为高斯分布(参见等式(2)),计算其平均值和方差,但因为太过粗糙而无法捕捉其细节。这些评估方法都依赖于经过 ImageNet 预训练的 Inception 网络,这对其他数据集(如面部数据集和生物医学成像数据集)来说远不够理想。总而言之,IS 和 FID 是评估训练进展的有用指标,但它们无法评估真实世界中的任务。正如我们在第 5 节中讨论的那样,与我们的指标(以表 2 中的 SNGAN 和 WPGAN-GP(10M)为例)不同,这些指标不足以精确地区别出当前最佳的 GAN 模型。

还有一种评估方法是根据精确率和召回率计算生成样本到真实数据流形间的距离 [32]。高精确率意味着生成样本与数据流形很接近,而高召回率意味着生成器的输出样本很好地覆盖了流形。这些指标还是很理想主义的,因为无法在流形未知的自然图像数据上进行计算。实际上,[32] 中的评估方法也只能用在由灰度三角形组成的合成数据中。另一种用于比较 GAN 模型距离的是 SWD[25]。SWD 是真实图像和生成图像间的 Wasserstein-1 距离的估计值,它计算的是从图像的 Laplacian 金字塔表征中提取的局部图像之间的数据相似性。正如第 5 节所说,SWD 的信息量低于我们的评价指标。

我们在本文中提出了新的评价指标,是用 GAN-train 分数和 GAN-test 分数比较类条件的 GAN 架构。对于这两种指标,我们都依赖神经网络架构来进行图像分类。为了计算 GAN-train,我们用 GAN 生成的图像训练了分类网络,然后在由真实图像组成的测试集上评估了其表现。直接地说,这度量了学习到的(生成图像)分布和目标(真实图像)分布间的差异。可以得出结论:如果学习用于区分针对不同类别的生成图像特征的分类网络可以对真实图像进行正确分类,那么生成图像与真实图像相似。换句话说,GAN-train 类似于召回率度量,因为 GAN-train 表现好意味着生成的样本足够多样化。但是,GAN-train 也需要足够的精确率,否则分类器会受到样本质量的影响。

我们的第二个指标,GAN-test,是在真实图像上训练并在生成图像上评估得到的网络的准确率。该指标与精确率类似,值比较高意味着生成的样本与(未知)自然图像分布近似。除了这两个指标外,我们还研究了 GAN 生成图像在强化训练数据方面的作用。可以将其视为衡量生成图像多样性的指标。我们在图 1 中用 GAN-train 指标阐明了我们的评估方法的效果,尤其是在主观评价不充分的情况下。我们将在第 3 节讨论这些评估指标的细节。

正如第 5 节中广泛的实验结果以及补充材料和技术报告中的附录 [5] 所示,与之前讨论的所有评估指标相比(包括没有得出结论的人类研究),这些指标在评估 GAN 方面的信息要丰富得多。尤其是我们还对当前最佳的两个 GAN 模型(WGAN-GP[20] 和 SNGAN[36])以及其他一些生成模型 [45,47] 进行了评估,以提供基线比较。用 MNIST[30]、CIFAR10、CIFAR100[28] 和 ImageNet[14] 数据集评估了图像分类表现。实验结果表明,随着数据集复杂度的增加,GAN 图像的质量显著降低。

论文:How good is my GAN?

你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

论文链接:https://arxiv.org/pdf/1807.09499.pdf

摘要:生成对抗网络(GAN)是当今最流行的图像生成方法之一。尽管已经有了不少可以直观感受到的令人印象深刻的成果,但一些定量标准直到最近才出现。我们认为现有指标不足以评估模型,因此在本文中引入了两个基于图像分类的指标——GAN-train 和 GAN-test,这两个指标分别对应的是 GAN 的召回率(多样性)和精确率(图像质量)。我们基于这两个指标评估了最近的 GAN 方法并证明了这些方法性能的显著差异。此外,我们的评估指标清楚地表明,数据集复杂程度(从 CIFAR10 到 CIFAR100 再到 ImageNet),与 GAN 质量呈负相关关系。

3. GAN-train 和 GAN-test

条件 GAN 模型的一个重要特征是生成的图像不仅要逼真,还要能辨识出属于一个给定的类别。一个可以完美捕获目标分布的理想 GAN 可以生成一个新的图像数据集 S_g,这个数据集与原始的训练集 S_t 没什么区别。假设这些数据集大小相同,根据这两个数据集中的任意一个训练出来的分类器应该有同样的验证准确率。当数据集足够简单(例如 MNIST[48])时确实是这样(见 5.2 节)。在这种最佳 GAN 特性的推动下,我们设计了两个分数来评估 GAN,如图 2 所示。

你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

图 2:GAN-train 和 GAN-test 图示。GAN-train 根据 GAN 生成图像训练了一个分类器,并在真实图像上进行测试。该指标评估了 GAN 生成图像的多样性和真实性。GAN-test 根据真实图像训练了分类器,并在 GAN 生成图像上进行评估。该指标评估了 GAN 生成图像的真实性。

GAN-train 是在 S_g 上训练,在由真实图像组成的验证集 S_v 上测试的分类器的准确率。当 GAN 不够好的时候,GAN-train 会比在 S_t 上训练出来的分类器的验证准确率低。造成这种情况的原因有很多,例如,(i)与 S_t 相比,模式下降导致 S_g 的多样性降低;(ii)生成样本不够逼真,以至于分类器无法学到相关特征;(iii)GAN 可以将类别混在一起并混淆分类器。不幸的是,我们无法确定 GAN 的问题在哪。当 GAN-train 的准确率与验证集的准确率相近时,意味着 GAN 产生的图像质量很高且和训练集一样多样化。正如我们在 5.3 节中所说的那样,多样性会随着生成图像数量的变化而变化。我们将在本节末尾的评价讨论中对其进行分析。

GAN-test 是在原始训练集 S_t 上训练,但在 S_g 上测试得到的分类器的准确率。如果 GAN 能很好地进行学习,这就会是一项简单的任务,因为这两个数据集的分布是一样的。理想情况下,GAN-test 应该和验证准确率相近。如果 GAN-test 明显高了,那就意味着 GAN 过拟了,即它只是简单地记住了训练集。相反,如果 GAN-test 明显低了,则说明 GAN 无法很好地捕获目标分布且 GAN 生成的图像质量堪忧。注意,该指标无法说明样本的多样性,因为可以完美记忆每一个训练图像的模型可以得到很高的分数。GAN-test 与 [32] 中的精确度相关,它量化了生成图像与数据流形之间的接近程度。

为了深入了解 GAN 生成图像的多样性,我们通过大小不同的生成图像数据集得到了 GAN-train 准确率,将其与根据相应大小的真实数据训练得到的分类器的验证准确率相比较。如果所有的生成图像都是完美的,GAN-train 的 S_g(其中 GAN-train 等于小尺寸训练集的验证精度)的大小将会是 S_g 中不同图像数量的良好估计。我们在实践中观察到,在 GAN 生成样本数量确定的情况下,GAN-train 准确率是饱和的(见第 5.3 节中的图 4(a)和 4(b))。这是一种度量 GAN 多样性的方法,与 [32] 中的召回率相似,都是度量 GAN 覆盖的数据流形的分数的方法。

5. 实验

你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

表 1:CIFAR10 实验。IS:越高越好。FID 和 SWD:越低越好。为了提高可读性,此处的 SWD 值扩大了 1000 倍。GAN-train 和 GAN-test 是以百分比形式给出的准确率(越高越好)。

你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

图 3:第一列:SNGAN 生成的图像。其他列:来自 CIFAR10「train」的 5 幅图像,最接近基线 CIFAR10 分类器特征空间中第一列的 GAN 图像。

你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

表 2:CIFAR100 实验。细节参考表 1 标题。

你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

表 3:ImageNet 实验。SNGAN* 指经过 850k 次迭代训练得到的模型。细节参考表 1 标题。

你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

图 4:改变生成图像数据集大小对 GAN-train 准确率产生的影响。为了便于比较,我们还展示改变真实图像训练数据集大小对结果(蓝色曲线)产生的影响(最好以 pdf 格式查看)。

你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

图 5:用真实图像和 SNGAN 生成的图像结合的数据集训练分类器的结果。

你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

表 4:用缩减的真实图像数据集训练的 SNGAN 的数据强化。在真实图像数据集或真实图像和 SNGAN 生成的图像相结合的数据集(real+GAN)上训练得到的分类器。分类器准确率以百分数形式表示。

上一篇:Spring4+Springmvc+quartz实现多线程动态定时调度


下一篇:iOS启动页设置