在使用GAN进行图像生成任务中,我们的目的就是为了得到高质量的生成图像,那么总得需要个度量指标来衡量生成的图像是否是“高质量”的吧?不能完全靠人眼主观判断。这里提到生成图像的“高质量”,主要从两方面考虑:
图像本身的质量。如:是否清晰,内容是否完整,是否逼真等等。
多样性。最终的生成器所生成的图像需要多种多样的,不能只生成一种或几种类型的图像,产生的这种现象称为模式崩溃(Mode collapse)。
下面介绍两个在文献中常用的评价指标,IS(Inception Score)和FID(Fréchet Inception Distance)。
一、IS(Inception Score)
Inception Score[1] 使用在ImageNet上预训练的Inception V3 Network作为分类网络,将生成器生成的图像输入到Inception V3 Network中,对该网络输出值(图像所属类别)做统计分析。
IS的计算公式如下:
IS(G)=exp(Ex∼pgDKL(p(y∣x)∣∣p(y)))(1)IS(G)=\exp(\mathbb{E}_{\mathbf{x}\sim p_g}D_{KL}(p(y|\mathbf{x}) || p(y))) \tag 1IS(G)=exp(Ex∼pgDKL(p(y∣x)∣∣p(y)))(1)
其中:
x∼pg\mathbf{x} \sim p_gx∼pg表示x\mathbf{x}x是从pgp_gpg中生成的图像样本。
DKL(p∣∣q)D_{KL}(p || q)DKL(p∣∣q)表示分布ppp和qqq间的KL散度(衡量两个分布间距离)。
p(y∣x)p(y|\mathbf{x})p(y∣x)表示在给定图像x\mathbf{x}x下分类为yyy的概率(∈[0,1]1000\in [0, 1]^{1000}∈[0,1]1000,表示ImageNet中的1000类)。
p(y)=∫xp(y∣x)pg(x)p(y)=\int_x p(y|\mathbf{x})p_g(x)p(y)=∫xp(y∣x)pg(x)是类别的边缘分布。
exp\expexp是便于比较最终计算的IS值。
之所以IS公式考虑分布p(y∣x)p(y|\mathbf{x})p(y∣x)和p(y)p(y)p(y),是出于以下两个目的[2]:
所生成图像中需要包含清楚的目标或者说p(y∣x)p(y|\mathbf{x})p(y∣x)要有较低的熵。p(y∣x)p(y|\mathbf{x})p(y∣x)反映出图片的生成质量,概率值越大,说明生成的图像属于yyy类的可能性越高,也就表明生成的质量越高。最理想的情况是分布p(y∣x)p(y|\mathbf{x}