GAN 评价指标

date
May 13, 2022
Last edited time
Mar 27, 2023 08:51 AM
status
Published
slug
GAN评价指标
tags
DL
GAN
summary
type
Post
Field
Plat
GAN 的六种衡量方法
一、六种衡量指标 Inception Score The Mode Score FID Kernel MMD Wasserstein Distance 1-NN Classifier 二、总结 定义: 推导出上式的意义: 参考链接: 哪位大神解释下inception score? 尹相楠:Inception Score 的原理和局限性 其中H表示信息熵,也就是说,要想要得到尽可能高的结果,需要: 1.最大化H(y);也就是对于输入的样本,通过inception_v3模型后的类别要均衡,衡量模式坍塌,理想情况下每个类别生成的概率均等,此时H(y)达到最大。 2.最小化H(y|x);说明对于输入的样本,通过inception_v3模型后预测某类别的置信度要高,衡量图片生成的质量,理想情况下,生成的图片在inception_v3模型看来,某个类别的置信度为1.0,其它都为0,此时的H(y|x)最小。 虽然真实图片的inception_score是肯定比较高的,但是inception score高并不能代表生成的质量就好。比如通过adversarial samples,可以通过简单的生成每个类的特征图谱,看似噪声的图像,但是其inception score会很高。 通过 Inception Score 的公式我们知道,它并没有利用到真实数据集的信息,所有的计算都在生成的图片上计算获得。而 Mode Score 基于此做了改进: 也就是说,想要提高 Mode Score,除了 Inception Score 的两点,还要: 3.尽可能降低生成图片与数据集里的图片的标签y分布的KL散度。 Inception Score 是在分类器 InceptionV3 最后的输出结果上进行计算,而Fréchet Inception Distance
GAN 的六种衡量方法
GAN量化评估方法--IS(Inception Score)和FID(Frechet Inception Distance score)
生成模型产生的是高维的复杂结构数据,它们不同于判别模型,很难用简单的指标来评估模型的好坏。下面介绍两种当前比较流行的评估生成模型的指标(仅判别图像):IS(Inception Score)和FID(Frechet Inception Distance score)。   IS基于Google的预训练网络Inception Net-V3。Inception Net-V3是精心设计的卷积网络模型,输入为图片张量,输出为1000维向量。输出向量的每个维度的值对应图片属于某类的概率,因此整个向量可以看做一个概率分布。下面讲解IS的思路和推导过程。   IS考虑以下两个方面评估生成器的质量:   1、对于单一的生成图像,Inception输出的概率分布熵值应该尽量小。越小说明生成图像越有可能属于某个类别,图像质量高。   2、对于生成器生成的一批图像而言,Inception输出的 平均概率分布 熵值应该尽量大。也就是说,因为生成器应该保证生成图像的多样性,因此一批图像在Inception的输出应该尽量平均地"遍历"所有1000维标签。   1定义如下: \begin{equation} \begin{aligned} &E_{x\sim p_G}(H(p(y|x)))\\ =&\sum\limits_{x\in G}P(x)H(p(y|x))\\ =&\sum\limits_{x\in G}P(x)\sum\limits_{i=1}^{1000}P(y_i|x)\log \frac{1}{P(y_i|x)}\\ \end{aligned} \end{equation}   即先求批量输出分布的熵值再求熵的均值。其中$p(y|x)$表示Inception输入生成图像$x$时的输出分布,$P(x)$表示生成器$G$生成图像$x$的概率,$P(y_i|x)$表示Inception预测$x$为第$i$类的概率。   2定义如下: \begin{equation} \begin{aligned} &H(E_{x\sim p_G}(p(y|x)))\\ =&H\left(\sum\limits_{x\in G} P(x)P(y|x)\right)\\ =&H( p(y))\\ =&\sum\limits_{i=1}^{1000} P(y_i)\log \frac{1}{P(y_i)}\\ =&\sum\limits_{i=1}^{1000} \sum\limits_{x\in G}P(y_i,x)\log \frac{1}{P(y_i)}\\ =& \sum\limits_{x\in G}P(x)\sum\limits_{i=1}^{1000}P(y_i|x)\log \frac{1}{P(y_i)}\\ \end{aligned} \end{equation}   即先求批量输出分布的均值再求均值的熵。其中$p(y)$表示$G$生成的图片在Inception输出类别的平均分布,$P(y_i)$表示Inception判断$G$生成的图片属于$i$类的概率。   为了将1和2放在一起作为一个整体,取$(1)$式为负,这样这两个指标的目标就一致了,都是越大越好。然后将它们加起来,得到: \begin{equation} \begin{aligned} &\sum\limits_{x\in G}P(x)\sum\limits_{i=1}^{1000}P(y_i|x)\log \frac{P(y_i|x)}{P(y_i)}\\ =&E_{x\sim p_G}KL(p(y|x)||p(y)) \end{aligned} \end{equation}   其中$KL(p(y|x)||p(y))$是这两个分布的KL散度(相对熵)。最后再加上指数,得到最终的IS: \begin{equation} \begin{aligned} \text{IS}=\exp E_{x\sim p_G}KL(p(y|x)||p(y)) \end{aligned} \end{equation}   根据定义,IS值越大,生成图像的质量越高。   假设生成器$G$生成$n$张图片$\{x_1,x_2,...,x_n\}$,首先计算$P(y_i)$: \begin{equation} \begin{aligned} P(y_i) = \frac{1}{n}\sum\limits_{j=1}^nP(y_i|x_j) \end{aligned} \end{equation}   然后代入公式$(4)$计算IS: \begin{equation} \begin{aligned} \text{IS}(G) &=\exp E_{x\sim p_G}KL(p(y|x)||p(y)) \\
在判别模型中,训练完成的模型要在测试集上进行测试,然后使用一个可以量化的指标来表明模型训练的好坏,例如最简单的,使用分类准确率评价分类模型的性能,使用均方误差评价回归模型的性能。同样在生成模型上也需要一个评价指标来量化 GAN 的生成效果。

1. 评价指标的要求

用于评价生成模型 GAN 优劣的指标不可能是任意的,它应当尽可能考虑一些要求。这里列出几条比较重要的要求:
  1. 能生成更为真实样本的模型应当得到更好的分数,也就是可评价样本的生成质量
  1. 能生成更具有多样性样本的模型应当得到更好的分数,也就是可以评价 GAN 的过拟合、模式缺失、模式崩溃、简单记忆(即 GAN 只是简单记忆了训练数据集)等问题,即多样性。
  1. 对于 GAN 的隐变量 ,若有比较明确的 “意义” 且隐空间连续,那么可控制 得到期望的样本,这样的 GAN 应该得到更好的评价。
  1. 有界性,即评价指标的数值最好具有明确的上界、下界。
  1. GAN 通常被用于图像数据的生成,一些对图像的变换并不改变语义信息(例如旋转),故评价指标对某些变换前后的图像不应有较大的差别。
  1. 评价指标给出的结果应当与人类感知一致。
  1. 计算评价指标不应需要过多的样本,不应有较大的计算复杂性。考虑到实际情况,这些要求往往都不能同时得到满足,各个不同的指标也是各有优缺。

2. IS 系列

2.1 Inception Score

IS基于Google的预训练网络Inception Net-V3。Inception Net-V3是精心设计的卷积网络模型,输入为图片张量,输出为1000维向量。输出向量的每个维度的值对应图片属于某类的概率,因此整个向量可以看做一个概率分布。下面讲解IS的思路和推导过程。
  • 引入
      1. 对于单一的生成图像,Inception输出的概率分布熵值应该尽量小。越小说明生成图像越有可能属于某个类别,图像质量高。
        1. 熵是一种混乱程度的度量,对于质量较低的输入图像,分类器无法给出明确的类别,其熵应比较大,而对于质量越高的图像,其熵应当越小,当 为 one-hot 分布时,熵达到最小值 0。
          那么,评估指标可以写为:
      1. IS 考虑的另一个度量指标即样本的多样性问题,若 GAN 产生的一批样本 多样性比较好,则标签向量 的类别分布也应该是比较均匀的,也就是说不同类别的概率基本上是相等的(当然这里要假设训练样本的类别是均衡的)。
        1. 故可使用标签向量 关于类别的熵来定量描述,若生成样本的多样性好(涵盖的类别多),则 相对于类别的熵越大;生成样本的多样性差,则 相对于类别的熵越小,其中定义 相对于类别的熵为
          那么,指标可以写为:
          其中, 表示第 类的概率,即 值。
      将图像质量和多样性两个指标综合考虑,可以将样本和标签的互信息 设计为生成模型的评价指标,互信息描述了给定一个随机变量后,另一个随机变量的不确定性减少程度。又被称为信息增益,即:
  • IS的计算
    • 实际上,我们使用 KL 散度作为目标函数,来最大化分布 ,来衡量这两个分布的差异程度,差异程度越大,则不确定性减少程度越高,则 越高。公式如下:

2.2 IS 的缺陷

IS 作为 GAN 的评价指标,自 2016 年提出以来,已经具备了比较广泛的接受程度,但也有一些不可忽略的问题和缺陷。
  1. 当 GAN 发生过拟合时,生成器只 “记住了” 训练集的样本,泛化性能差,但是 IS 无法检测到这个问题,由于样本质量和多样性都比较好,IS 仍然会很高。
  1. 由于 Inception Net-V3 是在 ImageNet 上训练得到的,故 IS 会偏爱 ImageNet 中的物体类别,而不是注重真实性。GAN 生成的图片无论如何逼真,只要它的类别不存在于 ImageNet 中,IS 也会比较低。
  1. 若 GAN 生成类别的多样性足够,但是类内发生模式崩溃问题,IS 无法探测。
  1. IS 只考虑生成器的分布 而忽略数据集的分布
  1. IS 是一种伪度量。
  1. IS 的高低会受到图像像素的影响。以上这些问题限制了 IS 的推广,接下来我们列出几种 IS 的改进版本。

2.3 Mode Score

MS(Mode Score) 是 IS 的改进版本,考虑了训练数据集的标签信息,其定义为:
其中, 表示经过训练数据集的样本得到的标签向量的类别概率, 表示经过 GAN 生成样本得到的标签向量的类别概率,MS 同样考虑了生成样本的质量与多样性的问题,不过可以证明其与 IS 是等价的
notion image

2.4 Modifified Inception Score

m-IS(Modifified Inception Score) 重点关注了类内模式崩溃的问题,例如使用 ImageNet 训练好的 GAN 可以均匀生成 1000 类图像,但是在每一类中,只能产生一种图像,也就是生成的苹果图像永远长一个样子,但是 GAN 的生成质量和类别多样性是完全没有问题的。m-IS 对于同一类样本的标签计算了交叉熵:
notion image
其中 均为同一类别的样本,其类别由 Inception Net-V3 的输出结果决定。将类内交叉熵考虑进 IS 可得 m-IS,即
可以看出,m-IS 评价的是 GAN 的生成质量和类内多样性。当 m-IS 分数越大时,GAN 生成性能越好。

2.5 AM Score

AMS(AM Score)的考虑是:假设类别标签具有均匀性,生成模型 GAN 生成 1000 类的概率是大致相等的,故可使用 相对于类别的熵来量化该项,但当数据在类别分布中不均匀时,IS 评价指标是不合理的,更为合理的选择是计算训练数据集的类别标签分布与生成数据集的类别标签分布的 KL 散度,即
其中, 表示经过训练数据集的样本得到的标签向量的类别概率,关于样本质量的一项保持不变,则 AMS 的表达式为:
notion image
显然,当 AMS 分数越小时,GAN 生成性能越好。

3. FID

FID(Fréchet Inception Distance)是一种评价 GAN 的指标,于 2017 年提出,它的想法是这样的:分别把生成器生成的样本和判别器生成的样本送到分类器中(例如 Inception Net-V3 或者其他 CNN 等),抽取分类器的中间层的抽象特征,并假设该抽象特征符合多元高斯分布,估计生成样本高斯分布的均值 和协方差 ,以及训练样本 和协方差 ,计算两个高斯分布的弗雷歇距离,此距离值即 FID:
最后将 FID 作为评价指标。示意图如下,其中虚线部分表示中间层
notion image
FID 的数值越小,表示两个高斯分布越接近,GAN 的性能越好。实践中发现,FID 对噪声具有比较好的鲁棒性,能够对生成图像的质量有比较好的评价,其给出的分数与人类的视觉判断比较一致,并且 FID 的计算复杂度并不高,虽然 FID 只考虑的样本的一阶矩和二阶矩,但整体而言,FID 还是比较有效的,其理论上的不足之处在于:高斯分布的简化假设在实际中并不成立。
  • 过程
      1. 对目标数据集的N张图片使用InceptionV3生成 的向量,取平均值,得到 ,计算得到
      1. 对生成的M张图片使用InceptionV3生成 的向量,取平均得到 ,计算得到
      1. 得到 指标。
  • 优势
      1. 生成模型的训练集和 Inception V3 的训练集可以不同,因为使用了中间层。
      1. 计算 FID 时同时用到了生成的数据和真实数据,比起 IS 来更灵活。可以理解成,IS 判断真实性与否,是把生成数据和 ImageNet 数据做比较,而 FID 是把生成数据和训练数据做比较,因此更 reasonable。
      1. 以优化 FID 为目标,不会产生对抗样本。因为优化的是 lantent space feature,不是最终的输出图片,不会导致最终的生成图片失真。
  • 缺点
      1. FID 只是某一层的特征的分布,是否足以衡量真实数据分布与生成数据分布的距离?同时,提出 FID 公式计算的是多元正态分布的距离,显然神经网络提取的特征并不是多元正态分布。
      1. 针对同一个生成模型,不同框架下预训练的 Inception V3 算出的 FID 差别是否可以忽略?
      1. FID 无法反映生成模型过拟合的情况,如果某个生成模型只是简单拷贝训练数据,FID 会非常小,认为这是一个完美的生成模型,因此,使用 FID 时同时也要通过别的手段证明生成模型没有过拟合。

4. MMD

MMD(Maximum Mean Discrepancy)在迁移学习中具有非常广泛的应用,它是在希尔伯特空间对两个分布的差异的一种度量,故可以考虑使用 MMD 度量训练数据集分布 和生成数据集 的距离,然后使用这个距离作为 GAN 的评价指标。若 MMD 距离越小,则表示 越接近,GAN 的性能越好。
计算 MMD 时,首先选择一个核函数 ,它将两个样本映射为一个实数,例如多项式核函数:,或者高斯核函数 :
则 MMD 距离为:
不过实际计算时,我们不可能求期望,而需要使用样本估计 MMD 值,对于来自于训练样本集的 个样本 和来自于生成器生成的 个样本 ,MMD 的估算值为:
由于 MMD 是使用样本估计的,即使 完全相同,估算得到 MMD 也未必等于零。

5. Wasserstein Distance

Wasserstein 距离又称 earth-mover 距离、推土机距离,与 MMD 类似,它也是两个分布的差异的一种度量,故也可以作为 GAN 的评价指标。若 Wasserstein 距离越小,则表示 越接近,GAN 的性能越好。在性能优越的 WGAN 中,便是先通过判别器(critic)学习两个分布的 Wasserstein 距离,再以最小化 Wasserstein 距离为目标函数来训练生成器的。当把 Wasserstein 距离作为评价指标时,需要先有一个已经训练好的判别器 ,对于来自于训练样本集的 个样本 和来自于生成器生成的 个样本 ,Wasserstein 距离的估算值为:
这个评价指标可以探测到生成样本的简单记忆情况和模式崩溃情况,并且计算比较快捷方便。不过需要注意,由于使用 Wasserstein 距离作为评价指标需要依赖判别器和训练数据集,故它只能评价使用特定训练集训练的 GAN,例如对使用苹果图像训练集训练得到判别(critic),它无法评价橘子图像生成器的性能,故也具有一定的局限性。

6. 1-Nearest Neighbor Classifier

1-Nearest Neighbor Classifier 的基本想法是,希望计算判定出 是否相等,若相等则证明生成模型 GAN 是优秀的,若差距比较大则说明 GAN 是比较差的。做法如下,对于来自于训练样本集概率分布 个样本 和来自于生成器概率分布 个样本 ,计算使用 1-NN 的 LOO(leave-one-out)的准确率,并使用准确率作为评价指标。
具体地说,将 以及它们对应的标签组合成新的样本集合 里共包括 个样本,使用留一交叉验证的方法,将 中的样本分成两份 个样本, 只有一个样本,使用 训练 1-NN 二分类器,在 中进行验证计算正确率(0% 或 100%)。每次 选择不同的样本,将上述过程循环 次,计算总体的分类正确率,并将准确率作为 GAN 的评价指标。
如果 来自与同一概率分布(即 ),且样本数量比较大,则 1-NN 分类器无法将其很好的分开,其结果接近于随机猜测,总正确率接近 50%,如下图所示:
notion image
当 GAN 发生简单记忆的问题,即生成器生成的样本与训练样本完全一样,则任意测试样本在 1-NN 上的正确率都为 0%,因为存在一个与测试样本距离为 0 的样本,但两者的类别标签相反,故总体正确率为 0%,如下图所示:
notion image
极端的情况,当生成器生成样本与训练集样本差异很大时,即 GAN 生成效果很不好时,任意测试样本在 1-NN 上的正确率都为 100%,因为 1-NN 完全可以进行准确的分类,则整体准确率也为 100%,如下图所示:
notion image
当 1-Nearest Neighbor Classifier 的总正确率接近 50% 时,说明生成器的性能越好。另外说明,这里选择 1-NN 作为二分类器的原因是,1-NN 结构简单,计算方便且不含任何超参数。

7. GANtrain and GANtest

在 GANtrain 和 GANtest 中,并没有设计给出可量化的评价指标,而是计算几个指标并进行对比分析,从而评价 GAN 的性能,这里评价的是可生成多类样本的 GAN。
  1. 定义训练样本集 ,验证集 以及由 GAN 生成的样本集
  1. 在训练集 上训练分类器并在验证集 上计算准确率,将准确率记为 GANbase。
  1. 在生成集 上训练分类器并在验证集 上计算准确率,将准确率记为 GANtrain。
  1. 在训练集 上训练分类器并在生成集 上计算准确率,将准确率记为 GANtest。
比较 GANbase 和 GANtrain,当 GAN 存在问题时,GANtrain 要小于 GANbase,可能因为生成集 相比训练集 发生了模式丢失,或者生成样本不足够真实让分类器学到相关特征,或者 GAN 没有将类别分得很开,产生类别混合等,原因可能有很多。当 GANtrain 与 GANbase 接近时,说明 GAN 生成图像质量高,和训练集有相似的多样性。
比较 GANbase 和 GANtest,理想情况下,两者数值应该接近。如果 GANtest 非常高,那么说明 GAN 过拟合,发生简单记忆的问题。如果 GANtest 很低,则说明 GAN 没有很好的数据集分布,图像质量不高。GAN-test 准确率衡量了生成图像和数据流形的距离的远近。

8. NRDS

9. Image Quality Measures

10. Average Log-likelihood


© Lazurite 2021 - 2024