DAPS: Decoupled Annealing Posterior Sampling
核心思想
利用扩散模型解决逆问题(从退化观测 $y$ 恢复原始图像 $x_0$)时,传统方法在每一步去噪都保持相邻样本紧密耦合($x_t \approx x_{t+\Delta t}$),导致无法纠正早期错误——尤其在非线性逆问题中。
| DAPS(解耦退火后验采样) 的核心创新:解耦相邻采样步的依赖关系,在每个噪声水平独立地从边缘后验 $p(x_t | y)$ 采样,允许样本在步间发生大幅度变化来修正全局错误。 |
背景知识
什么是逆问题
给定退化观测 $y = \mathcal{A}(x_0) + \text{noise}$,恢复原始信号 $x_0$。
| 类型 | 例子 | $\mathcal{A}$ 是什么 |
|---|---|---|
| 线性 | 超分辨率 | 下采样矩阵 |
| 线性 | 去模糊 | 卷积核 |
| 线性 | 修复 | 掩码矩阵 |
| 非线性 | 相位恢复 | 取绝对值(丢失相位信息) |
| 非线性 | 高动态范围 | 裁剪函数 |
| 非线性问题特别难——后验分布 $p(x_0 | y)$ 往往是多模态的(多个解都能解释观测)。 |
传统方法的问题
传统方法(如 DPS)在反向 SDE 中注入数据一致性项:
\[x_{t-\Delta t} \sim p(x_{t-\Delta t} | x_t, y)\]这要求 $x_{t-\Delta t}$ 与 $x_t$ 紧密耦合($\Delta t \to 0$ 时几乎一样)。问题是:
- 如果 $x_T$(初始噪声)碰巧指向了错误的模式 → 后续所有步骤都无法逃脱
- 在非线性问题中,这种”局部困住”特别严重
方法详解
1. 核心理论:解耦采样
| 命题 1:如果 $x_{t_1} \sim p(x_{t_1} | y)$,则通过以下过程可以得到 $x_{t_2} \sim p(x_{t_2} | y)$: |
直觉:
- 从当前含噪样本 $x_{t_1}$ 出发
- 先”去噪”到干净样本 $x_0$(考虑观测 $y$ 的约束)
- 再”加噪”到下一个噪声水平 $t_2 < t_1$
由于步骤 2 不受 $x_{t_1}$ 的紧密约束(通过 MCMC 充分采样),$x_{t_2}$ 可以与 $x_{t_1}$ 大不相同。
2. 三步迭代过程
每次迭代执行三步:
步骤 1:反向扩散 通过概率流 ODE 从 $x_t$ 估计干净样本 $\hat{x}_0(x_t) = \mathbb{E}[x_0 | x_t]$。
步骤 2:MCMC 采样 从条件后验 $p(x_0 | x_t, y)$ 采样。利用条件独立性($y \perp x_t | x_0$):
\[p(x_0 | x_t, y) \propto \underbrace{p(x_0 | x_t)}_{\text{扩散先验}} \cdot \underbrace{p(y | x_0)}_{\text{似然}}\]| 用高斯近似先验:$p(x_0 | x_t) \approx \mathcal{N}(x_0; \hat{x}_0(x_t), r_t^2 \mathbf{I})$。 |
Langevin 动力学更新:
\[x_0^{(j+1)} = x_0^{(j)} - \eta \nabla_{x_0} \frac{\|x_0 - \hat{x}_0(x_t)\|^2}{2r_t^2} - \eta \nabla_{x_0} \frac{\|\mathcal{A}(x_0) - y\|^2}{2\beta_y^2} + \sqrt{2\eta} \cdot \varepsilon_j\]其中:
- 第一项:拉向扩散模型的估计(先验)
- 第二项:拉向观测的一致性(似然)
- 第三项:Langevin 噪声(确保探索性)
- $\eta$:步长
- $\beta_y$:观测噪声标准差
步骤 3:前向扩散 向 $x_0$ 添加噪声到下一个噪声水平:$x_{t_\text{next}} = x_0 + \sigma_{t_\text{next}} \cdot \varepsilon$。
3. 退火调度
随着迭代进行,噪声水平从大到小递减——这就是”退火”(annealing):
- 高噪声时:$r_t$ 大 → 先验约束弱 → MCMC 可以大范围探索
- 低噪声时:$r_t$ 小 → 先验约束强 → 精细调整细节
4. 为什么解耦有效
以 2D 高斯混合为例(论文 Figure 4):
- DPS:相邻样本紧密耦合 → 轨迹无法逃离局部模式 → 收敛到错误后验
- DAPS:步间大幅变化 → 探索多个模式 → 准确逼近真实后验
5. 扩展到潜在空间:LatentDAPS
对于潜在扩散模型(编码器 $\mathcal{E}$、解码器 $\mathcal{D}$):
\[z_0^{(j+1)} = z_0^{(j)} + \eta \nabla_{z_0} \log p(z_0 | z_t) + \eta \nabla_{z_0} \log p(y | \mathcal{D}(z_0)) + \sqrt{2\eta} \cdot \varepsilon_j\]似然项通过解码器 $\mathcal{D}$ 反传梯度到潜在空间。
实验结果
非线性逆问题(FFHQ 256×256)
| 方法 | 相位恢复 PSNR | 高动态范围 PSNR | 非线性去模糊 PSNR |
|---|---|---|---|
| DPS | 17.64 dB | 22.73 dB | — |
| RED-diff | 15.60 dB | 22.16 dB | — |
| DAPS | 30.63 dB | 27.12 dB | — |
相位恢复上 DAPS 比 DPS 高 13 dB——巨大差距。
线性逆问题(FFHQ 256×256)
| 方法 | 超分辨率 PSNR | 高斯去模糊 PSNR |
|---|---|---|
| DDRM | 26.58 dB | 27.38 dB |
| DPS | 25.86 dB | 25.51 dB |
| DAPS | 29.07 dB | 29.40 dB |
线性问题上也有 2-4 dB 的提升。
医学影像:压缩感知 MRI
| 欠采样率 | DPS PSNR | DAPS PSNR |
|---|---|---|
| 4× | 26.13 dB | 31.48 dB |
| 8× | 20.82 dB | 29.01 dB |
消融:高斯近似 vs 扩散分数估计
| 方法 | 高斯去模糊 PSNR | 运行时间 |
|---|---|---|
| 高斯近似 | 29.40 dB | 64.7 秒 |
| 扩散分数估计 | 29.57 dB | 462.3 秒 |
高斯近似损失 0.17 dB,但快 7 倍——极佳的精度/速度权衡。
计算配置
| 配置 | 值 |
|---|---|
| DAPS-1K(线性问题) | 44 NFE × 250 退火步 |
| DAPS-4K(非线性问题) | 10 NFE × 400 退火步 |
| Langevin 步数 | 100(像素空间)/ 50(潜在空间) |
个人思考
- “解耦”是核心洞察:传统方法的 $\Delta t \to 0$ 约束看似理论优美,实际上限制了纠错能力——DAPS 打破这个约束后性能暴涨。
- 退火思想的自然性:从粗到细逐步降噪 + 每步独立 MCMC → 这本质上是模拟退火的思想用在扩散模型上。
- 非线性问题的 13 dB 提升说明现有方法在非线性问题上几乎完全失效——不是小改进而是质变。
-
高斯近似的高效性:用简单的高斯近似 $p(x_0 x_t)$ 而非精确的扩散分数,损失微小但速度快 7 倍——说明扩散模型的去噪估计本身就很好。 - 通用性强:无缝扩展到像素空间、潜在空间、离散扩散和文本条件模型——框架设计的通用性值得学习。