DDIM
DDIM: Denoising Diffusion Implicit Models
核心突破
DDIM (Song et al., ICLR 2021) 是 Diffusion 模型实用化的重要里程碑。 它证明了:即使你不改变 DDPM 的训练目标 ($L_{simple}$),你也可以改变它的采样方式。
- DDPM: 必须老老实实地走完 1000 步马尔科夫链,每一步都加随机噪声。
- DDIM: 构造了一个非马尔科夫 (Non-Markovian) 的前向过程,使得反向过程可以是确定性 (Deterministic) 的,且允许我们跳步采样(比如 1000 步的训练,只用 50 步采样)。
1. 核心原理:非马尔科夫过程
1.1 不同的前向,同样的边缘
DDPM 假设 $q(x_t|x_{t-1})$ 是固定的高斯分布。 DDIM 发现,我们其实并不关心中间过程是怎么走的,只要保证最后 $q(x_t|x_0)$ 的边缘分布依然满足 $x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1-\bar{\alpha}_t} \epsilon$ 就可以复用 DDPM 的预训练模型。
利用这个自由度,DDIM 构造了一族前向过程,其中包含一个参数 $\sigma_t$(或 $\eta$)。
1.2 通用采样公式
DDIM 提出了一个通用的去噪公式:
$$ x_{t-1} = \underbrace{\sqrt{\bar{\alpha}_{t-1}} \left( \frac{x_t - \sqrt{1-\bar{\alpha}_t}\epsilon_\theta(x_t)}{\sqrt{\bar{\alpha}_t}} \right)}_{\text{predicted } x_0} + \underbrace{\sqrt{1-\bar{\alpha}_{t-1} - \sigma_t^2} \cdot \epsilon_\theta(x_t)}_{\text{direction pointing to } x_t} + \underbrace{\sigma_t \epsilon_t}_{\text{random noise}} $$这里的 $\sigma_t$ 是关键控制项(通常用 $\eta$ 表示比例):
- Case 1: DDPM ($\eta=1$) 如果不跳步且 $\sigma_t$ 取最大值,上述公式就退化回了 DDPM 的采样公式(包含随机项)。
- Case 2: DDIM ($\eta=0$) 如果我们令 $\sigma_t = 0$,随机项消失。采样过程变成了完全确定性的。 $$ x_{t-1} \approx \text{Linear Combination of } x_t \text{ and } \epsilon_\theta $$
2. DDIM 的两大贡献
2.1 加速采样 (Acceleration)
因为去除了随机性,DDIM 的轨迹更加平滑(接近 ODE 轨迹)。这意味着我们可以安全地进行跳步 (Respacing)。
- 比如训练时 $T=1000$,采样时我们可以选子序列 $\tau = [1, 20, 40, \dots, 1000]$。
- 只需要生成 50 步,就能得到和 DDPM 1000 步差不多质量的图片。
2.2 DDIM Inversion (反演)
由于 $\eta=0$ 时采样过程是确定性的 ODE,这个映射是可逆的。
- 正向生成: $x_T \to x_0$
- 反向推导 (Inversion): 给定一张真实图片 $x_0$,我们可以用同样的 ODE 公式反向推导出它对应的噪声 $x_T$。
应用: 这是基于 Diffusion 进行图像编辑(如 Pix2Pix-Zero, CycleDiffusion)的基础。通过 Inversion 得到包含原图结构信息的 $x_T$,修改 Prompt 后再生成,就能保持构图不变。
3. 总结
| 特性 | DDPM | DDIM |
|---|---|---|
| 过程性质 | SDE (随机) | ODE (确定性,当 $\eta=0$) |
| 采样速度 | 慢 (需全量步数) | 快 (支持跳步,如 20-50 步) |
| 生成结果 | 多样性好,细节丰富 | 收敛一致性好,便于插值 |
| 可逆性 | 不可逆 | 可逆 (Inversion) |
实际中的 $\eta$
在使用的采样器中,通常可以通过 eta 参数控制随机性:
eta = 0.0: 纯 DDIM,确定性,画出来的图比较“正”,适合做视频。eta > 0.0(如 1.0): 引入随机性,增加细节纹理(类似 Euler a 的效果)。