在过去十年中,人工智能以能够从零生成逼真图像、音频和文本的深度生成模型令世界惊叹。我们见证了生成对抗网络 (GANs) 生成栩栩如生的人像,也看到了变分自编码器 (VAEs) 学习到丰富的潜在表示。但在 2020 年,一篇来自加州大学伯克利分校研究人员的论文 *Denoising Diffusion Probabilistic Models *(去噪扩散概率模型) 改变了这一领域的格局。

这项工作介绍了一类新的模型,其思想源于 2015 年首次探索的非平衡热力学。研究首次证明,这类模型能够生成极高质量的图像,足以媲美甚至在某些情况下超越最顶尖的 GANs。

这些模型现在被广泛称为**去噪扩散模型 **(DDPMs) ,其运作原理优美而直观:

  1. 从一张清晰的图像开始。
  2. 不断添加噪声逐步将其破坏。
  3. 通过一步步逆转加噪过程,学习如何重建原始图像。

这种“先蓄意破坏,再学习修复”的思路,被证明是捕捉真实世界数据中复杂统计规律的极其有效的方法。

DDPM 论文中生成的样本。左侧是来自 CelebA-HQ 数据集的 256×256 人脸图像。右侧是来自无条件 CIFAR10 数据集的 32×32 图像。

图 1: 从 CelebA-HQ (左) 和无条件 CIFAR10 (右) 生成的高质量样本。


双向过程: 扩散模型的工作原理

扩散模型的核心由两个相反的过程组成:

  • 前向过程: 系统地向图像中添加噪声。
  • 反向过程: 学习去除噪声。

展示前向 (加噪) 和反向 (去噪) 过程的图表。前向过程 <code>q</code> 逐渐向图像 <code>x₀</code> 添加高斯噪声,直到其变为纯噪声 <code>x_T</code>。反向过程 <code>p_θ</code> 学习将 <code>x_T</code> 转换回清晰图像 <code>x₀</code>。

图 2: 前向 (加噪) 和反向 (去噪) 过程的马尔可夫链结构。

这两个过程都是马尔可夫链,每一步仅依赖于前一步的状态。


1. 前向过程 (扩散)

假设你有一张清晰的图像 \(\mathbf{x}_0\)。
前向过程 \(q\) 在 \(T\) 个时间步内逐步添加少量高斯噪声,得到 \(\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_T\)。

每一步的转移定义为:

\[ q(\mathbf{x}_t|\mathbf{x}_{t-1}) \coloneqq \mathcal{N}\big(\mathbf{x}_t; \sqrt{1-\beta_t}\,\mathbf{x}_{t-1},\,\beta_t\,\mathbf{I}\big) \]

其中:

  • \(\beta_t\) 控制第 \(t\) 步的噪声水平。
  • 均值是 \(\mathbf{x}_{t-1}\) 的缩放版本;方差是 \(\beta_t \mathbf{I}\)。

在最后一步 \(T\) (论文取 \(T = 1000\)) 时,图像几乎被完全抹去,变成纯高斯噪声。


优雅的捷径:
由于高斯分布组合性质良好,我们可以直接从 \(\mathbf{x}_0\) 跳到任意的 \(\mathbf{x}_t\),而无需模拟中间步骤:

\[ q(\mathbf{x}_t | \mathbf{x}_0) = \mathcal{N}\big(\mathbf{x}_t; \sqrt{\bar{\alpha}_t} \mathbf{x}_0,\,(1 - \bar{\alpha}_t) \mathbf{I}\big) \]

这里 \(\alpha_t = 1 - \beta_t\),\(\bar{\alpha}_t = \prod_{s=1}^t \alpha_s\)。

这个特性使训练高效: 我们可以随机选一个时间步,一步采样到加噪后的图像。


2. 反向过程 (生成)

前向过程是固定的,反向过程 \(p_{\theta}\) 才是学习发生的地方——模型学习如何撤销加噪操作。

从 \(\mathbf{x}_T \sim \mathcal{N}(\mathbf{0}, \mathbf{I})\) 开始,反向过程迭代地预测在 \(\mathbf{x}_t\) 条件下噪声稍小的图像 \(\mathbf{x}_{t-1}\):

\[ p_{\theta}(\mathbf{x}_{t-1} | \mathbf{x}_t) := \mathcal{N}\big(\mathbf{x}_{t-1};\, \boldsymbol{\mu}_{\theta}(\mathbf{x}_t, t),\, \boldsymbol{\Sigma}_{\theta}(\mathbf{x}_t, t)\big) \]

均值和方差由参数为 \(\theta\) 的神经网络预测。


使用变分推断进行训练

我们通过最大化数据对数似然来训练网络,使用**变分下界 (VLB) **(也称 ELBO) 。
该下界自然分解为不同时间步对应的项:

变分下界目标函数,分解为三个项: L_T、L_{t-1} 和 L_0。

VLB 分为 \(L_T\)、一组针对 \(t>1\) 的去噪项 \(L_{t-1}\) 以及用于最终重建的 \(L_0\)。

各项解释:

  • \(L_T\): 将最终噪声潜变量 \(\mathbf{x}_T\) 与标准高斯分布比较。前向过程固定,该项是常数,训练中忽略。
  • \(L_{t-1}\): 模型预测的反向步骤与前向过程真实后验分布之间的 KL 散度,这是核心去噪目标。
  • \(L_0\): 从 \(\mathbf{x}_1\) 解码出 \(\mathbf{x}_0\) 的重建项。

由于真实后验分布是高斯,这些 KL 散度有闭式解,训练稳定且高效。


是什么让 DDPM 如此出色?

早期扩散模型 (如 Sohl-Dickstein 等人,2015) 样本质量不高。DDPM 论文引入了关键设计选择和一个核心洞见,改变了游戏规则。


洞见: 预测噪声,而非均值

最直接方法是让网络预测 \(\tilde{\boldsymbol{\mu}}_t\),即前向过程后验分布的均值:

\[ L_{t-1} = \mathbb{E}_q \left[ \frac{1}{2\sigma_t^2} \|\tilde{\boldsymbol{\mu}}_t(\mathbf{x}_t, \mathbf{x}_0) - \boldsymbol{\mu}_\theta(\mathbf{x}_t, t)\|^2 \right] + C \]

注意: 在前向过程中,
\(\mathbf{x}_t = \sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t} \boldsymbol{\epsilon}\)。

将 \(\mathbf{x}_0\) 用 \(\mathbf{x}_t\) 和 \(\boldsymbol{\epsilon}\) 表示,可发现预测 \(\tilde{\boldsymbol{\mu}}_t\)等价于预测噪声 \(\boldsymbol{\epsilon}\)

因此作者将反向过程的均值重新参数化为:

反向过程均值的重新参数化,改为预测噪声而非直接预测均值。

\[ \boldsymbol{\mu}_{\theta}(\mathbf{x}_t, t) = \frac{1}{\sqrt{\alpha_t}} \left( \mathbf{x}_t - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}} \,\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_t, t) \right) \]

此处网络 \(\boldsymbol{\epsilon}_{\theta}\) 预测在第 \(t\) 步添加的噪声。


简化损失函数

通过这种参数化,损失函数简化为真实噪声与预测噪声之间简单的加权均方误差 (MSE) :

简化的损失项,即真实噪声与预测噪声之间的加权均方误差。

但加权项会弱化噪声较大的时间步 (大 \(t\)) 的重要性。
实验表明,直接去掉加权项反而提升了样本质量。

最终的简化目标函数是:

简化的目标函数 L_simple,即真实噪声与预测噪声之间的无加权均方误差。

\[ L_{\text{simple}}(\theta) \coloneqq \mathbb{E}_{t,\mathbf{x}_0,\epsilon} \big[ \|\boldsymbol{\epsilon} - \boldsymbol{\epsilon}_{\theta}(\sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t} \boldsymbol{\epsilon}, t)\|^2 \big] \]

简化的训练循环:

  1. 随机选择一张数据图像 \(\mathbf{x}_0\)。
  2. 随机选择时间步 \(t \in [1, T]\)。
  3. 采样高斯噪声 \(\boldsymbol{\epsilon}\)。
  4. 计算 \(\mathbf{x}_t = \sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t} \boldsymbol{\epsilon}\)。
  5. 将 \(\mathbf{x}_t\) 和 \(t\) 输入 U-Net 预测 \(\hat{\boldsymbol{\epsilon}}\)。
  6. 最小化 \(\boldsymbol{\epsilon}\) 与 \(\hat{\boldsymbol{\epsilon}}\) 的均方误差。

实验结果

作者在 CIFAR10、CelebA-HQ 和 LSUN 数据集上评估了 DDPM。

CIFAR10 的结果表,比较了 DDPM 模型与其他主流生成模型。

表 1: CIFAR10 分数。DDPM 取得了最先进的 FID (3.17) 和有竞争力的 Inception Score (9.46)。

FID (Fréchet Inception Distance,越低越好) 和 IS (Inception Score,越高越好) 指标证明了 DDPM 的顶级保真度。
在高分辨率数据上:

由 DDPM 生成的高质量 256×256 教堂图像。

图 3: LSUN Church 样本。FID = 7.89。

由 DDPM 生成的高质量 256×256 卧室图像。

图 4: LSUN Bedroom 样本。FID = 4.90。


消融研究: 为何 \(L_{\text{simple}}\) 如此重要

比较不同反向过程参数化和目标的消融研究表。

使用简化损失预测 \(\epsilon\) 的方法优于所有其他方案。
采用完整变分下界直接预测均值的基线方法明显较差。


率–失真分析: 好图像,似然度一般?

尽管 DDPM 生成的图像惊艳,但其对数似然落后于其他基于似然的模型。

作者认为 DDPM 像一个优秀的有损压缩器: 大部分比特用于建模感知上重要的大尺度特征,少量比特用于难以察觉的细节。

渐进式解码:
在反向过程的任意一步 \(t\),可估计:

\[ \hat{\mathbf{x}}_0 = \frac{\mathbf{x}_t - \sqrt{1 - \bar{\alpha}_t}\,\boldsymbol{\epsilon}_{\theta}(\mathbf{x}_t, t)}{\sqrt{\bar{\alpha}_t}} \]

DDPM 在 CIFAR10 上的率失真曲线。在低码率时失真迅速下降,说明重要特征优先被捕获。

图 5: 失真-码率关系——大部分可感知结构在低码率时即已重建。


可视化: 渐进式生成

反向过程中,大尺度结构先于精细细节出现:

渐进式生成: 噪声逐渐演变为飞机、鸟类和动物。

图 6: DDPM 的生成过程。先出现粗略轮廓,再生成清晰细节。


结论与影响

Denoising Diffusion Probabilistic Models 论文是生成建模领域的一个转折点:

  1. 稳定训练下实现了顶级生成质量——媲美顶尖 GANs 且无其训练不稳定问题。
  2. 噪声预测 (\(\epsilon\) 参数化) 和简化损失函数是解锁高质量的关键。
  3. 渐进式生成揭示了其与去噪分数匹配、朗之万动力学和有损压缩的深层联系。

这些思想奠定了现代扩散模型的基础,并被应用于 Stable DiffusionDALL·E 2 等系统,且扩展到图像以外的音频、视频和多模态生成。

通过展示逆转噪声如何实现高保真生成,这项工作不仅推出了新模型——还启发了我们看待创造本身的新角度。