SDE
SDE: Score-Based Generative Modeling (分数生成模型)
统一框架
Song et al. (ICLR 2021) 的论文 “Score-Based Generative Modeling through Stochastic Differential Equations” 将之前的两大类扩散模型:
- DDPM (Denoising Diffusion Probabilistic Models)
- NCSN (Noise Conditional Score Networks, 基于分数匹配)
统一在了一个连续时间的 随机微分方程 (SDE) 框架下。这篇论文是理解扩散模型数学本质的“圣经”。
1. 核心理论
1.1 前向过程 (Forward SDE)
不同于 DDPM 的离散时间步,SDE 将加噪过程变为连续时间 $t \in [0, T]$ 的扩散过程。
$$d\mathbf{x} = \mathbf{f}(\mathbf{x}, t) dt + g(t) d\mathbf{w}$$- $\mathbf{f}(\mathbf{x}, t)$: 漂移系数 (Drift Coefficient),控制数据的确定性变化(通常是为了让数据均值趋向于 0)。
- $g(t)$: 扩散系数 (Diffusion Coefficient),控制注入噪声的强度。
- $\mathbf{w}$: 标准布朗运动 (Brownian Motion)。
随着 $t \to T$,数据分布 $p_0(\mathbf{x})$ 逐渐演变为先验噪声分布 $p_T(\mathbf{x})$ (如 $\mathcal{N}(0, I)$)。
1.2 反向过程 (Reverse SDE)
Anderson (1982) 证明,任何扩散过程都有一个逆过程,也是一个 SDE:
$$d\mathbf{x} = [\mathbf{f}(\mathbf{x}, t) - g(t)^2 \nabla_\mathbf{x} \log p_t(\mathbf{x})] dt + g(t) d\bar{\mathbf{w}}$$这里出现了一个关键项:$\nabla_\mathbf{x} \log p_t(\mathbf{x})$,这就是 Score Function (分数函数),即概率密度函数对数的梯度。
结论: 如果我们能训练一个神经网络 $s_\theta(\mathbf{x}, t) \approx \nabla_\mathbf{x} \log p_t(\mathbf{x})$,我们就能模拟这个反向 SDE,从噪声生成数据。
2. 两个重要实例
2.1 VE-SDE (Variance Exploding)
- 对应模型:NCSN / Score Matching
- 特点:数据本身不进行缩放 ($\mathbf{f}=0$),只不断加噪声,方差爆炸式增长。
- SDE: $d\mathbf{x} = \sqrt{\frac{d[\sigma^2(t)]}{dt}} d\mathbf{w}$
2.2 VP-SDE (Variance Preserving)
- 对应模型:DDPM
- 特点:在加噪的同时衰减数据 ($\mathbf{f} = -\frac{1}{2}\beta(t)\mathbf{x}$),使得总方差保持在 1。
- SDE: $d\mathbf{x} = -\frac{1}{2}\beta(t)\mathbf{x} dt + \sqrt{\beta(t)} d\mathbf{w}$
3. 如果去掉随机性? (ODE Probability Flow)
对于任意 SDE,存在一个对应的常微分方程 (ODE),其边缘分布 $p_t(\mathbf{x})$ 的演化与 SDE 完全一致:
$$d\mathbf{x} = [\mathbf{f}(\mathbf{x}, t) - \frac{1}{2}g(t)^2 \nabla_\mathbf{x} \log p_t(\mathbf{x})] dt$$这就是 Probability Flow ODE。
- 意义: 即使是用 SDE 目标训练出来的 Score Network,我们也可以用 ODE 求解器来进行确定性采样。
- 联系: 这实际上是 Flow Matching 的前身。Flow Matching 更加直接地去学习这个 ODE 的向量场,而不是间接地通过 Score Function 推导。
4. 采样器 (Samplers)
有了 Score Function,我们可以用多种方式采样:
- Euler-Maruyama: SDE 的标准数值解法(类似 Euler 法解 ODE)。
- Predictor-Corrector (PC):
- Predictor: 用数值解法先迈一步 (如 Euler-Maruyama)。
- Corrector: 用 MCMC (如 Langevin Dynamics) 在这一步的位置上进行对数梯度上升,把跑偏的点拉回高概率区域。
- 结果: 相比单纯的 DDPM 采样,质量更好。