前言
生成式对抗网络的目标是生成高质量且多样性的样本,而一般的loss对其衡量能力有限,也无法像分类问题这种监督学习一样通过准确率等指标衡量。因此需要一些特定的方式对其进行衡量,本文主要介绍场景的几种衡量方式,即IS、FID与JS散度,能够从不同角度对GAN的效果进行衡量。
IS
IS即Inception Score,是一种比较常用的GAN模型评价指标。其设计基于GAN评价的两大指标,即结果的质量与多样性。前者一般是图像的清晰度,后者则是能否生成足够多样的图片,有些模型只能生成有限的几种,即陷入了上面提到的模式坍塌。
其对清晰度的考虑主要是基于以下假设:对于一个清晰的图片,它属于某一类的概率应该非常大,而属于其它类的概率应该很小。当然这个假设不是完全正确的,很多清晰的图像也难以分辨其具体的类别。但至少可以说得到的结果有明显的特征,也是其质量高的一种表现。这样的描述可以用熵来评价,质量高的结果熵应该很小,或者说混乱度很小,有明显的类别归属;多样性则是从生成结果的类别来衡量的,类别越多越均匀说明多样性越好。这一点同样也可以通过熵来评价。
综上两点,可以得到下面的公式:
仅从衡量大小的角度由于e指数函数为递增函数,故其意义主要在于数值大小的放缩,不影响单调性。IS的核心在于内部对生成结果KL散度的计算,KL 散度用以衡量两个概率分布的距离,是非负的。KL散度值越大说明这两个概率分布越不像,不过注意这个距离不是对称的,其公式如下:
根据上面的介绍,p(y|x)某个维度应该比较大,而p(y)比较均匀,或者说前者属于比较极端的分布,而后者比较均匀,因此主要两者距离足够大,或者说KL散度足够大,那么IS的值便会比较大。另外,实际应用中一般将数学期望改为均值。
JS散度
KL散度可以用来表示概率分布之间的差异,但由于其是不对称的,所以在某些方面可能会存在一些问题。为了克服不对称性提出了JS散度,其公式如下:
从公式可以看出,JS散度是对称的,且取值在0到1之间,当两个分布相同时为0。相对于KL散度,对相似度的判断更加准确。需要注意的一点,当分布距离过远而完全没有重叠时,KL散度是没有意义的,相应的JS散度也无法衡量,相当于梯度消失了。
FID
IS在计算时只使用生成数据的相关信息,对真实数据缺乏考虑,因此无法很好地反映真实数据和生成数据的距离。FID综合考虑了真实数据与生成数据的分布,通过计算其均值与协方差信矩阵行衡量,其公式如下:
可以看到,对于FID数值越小说明两者越接近,说明两者的均值与协方差都比较接近。因为FID直接衡量了生成数据与真实数据的距离,能够避免模式坍塌导致衡量上的问题,避开了IS的很多缺陷。