斯坦福 CS229 第11讲(2026春季):扩散模型 – 核心概念与训练

TL;DR

扩散模型通过学习逆转固定的高斯噪声过程来生成高质量图像;它们优于 GAN 和 VAE,并使用 ELBO 风格的损失进行训练,将中间的噪声图像视为潜在变量。


1. 什么是扩散模型

  • 目标: 给定自然图像数据集(分布 $p_{data}$),学习一个生成模型 $p_\theta$,能够采样出与训练集无法区分的新图像。
  • 关键思路: 从纯高斯噪声 $x_T$ 开始,使用学习到的逆向马尔可夫链 $p_\theta(x_{t-1}\mid x_t)$ 迭代去噪,直至得到干净的图像 $x_0$。
  • 重要性: 该方法取代了 GAN 和变分自编码器(VAE)成为主流的图像生成技术,因为它提供了更稳定的训练和更高的样本保真度。

2. 前向(加噪)过程

  • 前向过程 $q$ 是固定的,并以小步添加高斯噪声:

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

  • $\beta_t$ 是一个小标量(例如 $10^{-2}$ 到 $10^{-4}$)。对 $t=1\dots T$ 重复此过程会得到一个随着 $T$ 增大而收敛到标准正态分布的分布。

  • 累积乘积 $\bar\alpha_t = \prod_{i=1}^t (1-\beta_i)$ 会削弱原始图像的信号;当 $t\to\infty$ 时,$\bar\alpha_t\to0$,$x_T$ 变为纯高斯噪声。

3. 逆向(去噪)过程

  • 逆向动力学是学习得到的:神经网络 $\mu_\theta(x_t, t)$ 预测高斯分布的均值 $p_\theta(x_{t-1}\mid x_t) = \mathcal N(\mu_\theta(x_t, t), \sigma_t^2 I)$。
  • 方差 $\sigma_t^2$ 通常是固定的(由前向噪声计划推导),而不是学习得到的。
  • 虽然前向过程在给定 $x_{t-1}$ 时是确定性的,但逆向过程必须保持随机性,因为多个前向轨迹可能导致相同的噪声状态 $x_t$。因此高斯分布是自然的选择,在连续时间极限下,真实的逆向过程可证明是高斯的(经典的随机微分方程结果)。

4. 训练目标 – ELBO / 变分下界

  • 潜在变量视角: 将完整的噪声轨迹 $x_{1:T}$ 视为观测到的干净图像 $x_0$ 的潜在变量 $z$。
  • ELBO 推导: $$ \log p_\theta(x_0) \ge \mathbb E_{q(x_{1:T}\mid x_0)}\big[\log p_\theta(x_{0:T}) - \log q(x_{1:T}\mid x_0)\big] $$ 这展开为真实前向条件分布 $q(x_{t-1}\mid x_t, x_0)$ 与学习的逆向条件分布 $p_\theta(x_{t-1}\mid x_t)$ 之间的 KL 散度之和,加上对 $x_0$ 的重建项。
  • KL 的链式法则: 利用马尔可夫性质,联合轨迹之间的 KL 可以分解为每一步 KL 的和,每一步比较两个高斯分布。每一步的损失简化为预测均值 $\mu_\theta$ 与解析已知的后验均值 $\tilde\mu_t(x_t, x_0)$ 之间的加权平方误差。
  • 实际损失: 大多数实现使用简化的噪声预测损失: $$ L_t = |\epsilon_t - \epsilon_\theta(x_t, t)|^2, $$ 其中 $\epsilon_\theta$ 预测注入的噪声。这在数学上等价于 KL 基础的 ELBO(常数项除外)。

5. 为什么不一次性去噪?

  • 直接将 $x_T$ 映射到 $x_0$ 需要学习一个在单一步骤中压缩所有信息的高度非线性函数,使得优化变得困难。
  • 逐步的多步逆向链提供更平滑的梯度和良好的目标函数,类似于课程学习的优势。

6. 与其他生成模型的关联

  • GAN / VAE: 两者都需要对抗或编码器‑解码器训练。扩散模型避免了对抗不稳定性且不需要学习的编码器;前向过程是解析定义的。
  • 自回归模型: 对于给定的时间步,扩散推断可以在所有像素(或块)上并行进行,相比严格的顺序自回归采样可能具有速度优势。
  • 语言与机器人: 最近的工作将扩散模型扩展到文本生成和机器人动作规划,通过将 token 序列或动作轨迹视为连续数据并使用相同的前向‑逆向框架。

7. 连续时间视角(可选)

  • 当 $\Delta t \to 0$ 时,前向过程变为随机微分方程(SDE): $$ d x_t = -\frac{1}{2}\beta(t) x_t,dt + \sqrt{\beta(t)},dW_t, $$ 其中 $W_t$ 为布朗运动。
  • 逆向 SDE 具有相同的扩散项,但漂移项取决于得分函数 $\nabla_{x_t}\log p_t(x_t)$。使用神经网络对漂移进行参数化即可恢复离散时间的逆向链。

8. 实践要点

  • 模型架构: 通常使用 U‑Net 或基于 transformer 的主干网络来预测每个时间步的 $\epsilon_\theta$。
  • 训练计划: 选择噪声计划 $\beta_1\dots\beta_T$(线性或余弦),在早期保持信号、后期快速扩散之间取得平衡。
  • 采样速度: 最近的研究通过学习更好的计划或使用蒸馏将逆向步骤数从数千降低到仅 4–10 步,但原始方案使用数千步。
  • 实现资源: 斯坦福的讲义(在视频描述中链接)包含完整的推导和伪代码。

本文基于斯坦福 CS229 2026 春季关于扩散模型的讲座文字记录。所有公式和论断均直接取自讲师的阐述,未添加外部事实。

Sources