Skip to content

Lecture 10: Diffusion Models 逻辑主线

本章的核心目标是回答一个问题:

如何从一个简单分布,例如高斯噪声,逐步生成复杂数据分布中的样本?

整章的“进化树”可以概括为:

text
DDPM 离散扩散
   ↓ 发现:采样慢,理论上可连续化
Score-based SDE
   ↓ 发现:反向生成只需要 score ∇ log q_t(x_t)
Denoising Score Matching
   ↓ 解决:真实 marginal score 不可得
Probability Flow ODE
   ↓ 发现:随机 SDE 可转为确定性 ODE
Flow Matching
   ↓ 直接学习从噪声到数据的 vector field
Accelerated Sampling
   ↓ 解决:1000 步采样太慢
DDIM / DPM-Solver / Distillation

Control & Classifier-Free Guidance
   ↓ 解决:生成结果如何服从文本条件
Text-guided diffusion / CFG

1. DDPM 回顾:离散扩散模型

重要程度:★★★★★

DDPM 的基本思想是:先定义一个固定的前向加噪过程,把真实数据逐步破坏成高斯噪声;再训练一个神经网络学习反向去噪过程,从噪声恢复数据。

1.1 Forward Process:数据到噪声

给定真实数据:

其中:

  • :原始数据样本,例如一张真实图像;
  • :真实数据分布;
  • :扩散时间步;
  • :第 步加入的噪声强度;
  • :标准高斯噪声。

前向扩散一步为:

等价地:

整个前向链为:

联合分布为:

直觉:每一步都把图像缩小一点,同时加入一点高斯噪声。随着 增大,图像结构逐渐消失,最后 接近标准高斯噪声。


1.2 Reverse Process:噪声到数据

重要程度:★★★★★

生成时从高斯噪声开始:

通常设:

反向一步建模为:

其中:

  • :神经网络预测的反向均值;
  • :反向采样噪声标准差,常取
  • :采样时额外注入的高斯噪声。

概率形式:

完整生成链:

直觉:前向过程是固定破坏数据;反向过程是学习如何一步步修复数据。


1.3 DDPM Training:预测噪声

重要程度:★★★★★

DDPM 常用的训练目标不是直接预测 ,而是预测加入到 中的复合噪声

利用重参数化:

其中:

  • :从 直接得到 的复合噪声。

训练目标:

其中:

  • :神经网络预测的噪声;
  • 输入是带噪图像 和时间步
  • 目标是让预测噪声接近真实复合噪声。

核心直觉:如果模型能准确预测噪声,就可以从 中减去噪声,从而逐步恢复数据。


2. 从离散扩散到连续时间 SDE

重要程度:★★★★★

DDPM 是离散时间模型。本章接下来把扩散过程看成“无限多小步”的极限,从而得到随机微分方程 SDE。

2.1 Forward Diffusion 的连续极限

离散前向一步:

令:

很小时:

因此:

,得到前向 SDE:

其中:

  • :状态的无穷小变化;
  • :drift term,确定性漂移项;
  • :diffusion term,随机噪声项;
  • :Wiener process,也就是布朗运动;
  • :连续时间噪声日程。

直觉:前向过程一方面把 往 0 拉,另一方面持续注入高斯噪声。最终分布接近标准高斯。


3. Reverse-Time SDE 与 Score Function

重要程度:★★★★★

前向 SDE 告诉我们如何从数据走向噪声。生成模型需要反过来,从噪声走回数据。

3.1 Reverse Generative SDE

前向 SDE:

对应的反向生成 SDE:

其中:

  • :时间 时刻的边缘分布;
  • :score function;
  • :反向时间中的 Wiener process;
  • 反向过程从 开始,模拟到

最关键的是:

它表示当前点 应该往哪个方向移动,才能更接近高概率数据区域。


3.2 Score Function

重要程度:★★★★★

Score function 定义为 log-density 对输入的梯度:

其中:

  • :数据分布密度;
  • :log-likelihood;
  • :指向密度增长最快方向的向量场。

直觉:如果某个点在低概率区域,score 会告诉它应该往哪个方向移动,才能进入更高概率区域。

在 diffusion 中,反向生成的本质就是学习每个噪声等级下的 score:


4. Reverse-Time SDE 的推导逻辑

重要程度:★★★★☆

一般前向 SDE:

其中:

  • :drift coefficient;
  • :diffusion coefficient;
  • :Wiener process。

小时间步转移:

所以:

反向转移由 Bayes rule 得到:

对密度做一阶展开:

完成 Gaussian completion 后:

因此反向时间 SDE 为:

注意这里的 是反向时间方向的微分。带入 VP-SDE 中:

得到:


5. Score Matching 与 Denoising Score Matching

重要程度:★★★★★

5.1 直接学习 score 的问题

自然想法是直接训练:

问题是:

不可计算。因为 是所有数据点扩散后的边缘混合分布,真实数据分布 本身也未知。

Why it fails:目标 score 是 marginal score,需要知道整个数据分布的密度,而真实图像分布无法显式写出。


5.2 Denoising Score Matching

解决方法:不直接学习不可得的 marginal score,而是学习可得的 conditional score。

条件扩散分布:

是高斯,因此可计算。

Denoising Score Matching 目标:

关键性质:

也就是说,虽然训练时用 conditional score,但期望意义下可以得到 marginal score。


5.3 DSM 与 DDPM 噪声预测的等价关系

设:

其中:

  • :信号系数;
  • :噪声标准差;
  • :标准高斯噪声。

条件分布:

其 score:

因此:

又因为:

所以:

令神经网络 score 写成:

则 DSM loss 变成:

这说明:DDPM 中预测噪声,本质上就是在学习 score。


6. Probability Flow ODE

重要程度:★★★★★

反向生成 SDE:

它在分布意义下等价于一个确定性 ODE:

这个 ODE 称为 Probability Flow ODE。

重要点:

  • SDE 的单条轨迹是随机的;
  • ODE 的单条轨迹是确定性的;
  • 但二者在每个时间 的边缘分布 相同;
  • 因此可以用 ODE solver 做采样。

直觉:SDE 是“带随机扰动的去噪”;Probability Flow ODE 是“确定性地沿概率流移动”。


7. Flow Matching

重要程度:★★★★★

Flow Matching 是本章第二条主线。它不从 score 出发,而是直接学习一个从简单分布流向数据分布的向量场。

7.1 Flow Model vs Diffusion Model

模型动态方程是否随机学习对象采样方式
Flow Modelvector field解 ODE
Diffusion Modeldrift / score / noise解 SDE 或 ODE

Flow model 的生成过程:

模拟到 ,得到:


7.2 Time-dependent Vector Field

定义:

其中:

  • :当前位置;
  • :时间;
  • :在时间 、位置 的瞬时速度。

轨迹满足 ODE:

也就是:

直觉:vector field 给每个点一个运动方向和速度。只要沿着这个速度场走,就能把初始分布运输到目标分布。


8. Conditional Probability Path

重要程度:★★★★★

给定一个目标数据点:

定义条件概率路径:

满足:

其中:

  • :初始简单分布,例如标准高斯;
  • :集中在 的 Dirac delta;
  • :从噪声分布逐渐收缩到目标点 的路径。

课件采用高斯条件路径:

其中:

  • :控制均值从 0 移向
  • :控制方差从 1 缩小到 0;
  • 维单位矩阵。

边界条件:

所以:

以及:

所以:


9. Conditional Vector Field

重要程度:★★★★★

对于任意条件概率路径,都存在一个等价的 vector field,使得:

对于高斯路径:

条件向量场为:

其中:

  • :在给定目标点 时,把样本 推向 的速度。

推导直觉:如果样本满足:

其中 固定,则:

又因为:

代入:

整理:

这就是课件中的 conditional vector field。


10. Marginal Probability Path and Vector Field

重要程度:★★★★☆

真实生成不是只生成某一个固定 ,而是生成整个数据分布。

令:

定义 marginal probability path:

其中:

  • :时间 的边缘分布;
  • :给定目标数据点 的条件路径;
  • :真实数据分布。

对应的 marginal vector field:

注意分式部分:

实际上就是 posterior:

所以:

直觉:在位置 上,可能有很多目标数据点 可以解释这个中间状态。marginal vector field 是这些条件速度的后验平均。

Why it fails:真实 不知道,积分不可计算,所以 无法显式写出。

How it fixes:训练神经网络 去逼近这个向量场。


11. Flow Matching Loss

重要程度:★★★★★

理想 Flow Matching loss 是:

问题是 是 marginal vector field,包含不可计算积分。

于是改用 Conditional Flow Matching:

关键结论:最小化 等价于最小化

直觉:虽然训练时用的是条件目标 ,但是在期望意义下,网络最终学到的是 marginal vector field

这和 Denoising Score Matching 的逻辑非常像:

问题不可直接训练的目标可训练替代目标最终学到
Score-based diffusionmarginal score
Flow Matchingmarginal vector field

12. Gaussian CFM Loss 的具体化

重要程度:★★★★★

对高斯路径:

采样:

条件向量场:

代入

展开:

中间两项抵消:

所以:


13. 最简单的 Optimal Transport Path

重要程度:★★★★★

课件选择:

于是:

条件路径:

采样公式:

目标速度:

因此 CFM loss 变成:

训练流程:

text
1. 采样数据 z ~ p_data
2. 采样时间 t ~ U(0,1)
3. 采样高斯噪声 epsilon ~ N(0,I)
4. 构造中间点 x = t z + (1-t) epsilon
5. 神经网络预测速度 u_hat_t(x)
6. 用目标速度 z - epsilon 做 MSE 监督

这是 Flow Matching 的核心公式,期末很可能考。


14. 加速采样:DDIM

重要程度:★★★★☆

DDPM 慢的根本原因:每次生成需要调用 次,典型

DDIM 的目标:少步采样,并允许确定性采样。

回忆:

从当前 估计

估计噪声:

DDIM 采样:

其中:

  • :由当前 预测的干净图像;
  • :预测噪声;
  • :控制随机性。

如果:

则 DDIM 是确定性的。

DDIM 可以只在子序列时间点采样:

更新为:

核心思想:不必走完所有 个时间步,只走 个时间步。


15. DPM-Solver

重要程度:★★★★☆

DPM-Solver 的核心思想是:不要把 diffusion ODE 当成普通黑箱 ODE,而是利用它的半线性结构。

从参数化 diffusion ODE 开始:

其中:

  • :关于 的线性项;
  • :非线性神经网络项;
  • :噪声尺度;
  • :扩散系数。

利用 variation of constants formula,精确解:

将线性项写成 diffusion coefficient:

得到:

引入:

得到:

此时问题变成:计算一个带已知指数核 的积分。

DPM-Solver 对神经网络项做 Taylor 展开:

代入积分:

保留 项,就得到 -th order solver。

核心直觉:DPM-Solver 不是粗暴数值积分,而是利用 diffusion ODE 的特殊结构,把线性部分精确处理,只近似神经网络非线性部分,因此可以十几步完成高质量采样。


16. Distribution Matching Distillation

重要程度:★★★☆☆

课件只简要提到 DMD:

  • Distribution Matching Distillation;

  • 目标是把多步 diffusion model 蒸馏成一步或少步生成模型;

  • 代表工作包括:

    • One-step diffusion with distribution matching distillation, CVPR 2024;
    • Improved distribution matching distillation for fast image synthesis, NeurIPS 2024。

期末若考,重点记住:DMD 属于 sampling acceleration / distillation 路线,目标是极大减少采样步数。


17. Stable Diffusion 与 Text Guidance

重要程度:★★★★☆

Stable Diffusion 是 2022 年发布的 text-to-image 模型。它的关键结构是:

text
text prompt y
   ↓ text encoder
text embedding τ(y)
   ↓ cross-attention
latent diffusion model / noise predictor εθ(z_t,t,y)
   ↓ iterative denoising
generated image

训练目标:

其中:

  • :文本 prompt;
  • :文本编码器输出的 text embedding;
  • :latent space 中的带噪变量;
  • :带文本条件的噪声预测器。

Text guidance 的直觉:每一步去噪时,文本 embedding 都提醒模型:“当前图像应该更像 prompt 描述的内容”。


18. Classifier Guidance 与 Classifier-Free Guidance

重要程度:★★★★★

18.1 Vanilla Guided Sampling

给定条件 ,直接训练一个条件向量场:

采样流程:

text
1. 选择 prompt y,例如 "a cat baking a cake"
2. 初始化 X_0 ~ p_init
3. 模拟 dX_t = u_t^\theta(X_t | y) dt,从 t=0 到 t=1

问题:vanilla guidance 可能不够强,生成图像和 prompt 对齐不好。


18.2 Classifier Guidance 的直觉

目标条件分布:

由 Bayes rule:

取 log:

求梯度:

所以 guidance 可以理解为:

课件图中写作:

其中:

  • :无条件生成方向;
  • :prompt-dependent part;
  • :与噪声日程相关的缩放系数。

进一步增强 prompt 对齐:

其中 是 guidance scale。 越大,prompt 约束越强,但过大可能导致过饱和、失真、多样性下降。


18.3 Classifier-Free Guidance

Classifier guidance 需要额外训练 classifier ,而 CFG 不需要外部 classifier。

核心观察:

可以近似看作 prompt-dependent direction。

于是放大这个差值:

等价展开:

课件给出的 CFG 采样向量场为:

其中:

  • :空 prompt,即 unconditional prediction;
  • :有条件 prompt prediction;
  • :CFG scale;
  • :空文本 token。

这就是实际生成模型中最重要的控制公式之一。


18.4 CFG Training:为什么要有 empty token

训练时需要让同一个模型同时支持:

和:

所以训练过程中会随机把一部分文本条件替换为空 token 。这样模型既会有条件生成,也会无条件生成。

采样时同一个 跑两次模型:

text
conditional prediction:   uθ(x_t | y)
unconditional prediction: uθ(x_t | ∅)
combine: (1-w)uθ(x_t|∅) + w uθ(x_t|y)

18.5 CFG 的本质与局限

重要程度:★★★★★

CFG 很有效,但它不是严格的数据分布建模。

时:

近似正常条件生成。

时:

这意味着模型沿 prompt-dependent direction 走得比真实条件分布更远。

所以课件强调:

CFG is a heuristic. We do not model the data distribution anymore. We go beyond it.

也就是说,CFG 牺牲严格概率建模,换取更强的 prompt adherence 和更好的视觉效果。


19. 总结对比表

方法核心学习对象主要公式解决的问题局限
DDPM噪声 $\epsilon-\epsilon_\theta(x_t,t)^2$从噪声逐步生成数据采样慢
Score-based SDEscore 连续时间统一建模marginal score 不可直接得
DSMconditional score让 score 可训练仍需多步采样
Probability Flow ODEdeterministic flow用 ODE 替代 SDE需要数值求解
Flow Matchingvector field 直接学习噪声到数据的流仍需 ODE 采样
DDIM少步采样路径, 更新加速 DDPM步数太少会降质
DPM-Solver高阶 ODE solver指数核积分近似十几步高质量采样数学复杂
CFG条件控制方向$(1-w)u(x\emptyset)+wu(xy)$强化 prompt 对齐不再严格建模真实分布

20. 期末复习优先级

最高优先级:

text
1. DDPM forward / reverse / training loss
2. 离散扩散到 SDE 的推导
3. reverse SDE 中 score 的作用
4. DSM 如何把不可得 marginal score 转成 conditional score
5. DSM 与噪声预测的等价性
6. Probability Flow ODE
7. Flow Matching 的 conditional path、conditional vector field、CFM loss
8. CFG 公式与直觉

中高优先级:

text
1. DDIM 采样公式
2. DPM-Solver 的半线性 ODE 结构
3. Stable Diffusion 中 text embedding 通过 cross-attention 注入

较低但需知道:

text
1. DMD 是用于 one-step / few-step diffusion distillation
2. Runge-Kutta、Heun、exponential integrator 等属于 continuous-time solver 家族

核心记忆句:

扩散模型从 DDPM 的“离散噪声预测”发展到 Score-SDE 的“连续 score 学习”,再到 Probability Flow ODE 和 Flow Matching 的“确定性向量场建模”;采样加速方法解决多步生成效率问题,而 CFG 解决文本条件控制问题,但 CFG 本质是经验性地放大条件方向,并不再严格对应真实数据分布。

Static academic notes built with VitePress and KaTeX.