尽管 Inception Score (IS) 提供了一个量化评估,但它主要关注生成图像自身的特性(基于 Inception 分类器的清晰度和多样性),而没有直接将它们的分布与真实数据分布进行比较。这有时可能产生误导,特别是当生成器产生高质量但不具多样性的样本(模式崩溃),并且这些样本在有限的类别上恰好能很好地欺骗 Inception 分类器时。Fréchet Inception 距离 (FID) 通过直接比较从真实图像和生成图像中提取特征的统计数据来弥补这一不足。它提供了一种更科学的方法来衡量高维特征空间中这两种分布之间的距离。FID 的工作原理:比较特征分布FID 的主要思路是使用预训练的深度卷积网络(通常是 Inception v3 模型)生成的嵌入来表示真实图像集和生成图像集。FID 不使用最终的分类输出,而是使用来自中间层(通常是分类头之前的最终平均池化层)的激活。该层能获取丰富的、高层次的视觉特征。以下是具体过程:特征提取: 大量真实图像 ($N_r$) 和大量生成图像 ($N_g$) 经过预训练的 Inception v3 网络。收集每个图像所选中间层的激活。这会得到两组特征向量:一组用于真实图像 ($X_r$),一组用于生成图像 ($X_g$)。每个特征向量都存在于一个高维空间中(例如,典型的 Inception v3 层有 2048 维度)。分布建模: FID 假定真实图像和生成图像的这些高维特征向量可以被多元高斯分布合理地建模。这是一种简化,但在实际应用中效果良好。计算统计量: 为每组特征向量计算平均向量和协方差矩阵:真实图像:均值 $\mu_r$,协方差 $\Sigma_r$生成图像:均值 $\mu_g$,协方差 $\Sigma_g$FID 公式Fréchet 距离是衡量两个多元高斯分布之间距离的一种方式。FID 分数是根据 Inception 特征的均值和协方差矩阵计算得出的,具体如下:$$ FID(X_r, X_g) = ||\mu_r - \mu_g||^2_2 + \text{Tr}(\Sigma_r + \Sigma_g - 2(\Sigma_r \Sigma_g)^{1/2}) $$我们来分析这个公式:$||\mu_r - \mu_g||^2_2$: 这是真实图像 ($\mu_r$) 和生成图像 ($\mu_g$) 平均特征向量之间的平方欧几里得距离(或 L2 范数平方)。它反映了两个集合的平均特征差异程度。距离越小,表示生成的图像在平均意义上与真实图像具有类似的高层次特征。$\text{Tr}(\dots)$: 这一项涉及协方差矩阵 ($\Sigma_r$ 和 $\Sigma_g$) 组合的迹(对角线元素的和)。协方差矩阵反映了不同特征维度之间的分散和相关性。这一项衡量了两种分布协方差结构之间的距离。$(\Sigma_r \Sigma_g)^{1/2}$ 表示协方差矩阵乘积的矩阵平方根。较小的迹值表明,生成图像特征的分散和相关性与真实图像类似。这部分对于体现生成样本相对于真实数据的多样性尤其有意义。分数解读FID 分数是一个非负值,其单位与特征空间中的平方距离有关。值越低越好: 较低的 FID 分数表示生成图像特征的分布与真实图像特征的分布更为接近。这说明生成的样本在质量和多样性上更优,以 Inception 网络的特征表示来看。FID 为零: 理论上,分数为 0 表示两个分布完全相同 ($\mu_r = \mu_g$ 和 $\Sigma_r = \Sigma_g$),但实际中很少能达到。比较应用: FID 主要用于在特定数据集上比较不同的 GAN 模型或同一模型的不同训练检查点。它提供了一种量化方式来衡量生成性能。digraph FID_Concept { rankdir=LR; node [shape=ellipse, style=filled, fillcolor="#e9ecef", fontname="Helvetica"]; edge [fontname="Helvetica"]; subgraph cluster_real { label = "真实图像特征 (Inception 空间)"; style=filled; fillcolor="#d0bfff"; node [fillcolor="#bac8ff"]; Real_Dist [label="P(real)", shape=Mdiamond, fillcolor="#748ffc"]; Real_Mean [label="μ_r", shape=point, width=0.2, height=0.2]; } subgraph cluster_gen { label = "生成图像特征 (Inception 空间)"; style=filled; fillcolor="#fcc2d7"; node [fillcolor="#ffc9c9"]; Gen_Dist [label="P(gen)", shape=Mdiamond, fillcolor="#f06595"]; Gen_Mean [label="μ_g", shape=point, width=0.2, height=0.2]; } Real_Dist -> Gen_Dist [label=" FID 衡量距离\n (均值和协方差)", fontsize=10, color="#495057", style=dashed]; node [shape=none, label="", width=0, height=0]; Real_Dist -> Real_Mean [style=invis, weight=100]; Gen_Dist -> Gen_Mean [style=invis, weight=100]; }该图描述了 FID 如何在 Inception 特征空间中衡量真实和生成图像特征分布(建模为高斯分布)之间的距离。FID 同时考量均值 ($\mu_r, \mu_g$) 和协方差矩阵 ($\Sigma_r, \Sigma_g$) 的差异。与 Inception Score 相比,FID 通常被认为更值得信赖。它对模式崩溃(影响 $\Sigma_g$)和图像伪影(同时影响 $\mu_g$ 和 $\Sigma_g$)都很敏感。它还使得生成分布与目标真实分布的比较更为直接。需要注意的是,FID 的计算依赖于所选的预训练模型 (Inception v3) 和使用的具体特征层。此外,为获得可靠的均值和协方差估计,计算一个稳定的 FID 分数需要从真实和生成集合中获取足够多的样本(通常为 10,000 或更多,常推荐 50,000 个)。