Loading [MathJax]/jax/input/TeX/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >生成专题2 | 图像生成评价指标FID

生成专题2 | 图像生成评价指标FID

作者头像
机器学习炼丹术
发布于 2022-03-15 04:25:24
发布于 2022-03-15 04:25:24
2.9K00
代码可运行
举报
运行总次数:0
代码可运行
  • 文章转自微信公众号:机器学习炼丹术
  • 作者:陈亦新(欢迎交流共同进步)
  • 2.1 感性理解
  • 2.2 代码实现

2.1 感性理解

FID是Fréchet Inception Distance。

FID依然是表示生成图像的多样性和质量,为什么FID越小,则图像多样性越好,质量越好。

FID的计算器中,我们也是用了inception network网络。inception netowrk其实就是特征提取的网络,最后一层输出图像的类别。不过我们会去除最后的全连接或者池化层,使得我们得到一个2048维度的特征

对于我们已经拥有的真实图片,所有真实图片的提取的向量是服从一个分布的;对于用GAN生成的图片对应的高位向量特征也是服从一个分布的。如果两个分布相同,那么意味着GAN生成图片的真实程度很高。

现在,我们如何计算两个分布的距离呢?因为这两个分布是多变量的,包含2048维度的特征,所以我们是计算两个多维变量分布之间的距离。可以使用Wasserstein距离或者Frechet距离。

假如一个随机变量服从高斯分布,那么这个分布可以用一个均值和方差来确定。那么两个分布只要均值和方差相同,那么两个分布则相同。我们可以利用均值和方差来计算两个单变量高斯分布之间的距离。这里是多维度的分布,我们可以使用协方差矩阵来衡量多个维度之间的相关性,所以使用均值和协方差矩阵来计算两个高维分布之间的距离。

我们下面公式计算FID:

FID(x,g)=||μxμg||22+Tr(Σx+Σg2(ΣxΣg)0.5)

公式中,Tr表示矩阵对角线上元素的综合,矩阵论中成为矩阵的迹。x和g表示真实的图片和生成的图片,μ表示均值,σ是协方差矩阵。

较低的FID表示两个分布更为接近。

下面是使用Numpy实现FID的计算过程:

2.2 代码实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# calculate frechet inception distance
def calculate_fid(act1, act2):
 # calculate mean and covariance statistics
 mu1, sigma1 = act1.mean(axis=0), cov(act1, rowvar=False)
 mu2, sigma2 = act2.mean(axis=0), cov(act2, rowvar=False)
 # calculate sum squared difference between means
 ssdiff = numpy.sum((mu1 - mu2)**2.0)
 # calculate sqrt of product between cov
 covmean = sqrtm(sigma1.dot(sigma2))
 # check and correct imaginary numbers from sqrt
 if iscomplexobj(covmean):
  covmean = covmean.real
 # calculate score
 fid = ssdiff + trace(sigma1 + sigma2 - 2.0 * covmean)
 return fid
  
# define two collections of activations
act1 = random(10*2048)
act1 = act1.reshape((10,2048))
act2 = random(10*2048)
act2 = act2.reshape((10,2048))
# fid between act1 and act1
fid = calculate_fid(act1, act1)
print('FID (same): %.3f' % fid)
# fid between act1 and act2
fid = calculate_fid(act1, act2)
print('FID (different): %.3f' % fid)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习炼丹术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
学习GAN模型量化评价,先从掌握FID开始吧
Frechet Inception 距离得分(Frechet Inception Distance score,FID)是计算真实图像和生成图像的特征向量之间距离的一种度量。
机器之心
2019/10/15
3.5K0
学习GAN模型量化评价,先从掌握FID开始吧
高斯混合模型 GMM 的详细解释
来源:机器学习杂货店本文约3500字,建议阅读10+分钟本文为你介绍 KMeans 的一个替代方案之一,高斯混合模型。 高斯混合模型(后面本文中将使用他的缩写 GMM)听起来很复杂,其实他的工作原理和 KMeans 非常相似,你甚至可以认为它是 KMeans 的概率版本。这种概率特征使 GMM 可以应用于 KMeans 无法解决的许多复杂问题。 因为KMeans的限制很多,比如:它假设簇是球形的并且大小相同,这在大多数现实世界的场景中是无效的。并且它是硬聚类方法,这意味着每个数据点都分配给一个集群,这也是不
数据派THU
2023/05/11
8910
高斯混合模型 GMM 的详细解释
深入浅出贝叶斯模型选择
贝叶斯推理[1](Bayesian inference)是统计学中的一个重要问题,也是许多机器学习方法中经常遇到的问题。例如,用于分类的高斯混合模型或用于主题建模的潜在狄利克雷分配(Latent Dirichlet Allocation,简称LDA)模型等概率图模型都需要在拟合数据时解决这一问题。
数据STUDIO
2021/11/10
1.6K0
高斯过程 Gaussian Processes 原理、可视化及代码实现
本文解析了高斯过程进行公式推导、原理阐述、可视化以及代码实现,并介绍了高斯过程回归基本原理、超参优化、高维输入等问题。
AI算法与图像处理
2020/11/06
6.3K0
高斯过程 Gaussian Processes 原理、可视化及代码实现
机器学习(16)——EM算法示例
算法思想:含有隐变量的极大似然估计 我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。 但是在一些情况下,我们得到的观察数据有未观察到的隐含数据,此时我们未知的有隐含数据和模型参数,因而无法直接用极大化对数似然函数得到模型分布的参数。怎么办呢?这就是EM算法可以派上用场的地方了。那么先复习一下极大似然估计。 极大似然估计(MLE) 直接举个例子: 某位同学与一位猎人一起外出打猎,一只野兔从前方窜过。只听一声枪响,野兔应声到下,如果要你推测,这一发命中的子弹是谁打
DC童生
2018/04/27
1.6K0
机器学习(16)——EM算法示例
概率论11 协方差与相关系数
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!
Vamei
2018/09/25
1.4K0
概率论11 协方差与相关系数
概率论11 协方差与相关系数
前面介绍的分布描述量,比如期望和方差,都是基于单一随机变量的。现在考虑多个随机变量的情况。我们使用联合分布来表示定义在同一个样本空间的多个随机变量的概率分布。 联合分布中包含了相当丰富的信息。比如从联合分布中抽取某个随机变量的边缘分布,即获得该随机变量的分布,并可以据此,获得该随机变量的期望和方差。这样做是将视线限制在单一的一个随机变量上,我们损失了联合分布中包含的其他有用信息,比如不同随机变量之间的互动关系。为了了解不同随机变量之间的关系,需要求助其它的一些描述量。 协方差 协方差(covariance)
Vamei
2018/01/18
7010
概率论11 协方差与相关系数
FID指标复现踩坑避坑 文本生成图像FID定量实验全流程复现(Fréchet Inception Distance )定量评价实验踩坑避坑流程
在系统运维中,性能调优是确保系统高效运行的关键任务。CPU是系统的核心资源之一,其性能直接影响系统的整体运行速度。内存是系统运行的重要资源,内存不足会导致系统性能下降,甚至崩溃。磁盘I/O性能是系统性能的瓶颈之一,通过优化磁盘I/O,可以显著提升系统性能。这篇文章深入探讨了如何优化CPU、内存和磁盘I/O资源的使用,通过详细的策略和示例代码,帮助您实现系统性能的提升。
中杯可乐多加冰
2024/11/26
3570
二次判别分析(QDA)和Python实现
其中μ为类特有的均值向量,σ为类特有的协方差矩阵。利用贝叶斯定理,我们现在可以计算类后验
deephub
2021/04/16
1.3K1
【数据分析 R语言实战】学习笔记 第六章 参数估计与R实现(上)
BBsolve()@BB:使用Barzilai-Borwein步长求解非线性方程组
统计学家
2019/04/10
2.9K0
【数据分析 R语言实战】学习笔记 第六章 参数估计与R实现(上)
用Python生成随机样本
如何生成一个随机变量/随机向量的随机样本?连续型随机变量离散型随机变量随机向量Markov 链的一个轨道与其极限分布的关系
用户3577892
2020/06/12
6830
用Python生成随机样本
Matplotlib时间序列型图表(2)
在上一篇文章中,我们了解了时间序列图表的绘制方法,效果如下(滑动以浏览),对以往的工作做个总结。目的就是简化大家代码的书写过程,拓宽绘图方法,为科研和商业绘图提供帮助。
python数据可视化之路
2023/02/23
6590
Matplotlib时间序列型图表(2)
Text to Image 文本生成图像定量评价指标分析笔记 Metric Value总结 IS、FID、R-prec等
这里推荐一篇实用的文章:一文彻底弄懂 MySQL 优化:从 Java 后端视角出发。
中杯可乐多加冰
2024/11/25
1970
生成专题1 | 图像生成评价指标 Inception Score (IS)
熵entropy可以被用来描述随机性:如果一个随机变量是高度可预测的,那么它就有较低的熵;相反,如果它是乱序随机的,那么它就是有较高的熵。这和训练分类网络所用的交叉熵是同一个道理。
机器学习炼丹术
2022/03/15
2.2K0
生成专题1 | 图像生成评价指标 Inception Score (IS)
Python AI 教学 | EM算法(Expectation Maximization Algorithm)及应用
假设目前有100个男生和100个女生的身高,共200个数据,但是我们不知道这200个数据中哪个是男生的身高,哪个是女生的身高。假设男生、女生的身高分别服从正态分布,但每个样本从哪个分布抽取的,我们目前是不知道的。这个时候,对于每一个样本,就有两个方面需要猜测或者估计: 这个身高数据是来自于男生还是来自于女生?男生、女生身高的正态分布的参数分别是多少?EM算法要解决的问题正是这两个问题。
用户1621951
2019/10/18
2.1K0
Python AI 教学 | EM算法(Expectation Maximization Algorithm)及应用
深度学习-数学基础
目前主要有两种度量模型深度的方式。第一种方式是基于评估架构所需执行的顺序指令的数目。假设我们将模型表示为给定输入后,计算对应输出的流程图,则可以将这张流程图中的最长路径视为模型的深度。另一种是在深度概率模型中使用的方法,它不是将计算图的深度视为模型深度,而是将描述概念彼此如何关联的图的深度视为模型深度。在这种情况下,计算每个概念表示的计算流程图的深度可能比概念本身的图更深。这是因为系统对较简单概念的理解在给出更复杂概念的信息后可以进一步精细化
范中豪
2019/09/10
8360
深度学习-数学基础
马氏距离 (马哈拉诺比斯距离) (Mahalanobis distance)
马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示点与一个分布之间的距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是,它考虑到各种特性之间的联系,本文介绍马氏距离相关内容。 欧氏距离的缺点 距离度量在各个学科中有着广泛用途,当数据表示为向量\overrightarrow{\mathbf{x} }=\left(x_{1}, x_{2}, \cdots, x_{n}\right)^{T}和\overr
为为为什么
2022/08/05
2.1K0
马氏距离 (马哈拉诺比斯距离) (Mahalanobis distance)
线性判别分析(Linear Discriminant Analysis, LDA) 学习笔记 + matlab实现
线性判别分析 (LDA)是对费舍尔的线性鉴别方法(FLD)的归纳,属于监督学习的方法。LDA使用统计学,模式识别和机器学习方法,试图找到两类物体或事件的特征的一个线性组合,以能够特征化或区分它们。所得的组合可用来作为一个线性分类器,或者,更常见的是,为后续的分类做降维处理。
大鹅
2021/06/16
1.2K0
概率论基础 - 11 - 高斯分布 / 正态分布
本文记录高斯分布。 高斯分布 / 正态分布 正态分布是很多应用中的合理选择。如果某个随机变量取值范围是实数,且对它的概率分布一无所知,通常会假设它服从正态分布。有两个原因支持这一选择: 建模的任务的真实分布通常都确实接近正态分布。 中心极限定理表明,多个独立随机变量的和近似正态分布。 在具有相同方差的所有可能的概率分布中,正态分布的熵最大(即不确定性最大)。 一维正态分布 正态分布的概率密度函数为: p(x)=\frac{1}{\sqrt{2 \pi} \sigma} e{-(x-\mu){2}
为为为什么
2022/08/05
1.6K0
概率论基础 - 11 - 高斯分布 / 正态分布
图像质量评价方法PSNR+SSIM&&评估指标SROCC,PLCC
今天发现ssim的计算里面有高斯模糊,为了快速计算,先对每个小块进行计算,然后计算所有块的平均值。可以参考源代码实现,而且代码实现有近似的在里面!matlab中中图像PSNR和SSIM的计算
全栈程序员站长
2022/09/20
3.8K0
推荐阅读
相关推荐
学习GAN模型量化评价,先从掌握FID开始吧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档