从布朗运动到 DDPM:扩散模型加噪公式的诞生与优雅

这是一篇为你梳理的详细推导文章,从物理源头开始,一步步拆解 DDPM 中那个精妙加噪公式的来龙去脉。


引言

去噪扩散概率模型(Denoising Diffusion Probabilistic Models, DDPM)在图像生成领域取得了惊人的成功。其核心思想非常简单:先给数据逐步添加噪声,直到变成纯噪声,再学习逆向去噪,从噪声中恢复出数据。

但如果你仔细观察它的前向扩散过程,会发现它并不是简单地把随机噪声叠加到数据上,而是采用了一个非常特别的加权形式:

$$x_t = \sqrt{1 - \beta_t} \, x_{t-1} + \sqrt{\beta_t} \, \varepsilon_t, \quad \varepsilon_t \sim \mathcal{N}(0, \mathbf{I}) \tag{1}$$

其中 $\beta_t \in (0,1)$ 是一个很小的常数,代表每一步的“噪声强度”。

这个公式看起来好像只是“把信号缩小一点,再加一点噪声”,但为什么系数偏偏是 $\sqrt{1-\beta_t}$ 和 $\sqrt{\beta_t}$?为什么不直接写成 $x_t = x_{t-1} + \sqrt{\beta_t}\varepsilon_t$?或者为什么不是 $x_t = (1-\beta_t)x_{t-1} + \beta_t \varepsilon_t$?

这篇文章将追根溯源,从非平衡统计物理的 Ornstein-Uhlenbeck 过程出发,推导出 DDPM 前向过程的原始离散形式,然后展示如何通过方差保持的约束和泰勒近似,最终演化成你现在看到的这个优美表达式。我们还将看到,这个精巧的设计如何使整个反向扩散过程变得高度可解,并最终凝练成一个极简的“预测噪声”训练目标。


1. 物理源头:Ornstein-Uhlenbeck 过程

DDPM 的思想可以追溯到 2015 年 Sohl-Dickstein 等人的工作,他们借鉴了非平衡热力学中的扩散过程。在物理学中,一个经典的模型是 Ornstein-Uhlenbeck (OU) 过程,它描述了一个粒子在粘性流体中的速度演化:粒子既受到摩擦力(使其速度衰减),又受到周围分子随机热运动的撞击(产生随机扰动)。

OU 过程由一个随机微分方程(SDE)描述:

$$dx = -\theta x \, dt + \sigma \, dw \tag{2}$$
  • $x$ 是系统状态(例如速度)。
  • $-\theta x \, dt$ 是漂移项,$\theta > 0$ 是回复速率,它将 $x$ 拉向零均值,代表能量耗散。
  • $\sigma \, dw$ 是扩散项,$dw$ 是维纳过程(白噪声)的增量,满足 $dw \sim \mathcal{N}(0, dt)$。

这个方程的解,在长时间极限下会收敛到一个稳定的高斯分布 $\mathcal{N}(0, \sigma^2 / (2\theta))$。这正是“有序到无序”的扩散过程的物理原型。

2. 走向 DDPM:方差保持 SDE (VP-SDE)

DDPM 的目的不是模拟任意的物理过程,而是要将任意数据分布逐步转化成标准高斯噪声 $\mathcal{N}(0, \mathbf{I})$,并且要求中间每一步的信号尺度都大致保持恒定,以保证数值稳定性。这就需要对式 (2) 的参数进行特殊设计。

为了让最终方差为 1,我们可以这样选择参数:令 $\theta = \frac{1}{2}\beta(t)$,$\sigma = \sqrt{\beta(t)}$,其中 $\beta(t) > 0$ 是一个随时间缓慢变化的函数(即噪声调度)。代入式 (2) 得到:

$$dx = -\frac{1}{2}\beta(t) x \, dt + \sqrt{\beta(t)} \, dw \tag{3}$$

这就是著名的 Variance Preserving SDE (VP-SDE),是 DDPM 的连续时间版本。可以证明,当初始方差为 1 时,该 SDE 的边际分布方差在任何时刻都恰好保持为 1,并在 $t \to \infty$ 时收敛到 $\mathcal{N}(0, \mathbf{I})$。

3. 离散化:得到 OU 过程的离散递推

为了在计算机上实现,我们需要将连续时间的 SDE (3) 离散化。设定离散步长 $\Delta t = 1$,并令 $\beta_t = \beta(t) \Delta t$。使用最直接的欧拉-丸山 (Euler-Maruyama) 离散化方法:

  • 漂移项:$-\frac{1}{2}\beta(t) x \, dt \;\longrightarrow\; -\frac{1}{2}\beta_t \, x_{t-1} \cdot \Delta t = -\frac{1}{2}\beta_t x_{t-1}$
  • 扩散项:$\sqrt{\beta(t)} \, dw \;\longrightarrow\; \sqrt{\beta_t} \, \varepsilon_t \sqrt{\Delta t} = \sqrt{\beta_t} \varepsilon_t$,其中 $\varepsilon_t \sim \mathcal{N}(0, \mathbf{I})$

于是 SDE (3) 变为离散递推:

$$x_t - x_{t-1} = -\frac{1}{2}\beta_t x_{t-1} + \sqrt{\beta_t} \varepsilon_t$$

移项后即得:

$$x_t = \underbrace{\left(1 - \frac{1}{2}\beta_t\right)}_{\text{缩放系数}} x_{t-1} + \sqrt{\beta_t} \, \varepsilon_t \tag{4}$$

这就是从物理 OU 过程直接离散化后得到的原始加噪公式。 它是 DDPM 加噪机制的最初形态。

4. 泰勒展开揭示的近似关系

注意到式 (4) 中的缩放系数是 $1 - \frac{1}{2}\beta_t$,而 DDPM 最终使用的是 $\sqrt{1-\beta_t}$。这两者之间有什么关系?答案就在一阶泰勒展开里。

考虑函数 $f(\beta) = \sqrt{1 - \beta}$。在 $\beta = 0$ 处的麦克劳林展开为:

$$f(\beta) = f(0) + f'(0) \cdot \beta + \mathcal{O}(\beta^2)$$

计算:$f(0) = 1$,$f'(\beta) = -\frac{1}{2\sqrt{1-\beta}}$,所以 $f'(0) = -\frac{1}{2}$。于是:

$$\sqrt{1 - \beta} = 1 - \frac{1}{2}\beta + \mathcal{O}(\beta^2)$$

当 $\beta_t$ 非常小(比如 $10^{-4}$ 到 $10^{-2}$ 量级)时,高阶项 $\mathcal{O}(\beta_t^2)$ 可忽略,因此有:

$$1 - \frac{1}{2}\beta_t \approx \sqrt{1 - \beta_t}$$

这意味着,在微小噪声极限下,OU 离散公式 (4) 和 DDPM 最终公式 (1) 是几乎等同的。但 DDPM 的作者们并没有止步于这个近似,而是做了一个非常关键的理论升华。

5. 完美方差保持:从近似到精确

既然可以用 $\sqrt{1-\beta_t}$ 代替 $1 - \beta_t/2$,为什么一定要舍近求远?原因在于方差的精确守恒

假设 $x_{t-1}$ 的方差为 $\text{Var}(x_{t-1}) = 1$。我们分别计算两种递推下方差的变化。

对于 OU 离散 (4):

$$\text{Var}(x_t) = \left(1 - \frac{1}{2}\beta_t\right)^2 \text{Var}(x_{t-1}) + (\sqrt{\beta_t})^2 = \left(1 - \beta_t + \frac{1}{4}\beta_t^2\right) \cdot 1 + \beta_t = 1 + \frac{1}{4}\beta_t^2$$

方差会多出一个 $\beta_t^2/4$ 的微小增量。虽然单步很小,但经过上千步累积后,方差会逐渐漂移,导致 $x_T$ 的分布偏离 $\mathcal{N}(0, \mathbf{I})$,并且中间层输入的尺度也不再稳定。

对于 DDPM 的 $\sqrt{1-\beta_t}$ (1):

$$\text{Var}(x_t) = \left(\sqrt{1-\beta_t}\right)^2 \text{Var}(x_{t-1}) + (\sqrt{\beta_t})^2 = (1 - \beta_t) \cdot 1 + \beta_t = 1$$

方差被精确地锁定为 1!无论经过多少步,只要初始方差为 1,每一步的 $x_t$ 边缘方差都严格恒定。这就是“方差保持(Variance Preserving)”名称的由来。

因此,DDPM 选择 $\sqrt{1-\beta_t}$ 并不是一个随意的近似,而是一个在数学上让方差恒等式严格成立的精巧构造。它同时完美继承了 OU 过程物理离散的一阶特性,但又在数值稳定性上达到了绝对精确。

6. 重参数化:一步到位的优雅

DDPM 前向公式的另一大天赋,在于它可以被重参数化(reparameterization)。令 $\alpha_t = 1 - \beta_t$,$\bar{\alpha}_t = \prod_{s=1}^t \alpha_s$。反复套用式 (1) 并利用高斯分布的封闭性,可以得到:

$$x_t = \sqrt{\bar{\alpha}_t} \, x_0 + \sqrt{1 - \bar{\alpha}_t} \, \bar{\varepsilon}, \quad \bar{\varepsilon} \sim \mathcal{N}(0, \mathbf{I}) \tag{5}$$

这意味着任意时刻 $t$ 的带噪样本,都可以直接从原始数据 $x_0$ 一步采样得到,无需逐步迭代!这对于训练来说是巨大的效率提升,因为我们只需随机采样一个时间步 $t$,就可以立刻计算出 $x_t$ 作为网络输入。

同时,当 $t \to T$ 足够大,$\bar{\alpha}_T \to 0$,则 $x_T \to \mathcal{N}(0, \mathbf{I})$,完美收敛到先验分布。

7. 逆向过程与训练目标的简化

前向过程的巧妙设计,直接决定了逆向去噪过程也具有极其简洁的形式。

在已知 $x_t$ 和 $x_0$ 的条件下,逆向条件概率 $q(x_{t-1} | x_t, x_0)$ 也是一个高斯分布,且其均值可以精确写为:

$$\tilde{\mu}_t(x_t, x_0) = \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1 - \bar{\alpha}_t} x_0 + \frac{\sqrt{\alpha_t}(1 - \bar{\alpha}_{t-1})}{1 - \bar{\alpha}_t} x_t$$

利用重参数化式 (5) 解出 $x_0 = \frac{1}{\sqrt{\bar{\alpha}_t}}(x_t - \sqrt{1 - \bar{\alpha}_t} \bar{\varepsilon})$,代入后会发现,均值 $\tilde{\mu}_t$ 实际上只需要预测我们添加的那部分噪声 $\bar{\varepsilon}$。于是,我们可以训练一个神经网络 $\varepsilon_\theta(x_t, t)$ 来预测噪声,并构造逆向采样步:

$$x_{t-1} = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}} \varepsilon_\theta(x_t, t) \right) + \sigma_t z, \quad z \sim \mathcal{N}(0, \mathbf{I})$$

DDPM 的变分下界(ELBO)在经过一系列化简后,最终得到一个令人惊讶的简洁损失函数:

$$\mathcal{L}_{\text{simple}} = \mathbb{E}_{t, x_0, \varepsilon} \left[ \| \varepsilon - \varepsilon_\theta(\underbrace{\sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \varepsilon}_{x_t}, t) \|^2 \right] \tag{6}$$

训练的目标,仅仅是让模型根据加噪后的样本 $x_t$ 和时间步 $t$,准确地猜出当初混进去的那个高斯噪声 $\varepsilon$。 没有对抗训练,没有复杂的变分技巧,只是一个简单的均方误差回归。

结论:一个公式背后的多层智慧

回顾整个历程,DDPM 的加噪公式:

$$x_t = \sqrt{1 - \beta_t} x_{t-1} + \sqrt{\beta_t} \varepsilon_t$$

绝不是凭空臆造,它承载了多层深刻的智慧:

  1. 物理继承:它源于 Ornstein-Uhlenbeck 过程的欧拉离散化,天然具有“逐渐扩散至无序”的热力学本质。
  2. 近似与精确的统一:通过一阶泰勒近似 $1 - \beta_t/2 \approx \sqrt{1-\beta_t}$,它与物理离散化在微小噪声下等效,却实现了方差的严格守恒,保证了长期数值稳定性。
  3. 解析可解性:方差保持的构造使前向过程具有完美的重参数化性质,任意时刻分布可一步采样,且逆向条件分布为高斯,有闭式解。
  4. 训练极致简化:最终损失函数退化为预测噪声的 L2 损失,让训练异常稳定且易于扩展。

这个加法的“讲究”,本质上是物理学、概率论和数值优化的一个美妙交叉点。当你看到这个简单的表达式时,不妨想起它背后那条从布朗运动,经过随机微分方程、离散化、泰勒展开,最后到方差精确守恒的优美推导链。正是这种严谨而优雅的设计,奠定了扩散模型能够大规模成功的数学根基。