跳转到内容

Diffusion Posterior Samplers Fail — 用有限样本看清扩散后验采样为什么翻车

待复核

这篇论文研究的是:扩散模型拿来做后验采样时,为什么有时看起来很强,有时又会生成测量不支持的假答案。

日常类比:你在拼一张破损照片,手里有两样东西:一堆类似照片作为经验,以及少量模糊线索作为证据。普通方法会先猜一张完整照片,再用证据推一推;这篇论文说,先别急着相信猜图过程,我们可以拿有限张真实样本做“标准答案显微镜”,看看中间每一步到底偏到哪里。

论文提出的“有限样本视角”不是为了替代所有扩散后验采样器,而是为了诊断它们:在每个扩散时间点,真实后验应该长什么样,DPS、PiGDM、TMPD 这些近似方法又把它扭成了什么样。

一句话抓住它:

  • 输入是一堆先验样本、一个测量模型、一条观测值。
  • 输出不是“最好的一张图”,而是一把尺子,用来量采样器在中间时间点偏了多少。

不理解这篇论文,下面这些事就很难解释:

  • 为什么扩散后验采样在图像修复、MRI、CT 这类逆问题里能复用同一个预训练先验,却不用重新训练每个任务。
  • 为什么样本最后看起来清晰,不代表采样过程真的符合后验;中间时间点的分布可能早就跑偏。
  • 为什么“幻觉”不只是大模型聊天的问题,图像重建也可能生成先验里常见、但测量证据不支持的结构。
  • 为什么失败不一定来自非线性测量或多峰后验;论文证明多峰先验加错误方差,就足以让采样器翻车。
  1. 后验采样像两股力拉绳子。先验说“像训练数据”,似然说“符合测量”。扩散后验采样的难点,是每个去噪时间点都要正确平衡这两股力。

  2. 常见方法在中间时间点用了近似。DPS 把去噪分布压成一个点,Gaussian 方法把它压成一个高斯。类比:原本是一群可能嫌疑人,算法为了省事只留“平均嫌疑人”或“一个椭圆范围”。

  3. 有限样本视角把隐形分布变成可算表格。如果先验不是连续密度,而是 N 个训练样本组成的经验分布,那么中间时间点的后验可以写成高斯混合。类比:不用猜整座城市的人流,只统计这 N 个人每一步可能在哪里。

案例 1:有限样本后验权重长什么样

Section titled “案例 1:有限样本后验权重长什么样”
import numpy as np
def posterior_weights(xs, y, A, sigma):
residual = y - A(xs)
score = -0.5 * (residual / sigma) ** 2
w = np.exp(score - score.max())
return w / w.sum()

逐部分解释

  • xs 是有限个先验样本,先把连续先验换成一张样本清单。
  • A(xs) 是测量模型,表示每个样本如果是真的,会产生什么观测。
  • 权重越大,说明这个样本越符合测量;论文里的有限样本后验就是把这种权重和扩散噪声核结合起来。

案例 2:DPS 为什么可能把似然权重调错

Section titled “案例 2:DPS 为什么可能把似然权重调错”
def dps_guidance(residual_norm, zeta):
return zeta / max(residual_norm, 1e-8)
for zeta in [0.01, 0.1, 0.5]:
print(zeta, dps_guidance(0.2, zeta))

逐部分解释

  • DPS 实践里常用 zeta 控制测量一致性的力度。
  • zeta 太小,采样更听先验,可能忽略测量;zeta 太大,采样更听测量,可能压塌到错误模式。
  • 论文用有限样本后验做参照,说明调参不是“画面清晰就行”,而是在改先验和似然的相对重量。

案例 3:中间时间点比最终图片更能暴露问题

Section titled “案例 3:中间时间点比最终图片更能暴露问题”
def check_spread(samples_t):
mean = samples_t.mean(axis=0)
var = ((samples_t - mean) ** 2).mean(axis=0)
return mean, var

逐部分解释

  • 采样器可能最终回到看似合理的图片,但中间方差已经过大或过小。
  • Gaussian 近似如果高估方差,粒子会跑到测量不支持的先验模式附近。
  • 论文的核心诊断就是:别只看终点,沿着时间轴看后验形状怎么变。
  1. 把重建质量当作后验正确性:图片清楚只说明某个样本好看,不说明整个不确定性分布权重正确。

  2. 以为失败必须来自非线性测量:论文展示了线性测量、单峰后验也能失败,原因是多峰先验在中间时间点影响方差。

  3. 把有限样本方法当成生产级采样器:它靠 N 个样本近似真实先验,越靠近时间零越需要更多样本,主要价值是诊断。

  4. 只调 zeta 不看病因:调参可以缓解某些模式权重错误,但不能保证消除先验幻觉或似然幻觉。

适用

  • 想诊断 DPS、PiGDM、TMPD 等扩散后验采样器为什么在某个逆问题上失败。
  • 想比较中间时间点的后验形状,而不是只看最终重建图。
  • 测量模型可能是线性或非线性,但你愿意用有限样本作为近似参照。
  • 研究医学成像、科学成像、物理逆问题里的不确定性和低概率高风险模式。

不适用

  • 只想快速生成一张最好看的修复图,而不关心后验分布是否准。
  • 训练样本极少、维度极高,并且无法承受有限样本近似的内存和计算成本。
  • 希望有限样本方法在时间零直接泛化到训练集外的新图像;原始离散经验分布本身没有这种泛化能力。
  • 需要严格证明某个真实深度网络先验一定可靠;论文主要分析采样近似,不直接解决先验学习误差。
  • 2015 年前后:扩散思想从非平衡热力学进入深度生成模型,核心动作是“加噪再反向去噪”。
  • 2020 年:DDPM 和 score-based SDE 让扩散模型成为主流生成框架,也让“score”成为后验采样可用的接口。
  • 2022-2024 年:DPS、PiGDM、TMPD 等方法尝试把预训练扩散先验接到逆问题上,用近似似然 score 推动采样。
  • 2026 年:这篇论文不再只问“谁的结果更好”,而是问“这些近似在每个中间时间点具体错在哪里”。
  • 扩散后验采样的真正难点,是在每个噪声时间点都正确估计似然对样本的影响。
  • Dirac 近似和 Gaussian 近似省了计算,但也会丢掉去噪分布的形状信息。
  • 有限样本视角把不可见的中间后验变成可计算对象,因此很适合做失败病因分析。
  • 幻觉可以分成两类:生成先验支持但测量不支持的模式,或生成测量支持但先验不支持的模式。
  • ddpm —— 提供扩散模型的基础生成过程,本文把它拿来做逆问题后验采样。
  • ddim-2020 —— 同样关心采样路径,本文更关心路径上的后验分布是否正确。
  • classifier-free-guidance-2022 —— 都是在采样时额外加引导力,只是这里的引导来自测量似然。
  • consistency-models-2023 —— 都试图减少扩散采样成本,但本文提醒成本降低不能掩盖分布偏差。
  • diffusion-posterior-sampling —— DPS 是本文诊断的核心基线,适合作为后续补全笔记。
  • uncertainty-quantification —— 后验采样的目标不是一张图,而是表达不确定性。

(暂无反向链接)