学校要办一场合唱演出,校长想知道新成立的“AI 合唱班”练得怎么样。最笨的办法是让评委凑近每个同学,听有没有走音——就像拿像素逐点比对两张照片,放大 100 倍看哪里颜色不一样,反而看不出整体神韵。于是校长请来几位评委,各有一套打分办法:评委甲站在 AI 班门口,闭着眼睛只听他们自己唱得响不响、花样多不多,这叫 IS(Inception Score);评委乙更务实,他拿来人类合唱班的成绩单和 AI 班的成绩单,对比两班的整体水平像不像,这叫 FID(Fréchet Inception Distance)。后来还来了评委丙、评委丁,分别用更公平的机制和“查漏补缺”的方式补充打分。这篇内容就是带你认识这几位评委:他们各自看重什么、有什么脾气、什么时候会误判,以及怎么用他们才不翻车。

岗位关联

掌握 FID/IS 的正确读法与使用规范,是合成数据与生成模型从业者的基本功:能避免在论文对比、模型选型和数据质量监控中得出错误结论,让评估结果可复现、可对外沟通。

目录
  1. 可视化演示
  2. 评估指标定位
  3. IS计算原理
  4. FID计算原理
  5. 两指标对比
  6. KID无偏估计
  7. Precision/Recall
  8. 使用规范陷阱
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示合成数据如何用于语义分割任务训练,揭示合成图像与掩码生成流程及性能提升效果。

本节配有交互动效(进入视口后自动加载,约 3KB)。

合成数据分割 合成图像:通过GAN/扩散模型生成训练图像 分割掩码:像素级标注自动生成 性能提升:合成数据增强分割精度 IoU = |A∩B| / |A∪B| 合成数据驱动分割任务性能提升

评估指标定位

校长最想知道的是:AI 合唱班整体唱得像不像人类班,而不是某位同学单音准不准。评估合成图像也一样——我们关心的不是“这张图看着清不清晰”,而是“这一整批 AI 生成的图,在统计面貌上和真实照片差多少”。如果只用像素级差异做比对,就像让评委趴在照片上数噪点:两幅构图、光线、内容完全不同的图,像素值天然南辕北辙,根本说明不了问题。

真正的生成任务里,真实图像并不是孤立的样本,而是服从一个看不见的“数据分布”——可以理解为人类班的整体演唱风格分布。生成器的目标就是拟合这个分布。所以所有靠谱的评估指标,本质上都在做一件事:测量两个分布之间的距离。距离越小,说明 AI 班与人类班的整体水平越接近。

怎样测量两个分布的差距?一个经典的数学工具是 KL 散度,它像一个“逐段核对”的尺子:在特征空间每个位置上看看真实分布的浓度比生成分布浓多少、淡多少,再加权汇总成一个数值。

真实图像在特征空间中的分布密度函数,相当于人类班同学在各科分数上的“人员密度”。

AI 生成图像的分布密度函数,即 AI 班同学的分数密度。

在同一个位置 x 上,两班人数浓度的比值取对数。浓度差越大,这一项越偏离 0,惩罚越大。

把每个位置的差异按真实分布的权重全部累加起来,得到一个总的“分布差距”数字。

KL 散度给了我们“分布距离”的直觉,但它不对称、也难在图像上直接算。于是后续的 IS 和 FID 都沿用了这个思路,只是换成了更实用的统计量。它就像给几位评委定下的总章程:别只看个别同学,要比就比整个班的整体面貌。

DKL(Pr ∥ Pg)=∫pr(x)log⁡pr(x)pg(x) dxD_{KL}(P_r \,\|\, P_g) = \int p_r(x) \log \frac{p_r(x)}{p_g(x)}\,dx
这个公式衡量“真实分布相对于生成分布的信息损失”。它不是对称的:把 P_r 和 P_g 对调,结果会不一样,所以它更像“从真实班视角看 AI 班差多少”。
  1. 真实分布$p_r(x)$
  2. 生成分布$p_g(x)$
  3. 对数比值$\log \dfrac{p_r(x)}{p_g(x)}$
  4. 期望积分$\int p_r(x)\, dx$

IS计算原理

评委甲是个急性子,他懒得看人类班,直接站在 AI 班门口闭眼听。他给分只看两条:第一,每个同学唱得响亮不响亮——对应到图像上,就是这张图喂给 Inception v3 分类器后,是否被斩钉截铁地识别成某个类别(比如“这是一只狗”的概率高达 0.95);第二,全班唱的歌够不够五花八门——对应到整体上,就是所有生成图像的类别分布是否百花齐放,而不是清一色只会唱同一首歌。这两条合起来,就是 IS 的思想:单张要自信,整体要多样。

这里的关键是把“响亮”和“多样”翻译成数学语言。“响亮”就是单张图像的类别概率分布 $p(y|x)$ 非常尖锐;“多样”就是所有图像平均出来的边缘分布 $p(y)$ 比较平坦。两者之间的距离越大,IS 越高。这个距离用一个叫 KL 散度的工具来度量,最后取指数把数值拉回易读的尺度。

把一张生成图 x 输入 Inception v3,输出的是它属于各类别的概率,即“这张图唱的是什么歌、底气足不足”。

把 N 张生成图的类别概率取平均,得到全班唱的歌的风格账单,越均匀说明越多样。

对比“单张图的判断”和“全班的平均风格”之间的差异:既包含单张的置信度,也包含这张图与整体风格的差异程度。

对所有生成图求平均,再取指数映射回正数区间,方便直观比较。

IS 的优点是不需要真实数据、算得快;缺点是“闭门自评”看不出 AI 班是不是在自创跑调歌曲。这就像评委甲只听了 AI 班内部就大声叫好,却不知道他们根本没在和人类班同一本曲库上比较。

IS(G)=exp⁡(Ex∼pg[KL(p(y∣x) ∥ p(y))])IS(G) = \exp\Big(\mathbb{E}_{x \sim p_g} \big[ KL\big(p(y \mid x) \,\|\, p(y)\big) \big]\Big)
IS 越高越好:它要求每张生成图都有明确语义,同时整批图覆盖的类别足够丰富。注意这个公式里从头到尾没有出现真实图像,IS 是“闭门自评”。
  1. 单图类别分布$p(y \mid x)$
  2. 整体边缘分布$p(y) = \dfrac{1}{N}\sum_{i=1}^{N} p(y \mid x_i)$
  3. KL 散度$KL\big(p(y \mid x) \,\|\, p(y)\big) = \sum_{y} p(y \mid x) \log \dfrac{p(y \mid x)}{p(y)}$
  4. 期望与指数$\exp\Big(\mathbb{E}_{x \sim p_g}\big[\cdot\big]\Big)$

FID计算原理

评委乙不苟言笑,他拿来两份成绩单:真实照片的特征成绩单和生成图像的特征成绩单。每张图经过 Inception v3 的特定隐层,被压缩成几百维的特征向量——相当于把一个人的演唱风格拆成“音准、节奏、气息、音色”等各项分数。整批图的特征向量聚在一起,就构成了一个特征集合。FID 的做法是:假设每个集合都近似地像一颗“椭圆”(统计学上叫多元高斯分布),然后用椭圆的位置和形状来衡量两颗椭圆有多不像。

具体地,每颗椭圆由两个量决定:均值向量 μ(椭圆中心,即全班平均风格)和协方差矩阵 Σ(椭圆的胖瘦与倾斜,即班内个体风格的波动方式)。FID 把两班之间的“中心距离”和“形状差异”合成一个数字。

把 N 张图经 Inception 提取的特征向量 $\phi(x_i)$ 求平均,得到“全班平均演唱风格”。

刻画特征围绕均值波动的方向与幅度,即班内风格的“胖瘦形状”。

两班平均风格的欧氏距离,中心离得越远,这一项越大。

两班“形状差异”的度量,其中矩阵平方根负责把两个波动形状拉到同一把尺子上比较。

把矩阵对角线元素相加,把矩阵层面的差异压成一个标量分数。

FID 很像“两班成绩分布相似度排行榜”:AI 班和人类班的平均分越接近、分数内部波动形状越接近,排名就越靠前。但它也有脾气——如果两班特征并非真正的高斯分布,这颗“椭圆”就是近似,距离读数也就打了折扣。

FID=∥μr−μg∥22+Tr(Σr+Σg−2(ΣrΣg)12)FID = \|\mu_r - \mu_g\|_2^2 + \mathrm{Tr}\Big(\Sigma_r + \Sigma_g - 2 \big(\Sigma_r \Sigma_g\big)^{\frac{1}{2}}\Big)
FID 越小越好,0 意味两班的特征高斯分布完全重合。它不像 IS 那样自说自话,而是拉上真实分布一起对照,因此是目前合成图像评估的事实标准。
  1. 特征均值$\mu = \dfrac{1}{N}\sum_i \phi(x_i)$
  2. 特征协方差$\Sigma = \dfrac{1}{N}\sum_i (\phi(x_i) - \mu)(\phi(x_i) - \mu)^T$
  3. 均值差平方范数$\|\mu_r - \mu_g\|^2$
  4. 协方差融合项$\Sigma_r + \Sigma_g - 2(\Sigma_r \Sigma_g)^{1/2}$
  5. 迹运算$\mathrm{Tr}(\cdot)$

两指标对比

两个评委经常吵架:评委甲说 AI 班闭门唱得又响又多样,素质很高;评委乙说跟人类班一比还差得远。其实他们测的根本不是一回事。甲关心“班内表现”,乙关心“与真班的差距”。你可以想象一个 AI 班学会了一首人类班根本不存在的“自创神曲”,全班唱得震天响,IS 给了高分;可评委乙一看成绩单,发现这歌压根不在人类班曲库里,FID 照样很差。

从数学上讲,IS 高并不能推出 FID 低,两者是非蕴含关系:

生成图像的类别置信度与类别多样性提升,代表“班内表现”变好。

“不能推导出”——逻辑上 IS 的改善不携带关于真实分布对齐程度的任何信息。

生成分布与真实分布的统计距离缩小。它的变化只取决于和真实分布的关系。

既然两者不可互相替代,实践中就要配合使用:需要快速监控生成器有没有“唱新歌”(模式塌缩检测)时看 IS;需要判断合成数据能不能以假乱真时看 FID。此外要记住,FID 对样本量敏感,样本少时读数会偏低甚至抖动,而 IS 也随类别数和分类器能力而变。最稳妥的做法是像学术论文那样同时报告两者,并固定统一的样本量与预处理流程。

IS↑⇏FID↓IS \uparrow \nRightarrow FID \downarrow
这个式子提醒我们:两个指标各说各话,IS 变好不代表生成分布就更接近真实分布。评估时必须用对场景、成对汇报。
  1. IS 上升$IS \uparrow$
  2. 非蕴含符号$\nRightarrow$
  3. FID 下降$FID \downarrow$

KID无偏估计

评委乙还有一个毛病:如果考场人数太少,他打的分数会有系统性偏差。FID 的估计在小样本时并非无偏——真实图和生成图各只有几百张时,距离读数往往被低估。评委丙看不下去了,他发明了一种更公平的机制:两两互评。把两个班的所有同学两两配对,逐一比较“举手投足”的相似度,再汇总成总分。这就是 KID(Kernel Inception Distance)。

KID 用核函数来给“相似度”打分,最常用的是三次多项式核。它分别计算:真实班内部两人相似度的平均、真实班与 AI 班交叉配对相似度的平均、AI 班内部相似度的平均,最后把这三项拼成一个距离。

一个“相似度打分器”:把两个特征向量映射到更高维空间后计算内积,向量越像分数越高。

真实班内部随机抽两人互评的平均分,代表真实数据的“自相似基线”。

真实班与 AI 班各抽一人互评的平均分,两班越不像,这一项扣得越多。

AI 班内部互评的平均分,防止 AI 班内部过于单一而显得“太像”。

理解 KID 的诀窍是看“三项抵消”:如果 AI 班和真实班毫无差别,真实内部、交叉、生成内部三项相等,KID 趋近 0;如果 AI 班自成一派,交叉项偏小,KID 就会明显大于 0。因为无偏,评委丙在小考场(小样本)上的打分仍然可靠,这点让他在数据量宝贵的场景里特别受欢迎。

KID=E[k(xr,xr′)]−2 E[k(xr,xg)]+E[k(xg,xg′)]KID = \mathbb{E}[k(x_r, x_r')] - 2\,\mathbb{E}[k(x_r, x_g)] + \mathbb{E}[k(x_g, x_g')]
KID 的期望值恰好等于真实分布距离的平方,因此估计量无偏;样本量小的时候它比 FID 更稳,是 FID 的“公平版”替代品。
  1. 核函数$k(x, y) = \big(\tfrac{x^T y}{d} + 1\big)^3$
  2. 真实内部项$\mathbb{E}_{x_r, x_r'}[k(x_r, x_r')]$
  3. 交叉项$-2\,\mathbb{E}_{x_r, x_g}[k(x_r, x_g)]$
  4. 生成内部项$\mathbb{E}_{x_g, x_g'}[k(x_g, x_g')]$

Precision/Recall

总分相同不意味着没有偏科。两个班的平均分完全一样,但 AI 班可能只擅长唱抒情歌,人类班的摇滚经典一首都没翻唱。FID 和 KID 都像“总分对比”,会把这种偏科藏在一个数字里。于是评委丁上场,他带来两把尺子:Precision(精确率) 和 Recall(召回率)。

Precision 回答的问题是:AI 班唱的歌,有多少落在人类班的曲库范围内?如果 AI 班自创了大量“跑调新歌”(生成分布拓展到了真实流形之外的区域),Precision 就会下降。Recall 回答的问题是:人类班的经典曲目,AI 班翻唱了多少?如果 AI 班只会唱其中一小部分,漏掉了大片真实流形,Recall 就会下降。前者查“有没有胡编”,后者查“有没有漏唱”。

AI 班同学演唱风格的特征点集合,即生成图像的 Inception 特征集合。

以真实特征点为中心的“可接受翻唱范围”,即真实流形周边的邻域球。落入其中才算“没跑调”。

AI 班的特征点落在真实流形邻域内的比例。比例越低,自创跑调越多。

真实班的特征点能被 AI 班邻域覆盖的比例。比例越低,漏唱的经典曲目越多。

PR 这对指标最擅长诊断“病根”:模式塌缩会让 Recall 掉得厉害——AI 班把真实班的曲库漏掉了一大半;而“记忆训练集”式的过拟合会让 Precision 虚高——AI 班只会原样复述唱过的歌,从不敢即兴发挥。把 PR 和 FID 一起看,就能区分“总分离但偏科”的各种具体情况。

Precision=∣Sg∩R(Sr)∣∣Sg∣,Recall=∣Sr∩R(Sg)∣∣Sr∣\mathrm{Precision} = \frac{|S_g \cap R(S_r)|}{|S_g|}, \qquad \mathrm{Recall} = \frac{|S_r \cap R(S_g)|}{|S_r|}
Precision 高说明生成样本都在真实流形附近,Recall 高说明真实流形几乎被生成样本全覆盖。两者要一起看,才能发现“偏科”问题。
  1. 生成样本集$S_g = \{x_g\}$
  2. 真实流形邻域$R(S_r)$
  3. Precision 分数$\dfrac{|S_g \cap R(S_r)|}{|S_g|}$
  4. Recall 分数$\dfrac{|S_r \cap R(S_g)|}{|S_r|}$

使用规范陷阱

评委们方法都很好,但校长发现,如果考试流程乱套,再公正的评委也会给出误导性分数。合成图像评估最大的坑不在数学,而在使用规范。首先就是样本量:让十几个人就代表全班整体水平,任何评委都会看走眼。经验法则是 FID 至少用上万张真实图、数千张生成图。

计算 FID 时真实图像建议至少 1 万张,否则协方差矩阵的估计误差会明显扭曲距离。

计算 IS 时生成图像建议至少 5 千张,否则整体类别分布太稀疏,多样性测不实。

除了样本量,还有三个高频雷区。第一是数据泄漏:如果拿训练集里的真实图当 FID 参考分布,生成器可能“背过”这些图,距离虚低,评估失去意义。第二是感知对齐:指标算的是统计距离,不代表人眼观感,一张整体色调偏绿但结构严谨的图可能 FID 很低,看起来却很怪,必须配合人类审核。第三是复现一致性:不同开源实现的特征层截取、图像缩放、Inception 版本都可能不同,数值不能直接跨实现比较。合唱比赛要想公平,就得把章程写清楚:多少考生、什么曲库、哪个评委版本,全部公开可复现。

mFID≥104,mIS≥5×103m_{FID} \ge 10^4, \qquad m_{IS} \ge 5 \times 10^3
这是 FID/IS 实践中公认的经验样本量门槛。样本太少时,FID 的协方差估计偏差大,IS 的类别边缘分布也测不准,横向比较会得出假结论。
  1. FID 参考样本数$m_{FID} \ge 10^4$
  2. IS 生成样本数$m_{IS} \ge 5 \times 10^3$

AI 应用场景

文生图模型选型评估

阶段:模型评估与选型

解决的问题:候选生成模型动辄好几个,各有各的样例图,肉眼很难判断哪个整体水平最高。传统做法是人工看几百张图打分,主观且费时,还可能被少数惊艳样本带偏。用 FID 把每个候选模型的生成结果与同一份真实图库做分布对比,几分钟就能得到可排序的客观分数。

具体案例:某团队要在三个扩散模型之间做取舍。他们用同一个真实图像集计算 FID,模型 A 的 FID 为 6.2、模型 B 为 9.8、模型 C 为 7.1,于是优先考虑 A;再配合 Precision/Recall 发现 A 的 Recall 偏低,说明有漏覆盖,最终选择继续微调 A 而不是直接上线。

合成数据增强质量监控

阶段:数据质量监控

解决的问题:自动驾驶等场景常用合成数据做增强,但如果合成分布与真实分布偏离过大,下游模型反而会被带偏。传统监控只看分辨率、亮度等表层指标,抓不住“整体风格漂移”。周期性计算合成集与真实集的 FID,能像体检一样持续追踪分布漂移。

具体案例:某数据团队每周从合成流水线抽样 1 万张图像,与真实路采数据计算 FID,并记录在监控看板上。某次版本升级后 FID 从 12 跳到 23,排查发现是渲染引擎改了光照模型,立即回滚,避免了下游感知模型的精度下滑。

训练早停与收敛判断

阶段:训练过程监控

解决的问题:生成对抗训练很难单靠损失函数判断收敛,因为生成器和判别器的损失互相博弈、忽高忽低。传统做法是每隔若干轮人工看图,效率低且滞后。在训练中定期计算 IS 和 FID,可以自动化地发现“模式塌缩”和“过拟合记忆”的苗头。

具体案例:某团队训练动漫头像生成器,每隔 2000 步计算一次 IS。训练早期 IS 稳步上升,在第 5 万步时突然掉头向下,结合 FID 一起看确认发生了模式塌缩,于是回退到较早的检查点并调低学习率,最终稳定收敛。

Python 演示

python46 行
import numpy as np  def inception_score(class_probs):    """class_probs: (N, C) 每行是一张图的类别概率分布"""    p_y = class_probs.mean(axis=0, keepdims=True)    kls = (class_probs * (np.log(class_probs + 1e-12) - np.log(p_y + 1e-12))).sum(axis=1)    return float(np.exp(kls.mean()))  def frechet_distance(mu1, sigma1, mu2, sigma2):    from scipy.linalg import sqrtm    diff = np.asarray(mu1) - np.asarray(mu2)    cov_mean = sqrtm(np.asarray(sigma1) @ np.asarray(sigma2))    if np.iscomplexobj(cov_mean):        cov_mean = cov_mean.real    return float(diff @ diff + np.trace(sigma1 + sigma2 - 2 * cov_mean))  def main():    rng = np.random.default_rng(42)    # 模拟 A:高置信且类别多样    probs_good = np.zeros((1000, 10))    labels = rng.integers(0, 10, size=1000)    probs_good[np.arange(1000), labels] = 0.95    probs_good += rng.uniform(0, 0.005, size=probs_good.shape)    probs_good /= probs_good.sum(axis=1, keepdims=True)    # 模拟 B:每张图都含糊不清    probs_bad = np.full((1000, 10), 0.1)    print("高置信高多样 IS =", round(inception_score(probs_good), 2))    print("低置信均匀 IS =", round(inception_score(probs_bad), 2))     mu_real = np.array([0.5, 0.6])    sigma_real = np.diag([0.5, 0.8])    # 模式塌缩:均值一样但几乎无波动    mu_mc = np.array([0.5, 0.6])    sigma_mc = np.diag([0.02, 0.02])    # 分布偏移:中心大幅偏离    mu_far = np.array([-3.0, 2.0])    sigma_far = sigma_real    print("模式塌缩 FID =", round(frechet_distance(mu_real, sigma_real, mu_mc, sigma_mc), 2))    print("分布偏移 FID =", round(frechet_distance(mu_real, sigma_real, mu_far, sigma_far), 2))  if __name__ == "__main__":    main()
目的:用纯 Python 实现的简化版 IS 与 FID,帮助理解“置信度×多样性”和“均值+协方差距离”两个指标的内部机理。
  1. p_y = class_probs.mean(axis=0, keepdims=True)求所有图像的类别平均分布,即“全班风格账单”。
  2. (class_probs * (np.log(class_probs + 1e-12) - np.log(p_y + 1e-12))).sum(axis=1)逐张图计算 KL 散度,再累加得到该图的“自信且独特”程度。
  3. cov_mean = sqrtm(np.asarray(sigma1) @ np.asarray(sigma2))计算 FID 公式中的矩阵平方根项,连接两个协方差形状。
  4. return float(diff @ diff + np.trace(sigma1 + sigma2 - 2 * cov_mean))把中心距离和形状差异合并为最终 FID 标量。
  5. probs_good[np.arange(1000), labels] = 0.95把每张图的主类别概率设到 0.95,模拟“唱得响亮”。
  6. sigma_mc = np.diag([0.02, 0.02])用极小的协方差模拟模式塌缩:所有生成特征挤成一团,FID 立刻拉高。

常见误区

误区我总觉得 FID 是“清晰度指标”,FID 低就代表生成的图片高清、锐利,FID 高就是图片糊了。

正解FID 度量的是整个生成特征分布与真实特征分布的统计距离,和单张图的清晰度没有直接关系。模糊确实会造成分布偏移,但风格不同、配色偏离、内容错误同样会推高 FID。就像两班平均分差距大,可能因为 AI 班跑调,也可能因为 AI 班整体音色偏闷,不能都归结为“唱得散”。

为何常见:人们习惯把“好的图像”等同于“清晰的图像”,但分布类指标回答的是“像不像真图”而非“清不清晰”。

误区IS 达到 9.0 以上,说明我的生成器已经能和真实照片媲美了。

正解IS 全程没有使用真实数据,它只奖励“单张类别置信高 + 整体类别多样”。如果生成器的内容与真实场景语义严重不符——比如把汽车画成猫狗混杂体——只要 Inception 能自信分类、类别又多样,IS 照样高。它像一个只听 AI 班自己唱歌就叫好的评委,从不对照人类班。

为何常见:因为 IS 数值直观且论文里常见,初学者容易忽略它公式里根本没有任何真实分布参与。

误区真实图库里恰好有训练集图片,拿来当参考分布应该更准确,毕竟它们也是真实照片。

正解生成器可能已经“背下”了训练图片。当参考分布里混入生成器记忆过的图像时,两班“成绩单”本质上有交集,FID 会被严重低估,显得模型表现远好于实际。这就像考前把答案泄漏给 AI 班,再让评委对比两班成绩,自然“皆大欢喜”但毫无意义。

为何常见:人们常直觉认为“更多真实数据 = 更准”,却忽略了训练集与生成器之间存在数据泄漏通道。

误区我只有 500 张真实图,但两个模型的 FID 都是在这 500 张上算的,数值小的那个肯定更好。

正解FID 的协方差估计在小样本下偏差很大,且这种偏差对不同模型不是均匀的。样本量小时,排名可能颠倒,噪声甚至大于模型间差异。评委在人数不足的考场上打分不稳,只有把考场人数补足(真实图建议上万),排名才有意义。

为何常见:FID 公式让人误以为是“精确计算”,忽略了协方差矩阵需要大量样本才能估计得稳。

误区论文里写了 FID 是 6.5,我们用更高版本的实现算出来 7.8,性能应该就差这么多。

正解FID 对 Inception v3 的特征层选择、图像预处理(缩放方式、像素范围)、样本数量、随机种子都很敏感。不同实现之间的绝对值差异可能与模型真实差距同量级。正确做法是固定实现与超参数,在同一个协议下横向比较,并在报告时注明版本。

为何常见:FID 看起来是一个“标准指标”,但它的工程细节多到足以让同样一对分布算出明显不同的数值。

面试题

Q1. IS(Inception Score)主要衡量生成图像的哪两个特性?

单选题 · easy

  • A.图像的清晰度和丰富度
  • B.类别置信度与类别多样性← 正确答案
  • C.图像像素大小与分辨率
  • D.局部纹理与全局亮度

答案:B。IS 的核心是“单张图被分类器自信识别 + 整批图类别分布多样”。它不看清晰度或像素属性,而是看语义层面的置信度与多样性,就像评委只听 AI 班唱得响不响、花样多不多。

Q2. 关于 FID 数值的含义,下列说法正确的是?

单选题 · easy

  • A.指标数值越大代表越好
  • B.数值越趋近于 1 越好
  • C.越小说明特征分布越接近← 正确答案
  • D.与图像尺寸成正相关

答案:C。FID 是真实与生成两组特征分布之间的距离,距离越小说明越接近、生成质量越高。它不是概率或分制分数,没有“越接近 1 越好”的说法,也与图像文件大小无关。

Q3. FID 通常使用哪个预训练网络提取图像特征?

单选题 · easy

  • A.LeNet 轻量分类网络
  • B.Inception v3 预训练网络← 正确答案
  • C.VGG16 视觉几何网络
  • D.ViT 视觉 Transformer 网络

答案:B。FID 的名字 Fréchet Inception Distance 就源自 Inception v3:用它在 ImageNet 上预训练的中间层特征作为图像语义表示。换网络会改变特征空间,算出的距离也随之变化。

Q4. 关于 IS,下列说法正确的是?

单选题 · mid

  • A.计算时需提供真实图像作为参考
  • B.IS 等于 1 表示与真实分布一致
  • C.IS 高不代表接近真实分布水平← 正确答案
  • D.IS 只能衡量单张图像的清晰程度

答案:C。IS 公式中没有任何真实数据参与,它只看生成图自身的置信度和多样性。即使生成分布和真实分布完全不同,只要内部“自信又多样”,IS 就可以很高,所以它不能代表与真实分布的对齐程度。

Q5. 当生成器发生模式塌缩(只输出少数几种图像)时,IS 通常会:

单选题 · mid

  • A.指标读数必然会显著变大
  • B.指标读数会趋近于 FID 值
  • C.指标读数通常会明显变小← 正确答案
  • D.此时指标无法正常计算

答案:C。模式塌缩意味着整体类别多样性大幅下降,$p(y)$ 集中在少数类上,每张图的 $p(y|x)$ 与 $p(y)$ 差异变小,KL 散度趋于 0,IS 趋近最小值 1。所以 IS 对塌缩的“多样性缺失”是敏感的。

Q6. KID 相比 FID 的核心优势是?

单选题 · mid

  • A.它的计算开销比 FID 更低
  • B.它的估计是无偏的且更稳← 正确答案
  • C.它不需要任何预训练网络
  • D.它的输出范围固定为 0 到 1

答案:B。KID 用样本中心矩展开的技巧构造了一个无偏估计量,期望值等于真实平方距离,因此小样本下比 FID 更稳。它同样依赖 Inception 特征,输出也没有固定上下界。

Q7. 关于样本量对 FID 估计的影响,正确的是?

单选题 · hard

  • A.样本量增大会导致 FID 偏高
  • B.样本量增大会减小估计偏置← 正确答案
  • C.样本量对 FID 完全无影响
  • D.样本量只影响 IS 不影响 FID

答案:B。FID 需要估计高维协方差矩阵,小样本下协方差估计不稳定且存在偏置,样本越多估计越接近真实距离。实践中真实图达到万张量级时读数才比较可信,不同样本量之间的 FID 不适合直接对比。

Q8. FID 相比 IS 的哪些优势表述是正确的?

多选题 · mid

  • A.它比较生成与真实总体差异← 正确答案
  • B.它对模式塌缩的情况更敏感← 正确答案
  • C.它不需要任何预训练模型
  • D.它可直接等价于人眼主观评分

答案:AB。FID 对比生成与真实两个分布,因此能捕捉“与真实世界不一致”的问题,对塌缩更敏感;但它仍需 Inception 提特征,且不等于人眼感知。IS 因为缺了真实参考,对这类问题天然迟钝。

Q9. 以下哪些情况会导致 FID 结果不可信或不可比较?

多选题 · hard

  • A.参考图取自生成器见过的数据集← 正确答案
  • B.两次实验使用了不同的特征提取实现← 正确答案
  • C.统一图像预处理并缩放到相同分辨率
  • D.只用几百张图去估算整体 FID← 正确答案

答案:ABD。A 属于数据泄漏,会虚低;B 改变了特征空间,数值不可比;D 样本量不足,估计偏差大。C 恰恰是正确的规范化做法,应保持各实验一致。

Q10. 关于 FID 公式的数学性质,正确的说法是?

多选题 · extreme

  • A.FID 为零表示两分布均值协方差都相等← 正确答案
  • B.FID 默认假设特征服从多元高斯分布← 正确答案
  • C.FID 能捕捉特征分布的全部高阶信息
  • D.矩阵平方根项与协方差可交换性有关← 正确答案

答案:ABD。FID 在高斯假设下成立,均值和协方差完全相同时距离为 0。矩阵平方根 $(\Sigma_r \Sigma_g)^{1/2}$ 的计算与两矩阵能否交换有关,实现中常用数值方法求取。它只用到二阶统计量,无法刻画偏度、峰度等高阶信息,所以 C 错误。