持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情
评价一个生成模型,我们需要考验它两方面性能:
- 生成的图片是否清晰;
- 生成的图片是否多样。
生成的图片不够清晰,那肯定就是模型生成的效果不行了。那如果生成的图片足够清晰了,但是缺乏多样性,比如模型只能生成有限的几种图片,陷入mode collapse,也不能说是一个好的生成模型。
那就可以用到IS评价指标,这个指标就是综合考虑生成图片的清晰度和多样性。
Inception Score (IS)
Inception Score是使用图片类别分类器来评估生成图片的质量。其中使用的图片类别分类器为Inception Net-V3,Inception Net-V3 是在ImageNet数据集上训练好的图片分类器,Inception Net-V3可以对一副图片输出一个1000分类的概率。
熵(entropy):
熵通俗来讲用于表示一个物体的无序程度,越有序的东西熵越小,越无序的东西熵越大。
清晰度: 把生成的图片输入 Inception V3 中,将输出 1000 维的向量 ,向量的每个维度的值对应图片属于某类的概率。 一个清晰的图片,我们应该很容易就能识别出它属于某一类的概率,所以该1000维向量的某一维会非常大。
使用条件概率表示图片的质量,也就是被预测程度,其中表示给定的图片,表示这个图片中的主体。这个概率越大,图片质量越高,被预测程度越高。 但是图片越清晰意味着图片的熵越小,所以的熵越小越好。
多样性: 对于模型生成的所有图片来说,为了保证生成的多样性,生成的图片应该尽可能的均匀。 比如生成一千万张图,一共1000个类别嘛,这些图片应该趋于均匀分布,也就是每类都生成一万左右的图。
图片多样性是使用边缘概率表示的,我们希望边缘分布趋于均匀分布,也就是熵越大越好。本来,但是由于我们是使用网络来近似模型的,无法对其进行精确计算,因此使用,其中为图像的类别。 公式也从变为。 IS是要计算两个概率分布的KL散度,所以IS应该是越大越好。
Fréchet Inception Distance(FID)
FID是计算真实图像和生成图像的特征向量之间距离的一种度量。计算FID我们用的还是Inception Net-V3,但是区别在于FID中去掉最后的输出层,得到的结果是2048维的向量。
-
求矩阵的迹(对角线和)
-
为特征均值
-
为协方差矩阵
通过计算图像的均值和协方差,将激活函数的输出归纳为一个多变量高斯分布。然后将这些统计量用于计算真实图像和生成图像集合中的激活函数。然后使用 Frechet 距离(又称 Wasserstein-2 距离)计算这两个分布之间的距离。 FID 越低,图像质量越好;并且FID具有很好的抗失真能力。下图可以看到失真程度越低FID分数越高。