虽然通用统计指标为评估提供了基础,但评估合成图像的质量需要专门的技术。人类的视觉感知对不易察觉的细节、纹理和结构一致性非常敏感,而这些方面是全局统计测量可能忽略的。此外,图像生成模型,例如生成对抗网络(GANs)或扩散模型,常有其特有的失效模式,例如模式崩溃(多样性不足)或不真实的伪影。专门为评估生成图像的感知质量、逼真度和多样性而开发的指标得到讨论。Fréchet Inception Distance (FID)Fréchet Inception Distance (FID) 是评估合成图像质量最常使用的指标之一,尤其适用于GAN生成的图像。它的目的在于测量合成图像分布与真实图像分布在从预训练图像分类网络中提取的特征空间中的相似性。基本理念: 主要思想是,如果合成图像逼真且多样,它们的高级特征(由Inception v3这类强大的图像分类器感知)应与从真实图像中提取的特征分布高度匹配。FID 衡量这两个特征分布之间的距离。工作原理:特征提取: 使用预训练的Inception v3网络(通常在ImageNet上训练)。将一组真实图像($X$)和一组合成图像($G$)都通过该网络,并提取某个特定层(通常是分类前的最终平均池化层)的激活。这些激活充当每张图像的特征向量。分布建模: 真实图像和合成图像的特征向量集合均被建模为多元高斯分布。计算每组特征的均值($\mu_x, \mu_g$)和协方差矩阵($\Sigma_x, \Sigma_g$)。Fréchet距离计算: FID分数是这两个高斯分布($N(\mu_x, \Sigma_x)$和$N(\mu_g, \Sigma_g)$)之间的Fréchet距离(也称为Wasserstein-2距离)。两个多元高斯分布之间的Fréchet距离公式为: $$ FID(x, g) = ||\mu_x - \mu_g||^2_2 + \text{Tr}(\Sigma_x + \Sigma_g - 2(\Sigma_x \Sigma_g)^{1/2}) $$ 其中:$||\mu_x - \mu_g||^2_2$ 是均值向量之间的平方欧几里得距离。$\text{Tr}$ 表示矩阵的迹(对角线元素的和)。$(\Sigma_x \Sigma_g)^{1/2}$ 是协方差矩阵乘积的矩阵平方根。解释:FID分数越低越好,表明合成图像特征的分布越接近真实图像特征的分布。分数为0则表示分布完全相同。FID同时衡量逼真度(图像是否真实?)和多样性(生成器是否生成与真实数据集相似的不同输出?)。逼真度差或模式崩溃(低多样性)通常会增加分布之间的距离,从而导致FID更高。注意事项:样本量: FID需要足够数量的真实和合成图像(通常是数千张),才能准确估计均值和协方差。建议通常是10,000张或更多,用于基准比较时最好有至少50,000张。预训练模型: 该分数取决于Inception v3模型提取的特定特征。虽然这是标准做法,但这表示FID衡量的是与ImageNet分类相关的特征的相似性。实现: 图像预处理或矩阵平方根的具体实现方式的微小差异可能导致分数略有不同。建议使用标准化的实现方式。Inception Score (IS)Inception Score (IS) 是一个较早的流行指标,主要用于GAN。与FID不同,它在评分阶段不直接与真实数据集进行比较来评估生成图像(尽管Inception模型本身是在真实数据上训练的)。基本理念: IS旨在反映生成图像的两个理想特性:质量/逼真度: 图像应包含清晰可辨的物体。当输入到Inception分类器时,条件概率分布$p(y|x)$(给定图像$x$时标签$y$的概率)应具有低熵——这意味着分类器对其图像中的物体非常有信心。多样性: 生成器应生成涵盖不同类别的多样图像。边际概率分布$p(y) = \int p(y|x)p_g(x) dx$(所有生成图像$x \sim p_g$的标签的总体分布)应具有高熵——这意味着图像均匀地覆盖了许多不同类别。工作原理:分类: 将一组生成的图像通过预训练的Inception v3网络,以获得每张图像$x$的类别概率向量$p(y|x)$。边际分布: 通过对所有生成样本的概率向量$p(y|x)$求平均值来估计边际分布$p(y)$。KL散度: 对于每张图像$x$,计算其条件分布$p(y|x)$与边际分布$p(y)$之间的Kullback-Leibler(KL)散度:$D_{KL}(p(y|x) || p(y))$。这衡量了$p(y|x)$与平均分布$p(y)$的差异程度。如果图像被清晰分类($p(y|x)$低熵)并且整体集合具有多样性($p(y)$高熵),则KL散度将很大。平均和指数化: 最终分数是通过对所有生成图像的KL散度求平均值,然后对结果进行指数化得到的。公式为: $$ IS(G) = \exp(\mathbb{E}{x \sim p_g} [D{KL}(p(y|x) || p(y))]) $$解释:IS分数越高越好。 分数越高表示生成的图像单个来看是独特的(根据Inception,物体清晰锐利),整体来看是多样化的(涵盖多个类别)。注意事项:不与真实数据比较: IS不直接将生成分布与真实数据分布进行比较。生成器可以通过为1000个ImageNet类别中的每个类别完美生成一张图像来获得高IS,即使这些图像与目标真实数据集完全不相似。敏感性: IS对所使用的具体Inception模型很敏感。已知局限: 研究表明,IS不能有效地惩罚类内模式崩溃(例如,在“狗”类别中只生成一种类型的狗),并且可能被对抗样本或简单生成器所规避。被FID取代: 尽管具有历史意义,但FID今天通常更受青睐,因为它提供了与真实数据分布更好的比较。分布的精确率和召回率受分类中精确率和召回率指标的启发,Sajjadi 等人(2018)将这些指标应用于评估生成模型,并由Kynkääniemi 等人(2019)进一步完善。它们通过评估真实和合成分布在特征空间中的支撑,提供了关于逼真度和多样性的更全面的视角。基本理念:精确率: 衡量落在真实数据流形(分布区域)内的生成图像的比例。高精确率表示大多数生成的图像是逼真的(高逼真度)。召回率: 衡量被生成图像覆盖的真实数据流形的比例。高召回率表示生成器捕获了真实数据中存在的多种变化(高多样性)。工作原理(简化版):特征提取: 类似于FID,使用预训练网络(例如,VGG-16或Inception)从真实($X$)和合成($G$)图像中提取特征。令这些特征集为$\phi_x$和$\phi_g$。流形估计: 困难在于根据真实特征$\phi_x$的有限样本来估计真实数据分布的“支撑”或流形。类似地,生成分布的支撑从$\phi_g$中估计。这通常通过最近邻计算来完成。计算精确率: 对于每个合成特征$\phi \in \phi_g$,确定它是否位于真实数据的估计流形“内部”。精确率是符合此条件的合成特征的比例。一种常见的方法是检查$\phi$在组合特征空间$(\phi_x \cup \phi_g)$中的k-最近邻是否属于真实集合$\phi_x$。计算召回率: 对于每个真实特征$\phi' \in \phi_x$,确定它是否被合成数据的估计流形“覆盖”。召回率是符合此条件的真实特征的比例。同样,这可以通过检查$\phi'$在组合特征空间中的k-最近邻是否属于合成集合$\phi_g$来完成。解释:高精确率: 表示良好的逼真度。在选定的特征空间中,生成的图像与真实图像基本无法区分。低精确率表明生成器产生了不真实的伪影或超出分布范围的样本。高召回率: 表示良好的多样性。生成器涵盖了真实数据集中存在的大部分变化。低召回率表明模式崩溃,即生成器只生成真实数据分布的有限子集。可视化: 设想这些分布是特征空间中的区域。精确率询问“合成区域有多少与真实区域重叠?”召回率询问“真实区域有多少被合成区域覆盖?”digraph G { rankdir=LR; node [shape=ellipse, style=dashed, color="#adb5bd", fontname="helvetica"]; edge [arrowhead=none, color="#adb5bd"]; subgraph cluster_real { label = "真实数据流形"; bgcolor="#e9ecef"; node [shape=point, color="#1c7ed6"]; r1; r2; r3; r4; r5; r6; r7; r8; r9; r10; r11; r12; r13; r14; r15; r_extra1 [label="", fixedsize=true, width=0.1, height=0.1]; r_extra2 [label="", fixedsize=true, width=0.1, height=0.1]; r_extra3 [label="", fixedsize=true, width=0.1, height=0.1]; } subgraph cluster_synth { label = "合成数据流形"; bgcolor="#ffec99"; node [shape=point, color="#f59f00"]; s1; s2; s3; s4; s5; s6; s7; s8; s9; s10; s_extra1 [label="", fixedsize=true, width=0.1, height=0.1]; // 超出真实范围 s_extra2 [label="", fixedsize=true, width=0.1, height=0.1]; // 超出真实范围 } // 示例点: // 精确率:大多数黄色点(s1-s10)靠近蓝色点。s_extra1、s_extra2不真实(如果存在许多此类点,则精确率较低)。 // 召回率:许多蓝色点(r1-r15)靠近黄色点,但一些蓝色点(r_extra1-r_extra3)被遗漏了(召回率较低)。 }图表说明了特征空间中精确率和召回率的原理。蓝色点代表真实数据特征,黄色点代表合成数据特征。精确率关联到有多少黄色点落入蓝色区域的影响范围内。召回率关联到蓝色区域有多少被黄色区域的影响范围覆盖。注意事项:特征空间: 特征提取器的选择对结果有很大影响。k-NN参数: 流形估计中使用的邻居数量($k$)影响指标的敏感性。计算成本: 对于大型数据集,计算成对距离或最近邻可能计算成本很高。选择图像评估指标没有一个单一指标能完全涵盖图像质量的所有方面。FID 仍然是一个重要的标准,用于比较生成分布和真实分布之间的总体相似性(结合了逼真度和多样性)。它与人类判断的关联度较高。IS 因其局限性目前不太受青睐,但可能出现在较早的文献或特定情境中。请注意它存在的困难。精确率和召回率 提供了一种有益的分解方式,将逼真度评估与多样性评估分开。这对于诊断生成器问题特别有帮助(例如,即使精确率很高,也能通过低召回率识别模式崩溃)。为了进行全面的评估,通常的最佳实践是报告FID以及使用明确定义的特征空间和方法计算的精确率和召回率。这能更全面地展现合成图像生成质量的情况。接下来的章节将涵盖文本和时间序列等其他数据类型的指标,这些类型面临各自特有的评估难题。