扩散模型 (Diffusion Models)¶
背景知识
扩散模型是当前图像、视频、音频生成的主流技术路线。本文档聚焦其核心原理和关键改进。
相关文档:多模态 AI | Transformer 架构
1. DDPM (Denoising Diffusion Probabilistic Models)¶
DDPM 是扩散模型的基础架构,通过学习去噪来生成图像。
1.1 核心思想¶
学习去噪:从纯噪声逐步还原成清晰信号。DDPM 将这个过程形式化为一个前向加噪、反向去噪的概率模型。1
两阶段过程:
前向(构建训练数据):
清晰图 x₀ → 加一点噪声 → x₁ → 加噪声 → x₂ → ... → x_T (纯噪声)
反向(训练模型):
纯噪声 x_T → 去一点噪声 → x_{T-1} → 去噪声 → ... → x₀ (生成图)
注:上图是概念性展示。实际训练时使用重参数化技巧,从 \(x_0\) 一步计算得到任意 \(x_t\),无需逐步迭代。
直觉类比: - 前向过程:像"毁掉"一张图,一步步加噪声直到完全模糊 - 反向过程:训练神经网络学会"修复",从模糊图猜原图长什么样 - 生成时从纯噪声开始,一步步"修复"成清晰图
1.2 推理流程(从纯噪声生成)¶
从纯噪声 \(x_T\) 开始,每步去噪后重新添加噪声(用 \(\sigma_t\)),保持扩散过程的随机性,逐步得到 \(x_{T-1}, x_{T-2}, ..., x_0\)(生成图)。
\(\sigma_t\) 的作用: - 重新添加噪声的标准差参数,通常 \(\sigma_t = \sqrt{\beta_t}\) - 保持扩散过程的随机性,避免推理过程完全确定性 - 确保生成的样本具有多样性
1.3 DDPM 的局限性¶
- 采样速度慢:需要多步去噪(通常 1000 步)
- 在像素空间扩散:计算量大,高分辨率图像生成困难
2. 关键改进¶
2.1 DDIM (Denoising Diffusion Implicit Models)¶
通过修改推理过程实现加速,可以用更少的步数达到类似质量。2
核心改进: - DDPM 需要 1000 步采样,DDIM 可以用 50 步达到类似质量 - 实现非马尔可夫采样,跳过中间步骤 - 推理过程可以是确定性的(可设置),便于一致性和可控性
技术原理: DDIM 的核心洞察是:同一个训练好的 DDPM 模型,可以对应多个不同的反向过程,只要它们的边际分布一致。DDPM 每步去噪后必须重新添加随机噪声,而 DDIM 用模型预测的噪声替代随机噪声,因此可以是确定性的。由于公式结构改变,不依赖中间步骤,可以直接跳步。
直觉类比: - DDPM:像走楼梯,必须一级一级走完,每步都要重新买票(加随机噪声) - DDIM:像坐电梯,可以直接跳到目标楼层,沿着相同的"轨道"(噪声调度)行驶
2.2 Flow Matching¶
基于连续正规化流(Continuous Normalizing Flows, CNFs)的生成建模范式,通过学习向量场实现从噪声到数据的连续变换。3
核心概念: - 向量场 v_t(x):在时刻 t,位置 x 的粒子应该往哪个方向移动 - 连续变换:将整个生成过程建模为连续的"流动",而非离散步骤 - 概率路径:定义从噪声分布到数据分布的变换路径,扩散路径只是其中一种特例
与 DDPM 的区别:
| 维度 | DDPM | Flow Matching |
|---|---|---|
| 变换方式 | 离散的逐步去噪 | 连续的向量场 |
| 训练目标 | 学习去噪 | 回归向量场 |
| 推理方式 | 固定步数迭代 | ODE 求解器数值积分 |
| 路径选择 | 固定的扩散路径 | 可选多种路径(扩散/OT 等) |
为什么更快?
DDPM 每步必须重新加随机噪声,步数固定(通常 1000 步)。Flow Matching 用 ODE 求解器进行数值积分:
- 自适应步长:求解器可以根据向量场的平滑程度自动调整步长
- 跳过中间点:可以用更大的步长直接"跳"到目标状态
- 无需重加噪声:沿着向量场连续流动,不需要每步重新采样噪声
技术优势: - 采样步数更少,速度更快 - 训练过程更稳定 - 兼容多种概率路径(如最优传输 OT 路径),可以进一步优化生成质量
3. 已知问题¶
3.1 视频生成的特殊挑战¶
视频生成相比图像生成面临额外的挑战,主要源于时间维度的引入。
| 挑战 | 具体问题 | 图像生成无此问题 |
|---|---|---|
| 帧间一致性 | 同一个人不能变脸、物体不能突然消失 | 单帧无时间维度 |
| 物理合理 | 重力、碰撞、流体运动要符合物理规律 | 静态图像无物理约束 |
| 镜头运动平滑 | 相机运动不能抖动、跳变 | 无相机运动 |
技术手段: - 3D 注意力:空间+时间联合 attention(Sora 的做法)。将视频切成时空立方体(如 2 帧×16×16),一次编码空间+时间 - Temporal super-resolution:先生成低帧率(如 8fps),再插帧到高帧率(24fps/30fps) - 运动先验:利用光流(optical flow)等运动信息指导生成,保证运动连贯
核心差异: - 图像生成:2D 空间去噪,关注单帧质量 - 视频生成:3D 时空去噪,关注帧间连贯性和物理合理性
4. 与自回归对比¶
| 维度 | 扩散模型 | 自回归(GPT) |
|---|---|---|
| 生成方式 | 整体去噪,并行处理 | 逐 token 顺序生成 |
| 适用模态 | 图像/音频/视频(连续) | 文本(离散) |
| 采样速度 | 慢(需要多步去噪) | 慢(需要顺序生成) |
| 质量控制 | 通过条件引导(文本、图像等) | 通过 prompt 引导 |
为什么图像不用自回归? - 图像像素太多(224×224×3 = 15万),逐像素预测太慢 - 连续空间的自回归效果不如扩散
为什么文本不用扩散? - 文本天然离散,自回归更合适 - 扩散模型在离散空间效果不好