GAN的评价指标——KID解读(内含FID)
最近在用StyleGAN2-ada做毕设,发现里面的生成效果评估指标除了FID以外还计算了KID,网上目前还没有博客对KID进行详细的解释,就查了一些资料尝试解读一下。
KID来自于论文 《Demystifying MMD GANs》,是一种和FID十分相似的GAN生成质量度量指标,可以评估GAN的收敛程度。我们知道,FID指标假设图像的2048维Inception特征表示服从正态分布,通过衡量生成图像和真实图像之间特征表示的均值和协方差的差距,计算Fréchet距离(也称为Wasserstein-2距离)来度量生成图像质量,公式为
其中μr和μg分别代表真实图像和生成图像的Inception特征表示的均值,Σr和Σg分别表示真实图像和生成图像的Inception特征表示的协方差矩阵。但我们知道ReLU之后的结果恒非负,因此正态分布假设其实是有问题的。此外,FID鲁棒性差,并且是有偏的,值得一提的是,作者在文中证明,在FID的计算方式下,不存在无偏(unbiased)的评估指标。
因此作者引入了KID,它不需要FID那样的正态分布假设,是一种无偏的估计。在引入其计算方式前,首先要了解一下最大平均差异(MMD,maximum mean discrepancy)。
MMD是一种积分概率度量(integral probability metrics),即寻找在样本空间上的连续函数f,求不同分布的样本在f上的函数值的均值,通过把两个均值作差可以得到两个分布对应于f的mean discrepancy。那么MMD的目标就是寻找一个f使得这个mean discrepancy取得最大值。为了使其可计算,将f限制在再生希尔伯特空间RKHS(reproducing kernel Hilbert space)的单位球内,此时MMD具体公式如下:
P表示生成图像的分布,Q表示真实图像的分布。经过一系列推导(详见这里),最终得到一个平方MMD的表达式:
m是生成图像的样本量,n是真实图像的样本量,k就是kernel。
看到这里,KID就呼之欲出了。它就是在Inception特征表示空间的多项式核函数平方MMD,即在上面的平方MMD表达式中,每个x和y均是来自Inception网络的2048维向量,而,其中d=2048,也就是特征向量维度。
在此顺便附上StyleGAN2-ada中计算KID的源码:
n = real_features.shape[1]m = min(min(real_features.shape[0], gen_features.shape[0]), max_subset_size)t = 0for _subset_idx in range(num_subsets):x = gen_features[np.random.choice(gen_features.shape[0], m, replace=False)]y = real_features[np.random.choice(real_features.shape[0], m, replace=False)]a = (x @ x.T / n + 1) ** 3 + (y @ y.T / n + 1) ** 3b = (x @ y.T / n + 1) ** 3t += (a.sum() - np.diag(a).sum()) / (m - 1) - b.sum() * 2 / mkid = t / num_subsets / m
可以看到它将所有数据分成几个subset来计算kid,a和b就是算的kernel,最终表达式即平方MMD,只不过是在各subsets上的平均值。
GAN的评价指标——KID解读(内含FID)相关推荐
- 【GAN优化】长文综述解读如何定量评价生成对抗网络(GAN)
欢迎大家来到<GAN优化>专栏,这里将讨论GAN优化相关的内容,本次将和大家一起讨论GAN的评价指标. 作者&编辑 | 小米粥 编辑 | 言有三 在判别模型中,训练完成的模型要在测 ...
- gan怎么输入一维数据_GAN评价指标最全汇总
本文首发于微信公众号:有三AI 作者:小米粥 最近一部分的内容将会比较容易,将和大家一起讨论GAN的评价指标.在判别模型中,训练完成的模型要在测试集上进行测试,然后使用一个可以量化的指标来表明模型训练 ...
- GAN网络评估指标:IS、FID、PPL
GAN网络评估指标:IS.FID.PPL 转自:IS.FID.PPL,GAN网络评估指标 另外关于GAN的评价指标,推荐李宏毅老师的视频:[機器學習2021]生成式對抗網路 (Generative A ...
- 生成对抗网络GAN论文总结+复现代码(已完成27篇,未完待续。。。)
GAN论文学习心得 写在前面 (GAN)Generative Adversarial Networks (CGAN)Conditional Generative Adversarial Nets (D ...
- 史上最全GAN综述2020版:算法、理论及应用
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 转载自:机器之心 自从 2014 年 Ian GoodFellow 提出 GAN ...
- 「GAN优化」如何学会以正确的姿势定量评价你的GAN
作者 | 小米粥 编辑 | 言有三 在机器学习中,训练完成的模型要在测试集上进行性能测试,然后使用一个可以量化的指标来表明模型训练的好坏,例如最简单的,使用分类准确率评价分类模型的性能,使用均方误差评 ...
- 不用卷积也能生成清晰图像,用两个Transformer构建一个GAN
作者|Yifan Jiang等 来源|机器之心 attention is really becoming『all you need』. 最近,CV 研究者对 transformer 产生了极大的兴趣并 ...
- 从动力学角度看优化算法:GAN的第三个阶段
作者丨苏剑林 单位丨追一科技 研究方向丨NLP,神经网络 个人主页丨kexue.fm 在对 GAN 的学习和思考过程中,我发现我不仅学习到了一种有效的生成模型,而且它全面地促进了我对各种模型各方面的理 ...
- 史上最全GAN综述2020版:算法、理论及应用(A Review on Generative Adversarial Networks: Algorithms, Theory, and Applic)
** ** 史上最全GAN综述2020版:算法.理论及应用** 论文地址:https://arxiv.org/pdf/2001.06937.pdf ** 摘要:生成对抗网络(GANs)是近年来的一个研 ...
- FW-GAN: Flow-navigated Warping GAN for Video Virtual Try-on翻译
FW-GAN:用于虚拟视频试穿的流指导变换GAN 摘要: 在目前越来越受关注的基于图像的虚拟试衣系统之外,我们进一步开发了基于视频的虚拟试衣系统,它可以精确地精确地将衣服转移到人身上,并且能以任意姿势 ...
最新文章
- R语言使用pwr包的pwr.t2n.test函数对分组样本数不同的t检验进行效用分析(power analysis)的语法
- .Net Framework 4.5.1 安装时遇到严重错误 问题的解决方法
- c++ map是有序还是无序的_C++ STL中Map的按Key排序和按Value排序
- 安徽省智慧政务新模式及典型应用
- Fedora的systemctl命令详解 Fedora配置IP地址/DNS/Networking
- 视频分辨率和音频质量_高分辨率音频的声音是否比CD质量好?
- 用女朋友动态图做微信二维码,小白都会
- python字典长度可变吗_关于在Python3中:字典在迭代过程中,字典的长度是不允许改变的...
- Grinmw.py v0.1.1发布,支持Grin Wallet API V3和Grin Node API V2
- [二分图]luogu 1640 连续攻击游戏
- Dart云平台-DartPad
- 微软面试题:写程序找出二叉树的深度
- 14个阿里高管的研发管理实践和思考 | 凌云时刻
- ubuntu安装java虚拟机
- javascript随机密码生成
- 运维自动化之殇 | 高效运维最佳实践05
- 怎样快速将方形图片剪裁成椭圆形?分享大家一个小妙招
- 【计量经济学】SPSS——一元线性回归【方差分析、残差分析】
- 实现文件拷贝并获取拷贝进度
- STM32开发资料链接分享
热门文章
- 广州图书馆跳转中国知网教程
- mybatis mysql begin end_mybatis批量操作
- 反射和动态代理的区别
- wincc远程服务器配置,WINCC-OPC服务器配置
- 进不去系统rpc服务器不可用,rpc服务器不可用_详细解决方法,彻底修复
- js中的splice方法使用,删除数组中的最大最小值
- shell脚本实现彩色进度条
- git push reject : pre-receive hook declined
- 基因家族分析-蛋白互作网络分析
- Cannot access a disposed object. A common cause of this error is disposing a context that was resolv