欢迎光临散文网 会员登陆 & 注册

生成对抗网络(GAN)之IS与FID

2021-06-03 02:53 作者:刹那-Ksana-  | 我要投稿

一、Inception score (IS)

Inception score是衡量GAN生成数据的好坏的标准,如它的名字一样,基于inception v3的模型。架构可见Google的Inception v3 Guide,其中有一张完整的架构图。

二、IS的计算方式

针对我们GAN生成的图片,我们套用一个预先训练好的Inception模型来获得概率分布p(y%7Cx) 。我们希望我们的GAN生成接近真实的数据,同时也希望GAN生成多样的数据,所以我们希望概率分布p(y%7Cx)有着低entropy,以及%5Cint%20p(y%7Cx%3DG(z))dz%20有着高entropy。

于是我们的评分机制为:E_xKL(p(y%7Cx)%7C%7Cp(y))

KL代表Kullback–Leibler divergence,用于衡量两个概率分布间的距离,

D_%7BKL%7D(P%7C%7CQ)%3D%5Csum%20P(x)log(%5Cfrac%7BP(x)%7D%7BQ(x)%7D)

具体的代码可参见论文团队的GitHub Repo页,阅读需要一些numpy的基础。

三、Fréchet Inception Distance (FID)

FID是在IS的基础上的改良版。我们令p(%5Ccdot)%2Cp_w(%5Ccdot)分别代表GAN生成数据的概率分布和来自"real-world"的概率分布,m%2CC分别为p(%5Ccdot)的均值和协方差,m_w%2CC_w分别为p_w(%5Ccdot)

的均值和协方差。我们从Inception v3的最后一个层的activation中获取以上的数据。

然后我们基于Fréchet distance:

d%5E2((m%2C%20C)%2C%20(m_w%2C%20C_w%20))%20%3D%7C%7Cm-m_w%7C%7C%5E2_2%2BTrace(C%2BC_w-2(CC_w)%5E%7B1%2F2%7D)

然后我们希望这个距离越小越好。

以下为来自论文团队GitHub Repo的代码(有个人删减)

以下是个人娱乐用的尝试,128*128的图片,A组为云,B组为星空

A组
B组

结果得出FID(A%2CB)%3D231.18573,距离很远。

如果将A组图片一分为二,然后计算自身与自身的距离,得出FID(A_x%2C%20A_y)%3D45.22121

参考资料

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

bioinf-jku/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.

生成对抗网络(GAN)之IS与FID的评论 (共 条)

分享到微博请遵守国家法律