当裁判亲自下场:FD-Loss 如何把 FID 从评测指标变成训练损失

论文链接:
https://arxiv.org/abs/2604.28190
代码地址:
https://github.com/Jiawei-Yang/FD-Loss
一个被忽视了将近十年的问题
如果你关注过图像生成领域,那么你一定听说过 FID(Fréchet Inception Distance)。十年来,几乎每一篇生成模型的论文都在比拼这个数值,FID 越低,生成图片质量越高。换句话说,整个领域都在围着这一个指标"做梯度下降"。
但有一个奇怪的事实:FID 一直只是评测指标,从来不是训练目标。我们用它来给模型"打分",却从不让模型直接朝着它去优化。这有点像:教练看着学生考试分数指点训练,但从来不让学生看真题。
为什么不直接把 FID 作为损失函数呢?传统观点认为这"不可行"。这篇论文的核心贡献,就是证明了,它其实完全可行,而且效果惊人。
为什么 FID 难以直接作为损失?
要理解这个问题,先快速回顾一下 FID 的定义。给定一个特征提取器 (通常是 Inception-v3),把真实图片和生成图片的特征都看作多维高斯分布,分别计算它们的均值 和协方差 ,然后:
这个公式每一项都是可微的,理论上完全可以反向传播。但问题在于估计的稳定性。要可靠地估计一个 2048 维特征的协方差矩阵,至少需要远多于 2048 个样本。实践中通常用 5 万张图片来计算 FID。
如果训练时只用一个 batch(比如 1024 张)来估计,统计量噪声极大,结果就是把模型越练越差。论文中验证了这一点:直接用 batch-wise FD 训练,模型 FID 从 3.31 反而恶化到了 3.84(见 Table 1a 中 queue size = 0 的那一行)。
而如果每个训练步都让 5 万张图片的梯度全部回传,计算量根本承受不了。
这就是十年来 FID 只能当裁判的根本原因:统计估计需要大种群,但梯度计算只能负担小批量。
核心想法:解耦"统计种群"与"梯度批次"
解法非常简洁,就是让这两个尺度解耦。

具体有两种实现方式:
队列估计器(Queue-based):维护一个长度为 N(比如 5 万到 10 万)的特征队列,每个训练步把新生成的 B 张图特征加进队列、丢掉最旧的。FD 在整个队列上计算,但只对当前 batch 的特征求梯度——队列中"旧"的特征被 detach,视作常量。这个思路与对比学习里的 MoCo 队列异曲同工。
EMA 估计器:更省内存的做法,不存特征,而是直接维护特征一阶矩(均值)和二阶矩的指数滑动平均。当前 batch 的统计量与历史 EMA 加权融合,FD 在融合后的统计量上计算,依然只对当前 batch 求梯度。
这两个看起来很简单的修改,让训练中能够使用一个"虚拟的大种群"来稳定估计 FD,同时保持每步的算力开销和普通 batch 训练相当。这就是论文命名为 FD-loss 的核心算法。
三个新发现
后训练效果极佳
作者将 FD-loss 当作后训练(post-training)目标。也就是说,先用常规方式训好一个生成器,再用 FD-loss 微调它。
最神奇的是,整个后训练过程不需要看任何真实图片,只需要预先在真实数据上算好的均值和协方差作为"目标"。

ImageNet 256×256 上 0.72 的 FID,这是论文做出的最低 FID 数字,刷新了已有记录。更关键的是,这一切都是在单步生成(1 NFE)的设定下达成的,意味着推理速度比传统多步扩散模型快几十倍。
把多步生成器"改造"成一步
这是论文最有趣的发现之一。多步扩散模型(比如 SD3、JiT)天然需要几十次去噪迭代才能产出好图。如果你强行让它"只跑一步",它输出的会是垃圾——论文测得 JiT-L 在一步设定下 FID 高达 291.59,几乎是噪声。
但如果直接把这个"残废的"一步模型扔给 FD-loss 微调 50 个 epoch,它就奇迹般地变成了一个出色的一步生成器:FID 降到 0.85,与从头训练的一步模型相当甚至更优。

这意味着什么? 传统的"模型蒸馏"或"一致性模型"都需要老师模型、对抗训练或逐样本目标。而 FD-loss 全都不需要,它就是一个干净的分布匹配目标。
论文用这一个统一配方同时处理了,改进已有一步模型 + 改造多步模型 + 像素空间和潜空间通吃 + 类别条件和文本条件通吃。
FID 自身可能在"骗"我们
更深刻的发现来自一个反直觉的现象。作者在不同特征空间上分别用 FD-loss 训练同一个生成器,然后比较结果。

用 Inception 特征训练:FID 最低(0.81),但视觉质量并非最佳;
用 MAE / SigLIP / DINOv2 等现代视觉模型特征训练:FID 更差(甚至 6 以上),但视觉质量明显更好。

这揭示了一个长期被忽略的真相:FID 依赖的 Inception 特征空间是 2015 年的产物,已经"过时"了。模型可能在 Inception 看来"很真实",但在更现代的视觉模型看来仍然有明显瑕疵。
更夸张的是 Figure 3 揭示的"悖论":

新指标 FDr^k:跨表征的"诚实"评估
为了解决单一特征空间的盲区,作者提出了 FDr^k(Normalized Fréchet Distance Ratio):
直观理解:用真实验证集作为参考,把生成图的 FD 除以它。这样:
验证集自身得分恰好等于 1.0(完美参照);
得 2.0 意味着"在该特征空间下,生成图比验证图与训练集'远'两倍";
数值无量纲,可跨特征空间平均。
论文用六个互补的视觉模型(Inception、ConvNeXt-v2、DINOv2、MAE、SigLIP2、CLIP)取平均,得到 FDr⁶。这个指标暴露的真相是:在 FID 上"超越真实验证集"的 SOTA 模型,FDr⁶ 仍然普遍在 3–10 区间,远未追平 1.0。
总结
如果说过去十年我们一直在用 FID 这把"尺子"丈量进步,那么这篇论文做的事,是把这把尺子既变成了拉伸生成器的"绳索",也让我们看清了尺子本身的刻度其实早已模糊。当一个领域的核心指标走到饱和,让指标"亲自下场",往往会带来最有趣的发现。
