【持续更新】生成模型常用评估指标记录

1 Inception Score (IS)

参考
[1] Improved Techniques for Training GANs
[2] A Note on the Inception Score
[3] https://zhuanlan.zhihu.com/p/432965561?utm_id=0

基本思想
IS是将生成的图片,通过图片分类器Inception Net-V3来进行评估图像质量,从而得到的一个值,这也是Inception Score的名字来源。Inception Net-V3是通过ImageNet训练得到的模型,故IS有最大值1000。公式如下:
I S ( G ) = e x p ( E x ∼ p g D K L ( p ( y ∣ x ) ∣ ∣ p ^ ( y ) ) ) IS(G) = exp(E_{x\sim p_g}D_{KL}(p(y|x)||\hat p(y))) IS(G)=exp(ExpgDKL(p(yx)∣∣p^(y)))
其中

  • exp : 形式更好看
  • E x ∼ p g E_{x\sim p_g} Expg : 遍历所有生成的样本,p_g表示生成样本的概率分布
  • D K L D_{KL} DKL : KL散度,衡量两个分布的差异程度
  • p ( y ∣ x ) p(y|x) p(yx) : 表示对于图像x,他属于所有类别的概率分布。其中x是生成的图片,这是一个1000维的向量。
  • p ^ ( y ) \hat p(y) p^(y) :表示所有生成的图片x,计算得到p(y|x),再求所有向量的平均值,最后也是一个1000维向量,相当于每个类别的占比。

解析
生成模型最基本应该考虑清晰度以及多样性,IS指标也是对生成图片的清晰度和多样性的衡量,IS值越大越好。

  • p ( y ∣ x ) p(y|x) p(yx) : 如果此概率分布越尖锐(熵越低),说明生成图像x属于某一个类别的概率越大,表明它生成的图片应该是越清晰的(暂且不说准确与否…)
  • p ^ ( y ) \hat p(y) p^(y) : 如果此概率越接近于均匀分布,说明每一个类别生成的图像数量相当,雨露均沾,说明生成模型的多样性也很不错。

问题
(1) 数据集
IS基于的Inception Net-V3是在ImageNet上训练的1000类分类任务,所以生成模型也应在ImageNet上训练。如果是其他数据集上训练的生成模型,将生成的图片丢进分类器里,得到的效果并不好。

比如说,使用Inception Net-V3来计算 p ( y ∣ x ) p(y|x) p(yx)的熵,在ImageNet上计算结果为1.97bit,在CIFAR-10上计算结果是4.664bit,在随机噪声图片上计算结果是6.512bit。随机噪声反而和CIFAR-10数据集得到的熵更相近,这是不合理的,说明它只在ImageNet数据集上表现的好

所以这是一个使用IS要注意的点:必须是在ImageNet上训练的生成模型,其他数据集打灭。

(2)敏感性
不同的深度学习框架下的Inception Net的权值,尽管对同一个数据集有差不多的分类精度,但是在同一个数据集下IS却相差很大。

所以说明不是IS越大模型越好,也有可能是对模型的权值太敏感了,其实生成的图像都差不多…

(3)IS分数并不是越高说明生成的图片越好(过拟合,生成的图片不真实),也不是越低说明生成的图片越差(生成的图片真实但不属于ImageNet1000类中的一个)。IS并不能反映过拟合现象,IS分高可能是过拟合的原因。

这也是使用IS要注意的点:切不可使用IS作为优化的一个指标(有实验证明如果优化IS其实很烂)

2 Fréchet Inception Distance (FID)

参考
[1] https://zhuanlan.zhihu.com/p/432965561?utm_id=0
[2] https://www.bilibili.com/video/BV1zr4y1X78p/?spm_id_from=333.788&vd_source=9e9b4b6471a6e98c3e756ce7f41eb134

基本思想
FID同样也是通过将生成的图片通过Inception Net-V3来评估图像质量,只不过它的输出不是最后的1000维向量,而是2048维特征,通过特征来评估生成图像质量的好坏(如果质量好的话,生成图像的特征的概率分布应该近似于真实样本的特征的概率分布)。公式如下
F I D = ∣ ∣ μ r − μ g ∣ ∣ 2 + T r ( Σ r + Σ g − 2 Σ r Σ g ) FID=||\mu_r-\mu_g||^2+Tr(\Sigma_r+\Sigma_g-2\sqrt{\Sigma_r \Sigma_g}) FID=∣∣μrμg2+Tr(Σr+Σg2ΣrΣg )
其中

  • μ \mu μ: 特征的均值
  • Σ \Sigma Σ : 特征的协方差矩阵
  • Tr : 迹(既矩阵的对角线之和)

FID默认数据遵循多元高斯分布(虽然并不是)。且如果生成样本和真实样本一致,那么 μ \mu μ Σ \Sigma Σ会完全一致,所以FID=0,所以FID是越小越好的。

论文中的实验在这里插入图片描述
这是人脸生成任务上的消融实验,可以看到对于FID评估指标,不真实的生成图像确实会导致更高的FID(包括最后一行的在生成图像中插入随机的ImageNet中的图像)。

但是论文作者在这里也犯了一个错误:IS只适用于ImageNet上训练得到的生成模型!!

FID优缺点
(1)优点

  • 生成模型的训练集可以不是ImageNet,由上面的实验可知只要是训练样本和真实数据样本是一致的就可以
  • 刷分并不会导致生成图像质量更差(FID越低只会表示生成图像质量更好,因为他是在特征层面的,不像IS)

(2)缺点

  • FID默认遵循多元正态分布,但提取的图像特征不一定符合
  • 无法解决过拟合问题,也可能会生成和训练集一毛一样的数据。
  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值