Diffusion Posterior Samplers Fail — 用有限样本看清扩散后验采样为什么翻车
待复核这篇论文研究的是:扩散模型拿来做后验采样时,为什么有时看起来很强,有时又会生成测量不支持的假答案。
日常类比:你在拼一张破损照片,手里有两样东西:一堆类似照片作为经验,以及少量模糊线索作为证据。普通方法会先猜一张完整照片,再用证据推一推;这篇论文说,先别急着相信猜图过程,我们可以拿有限张真实样本做“标准答案显微镜”,看看中间每一步到底偏到哪里。
论文提出的“有限样本视角”不是为了替代所有扩散后验采样器,而是为了诊断它们:在每个扩散时间点,真实后验应该长什么样,DPS、PiGDM、TMPD 这些近似方法又把它扭成了什么样。
一句话抓住它:
- 输入是一堆先验样本、一个测量模型、一条观测值。
- 输出不是“最好的一张图”,而是一把尺子,用来量采样器在中间时间点偏了多少。
不理解这篇论文,下面这些事就很难解释:
- 为什么扩散后验采样在图像修复、MRI、CT 这类逆问题里能复用同一个预训练先验,却不用重新训练每个任务。
- 为什么样本最后看起来清晰,不代表采样过程真的符合后验;中间时间点的分布可能早就跑偏。
- 为什么“幻觉”不只是大模型聊天的问题,图像重建也可能生成先验里常见、但测量证据不支持的结构。
- 为什么失败不一定来自非线性测量或多峰后验;论文证明多峰先验加错误方差,就足以让采样器翻车。
-
后验采样像两股力拉绳子。先验说“像训练数据”,似然说“符合测量”。扩散后验采样的难点,是每个去噪时间点都要正确平衡这两股力。
-
常见方法在中间时间点用了近似。DPS 把去噪分布压成一个点,Gaussian 方法把它压成一个高斯。类比:原本是一群可能嫌疑人,算法为了省事只留“平均嫌疑人”或“一个椭圆范围”。
-
有限样本视角把隐形分布变成可算表格。如果先验不是连续密度,而是 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 近似如果高估方差,粒子会跑到测量不支持的先验模式附近。
- 论文的核心诊断就是:别只看终点,沿着时间轴看后验形状怎么变。
-
把重建质量当作后验正确性:图片清楚只说明某个样本好看,不说明整个不确定性分布权重正确。
-
以为失败必须来自非线性测量:论文展示了线性测量、单峰后验也能失败,原因是多峰先验在中间时间点影响方差。
-
把有限样本方法当成生产级采样器:它靠 N 个样本近似真实先验,越靠近时间零越需要更多样本,主要价值是诊断。
-
只调
zeta不看病因:调参可以缓解某些模式权重错误,但不能保证消除先验幻觉或似然幻觉。
适用 vs 不适用场景
Section titled “适用 vs 不适用场景”适用:
- 想诊断 DPS、PiGDM、TMPD 等扩散后验采样器为什么在某个逆问题上失败。
- 想比较中间时间点的后验形状,而不是只看最终重建图。
- 测量模型可能是线性或非线性,但你愿意用有限样本作为近似参照。
- 研究医学成像、科学成像、物理逆问题里的不确定性和低概率高风险模式。
不适用:
- 只想快速生成一张最好看的修复图,而不关心后验分布是否准。
- 训练样本极少、维度极高,并且无法承受有限样本近似的内存和计算成本。
- 希望有限样本方法在时间零直接泛化到训练集外的新图像;原始离散经验分布本身没有这种泛化能力。
- 需要严格证明某个真实深度网络先验一定可靠;论文主要分析采样近似,不直接解决先验学习误差。
历史小故事(可跳过)
Section titled “历史小故事(可跳过)”- 2015 年前后:扩散思想从非平衡热力学进入深度生成模型,核心动作是“加噪再反向去噪”。
- 2020 年:DDPM 和 score-based SDE 让扩散模型成为主流生成框架,也让“score”成为后验采样可用的接口。
- 2022-2024 年:DPS、PiGDM、TMPD 等方法尝试把预训练扩散先验接到逆问题上,用近似似然 score 推动采样。
- 2026 年:这篇论文不再只问“谁的结果更好”,而是问“这些近似在每个中间时间点具体错在哪里”。
- 扩散后验采样的真正难点,是在每个噪声时间点都正确估计似然对样本的影响。
- Dirac 近似和 Gaussian 近似省了计算,但也会丢掉去噪分布的形状信息。
- 有限样本视角把不可见的中间后验变成可计算对象,因此很适合做失败病因分析。
- 幻觉可以分成两类:生成先验支持但测量不支持的模式,或生成测量支持但先验不支持的模式。
- 论文 PDF:When, Why, and How Do Diffusion Posterior Samplers Fail?(本文主角,重点看摘要、Figure 2、Figure 4)
- 经典扩散模型:ddpm —— 理解“从噪声反推数据”的基础入口
- 采样加速背景:ddim-2020 —— 看扩散采样如何从随机过程走向更快的确定性路径
- 相关后验采样:Diffusion Posterior Sampling for General Noisy Inverse Problems(DPS 的主要来源)
- 相关高斯近似:Tweedie Moment Projected Diffusions for Inverse Problems(TMPD,本文重点比较对象之一)
- ddpm —— 提供扩散模型的基础生成过程,本文把它拿来做逆问题后验采样。
- ddim-2020 —— 同样关心采样路径,本文更关心路径上的后验分布是否正确。
- classifier-free-guidance-2022 —— 都是在采样时额外加引导力,只是这里的引导来自测量似然。
- consistency-models-2023 —— 都试图减少扩散采样成本,但本文提醒成本降低不能掩盖分布偏差。
- diffusion-posterior-sampling —— DPS 是本文诊断的核心基线,适合作为后续补全笔记。
- uncertainty-quantification —— 后验采样的目标不是一张图,而是表达不确定性。
(暂无反向链接)