生成对抗网络(GAN)之IS与FID
一、Inception score (IS)
Inception score是衡量GAN生成数据的好坏的标准,如它的名字一样,基于inception v3的模型。架构可见Google的Inception v3 Guide,其中有一张完整的架构图。

二、IS的计算方式
针对我们GAN生成的图片,我们套用一个预先训练好的Inception模型来获得概率分布 。我们希望我们的GAN生成接近真实的数据,同时也希望GAN生成多样的数据,所以我们希望概率分布
有着低entropy,以及
有着高entropy。
于是我们的评分机制为:
KL代表Kullback–Leibler divergence,用于衡量两个概率分布间的距离,
具体的代码可参见论文团队的GitHub Repo页,阅读需要一些numpy的基础。

三、Fréchet Inception Distance (FID)
FID是在IS的基础上的改良版。我们令分别代表GAN生成数据的概率分布和来自"real-world"的概率分布,
分别为
的均值和协方差,
分别为
的均值和协方差。我们从Inception v3的最后一个层的activation中获取以上的数据。
然后我们基于Fréchet distance:
然后我们希望这个距离越小越好。
以下为来自论文团队GitHub Repo的代码(有个人删减)
以下是个人娱乐用的尝试,128*128的图片,A组为云,B组为星空


结果得出,距离很远。
如果将A组图片一分为二,然后计算自身与自身的距离,得出

参考资料
Martin Heusel, Hubert Ramsauer, Thomas Unterthiner, Bernhard Nessler, Sepp Hochreiter - GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium
Tim Salimans, Ian Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford, Xi Chen - Improved Techniques for Training GANs
/TTUR - https://github.com/bioinf-jku/TTUR/blob/master/FIDvsINC/fid.py
openai/improved-gan - https://github.com/openai/improved-gan/blob/master/inception_score/model.py

THE END.