扩散模型是一类生成模型,通过学习”把噪声逐步变成数据”的过程来合成样本(如图像、音频、视频、动作序列)。
核心思想
- 正向扩散:从真实数据出发,逐步加入高斯噪声,直到变成近似纯噪声的分布。
- 反向去噪:训练一个神经网络(常用 U-Net/Transformer)在给定时间步 t 和条件信息下,预测并去除噪声,逐步把噪声还原为逼真的样本。
- 学习目标:常用“噪声预测”损失(让模型预测加入的噪声),或“得分匹配”(学习∇x log p(x))。训练稳定、易收敛。
如何用
- 训练步骤(简化):
- 随机取一条数据 x0 和时间步 t;
- 向 x0 加噪得到 xt;
- 模型 f(xt, t, 条件) 预测噪声或得分;最小化预测与真实噪声的差。
- 采样步骤(简化):
- 从高斯噪声 xT 开始;
- 由 t=T→1 迭代,使用模型去噪,逐步得到 x0(生成样本)。 采样可用 DDPM、DDIM、SDE/ODE 求解器、DPM-Solver、Consistency 等加速方法。
条件与控制
- 条件生成:在文字、类别、草图、边缘、深度等条件下生成(通过交叉注意力、条件嵌入)。
- 引导:分类器引导、无分类器引导(classifier-free guidance)调节“对条件的服从”与多样性。
- 结构控制:如 ControlNet、Adapter 等在采样中注入结构信号。
变体与工程技巧
- 潜空间扩散(Latent Diffusion):先用 VAE 把图像压到低维潜空间,再做扩散,显著加速采样(如 Stable Diffusion)。
- 参数化形式:ε预测、x0 预测、v 预测;不同形式影响稳定性与细节。
- 时间步与噪声日程:设计/学习 beta 噪声表、连续时间 SDE 等影响质量与速度。
- 蒸馏与少步采样:通过蒸馏/一致性训练把几十上百步压缩到少数步。
优缺点
- 优点:生成质量高、模式覆盖好、训练稳定、不易崩溃(相较 GAN)、可计算似然下界。
- 缺点:采样迭代多、推理慢、算力开销大;需用加速与蒸馏技术缓解。
应用
- 文本到图像、图像编辑/修复/上色/超分、视频生成、语音与音乐合成、3D/NeRF(通过得分蒸馏)、机器人控制(Diffusion Policy 生成动作片段)等。
一句话总结
- 扩散模型把“生成”变成“从噪声逐步去噪”的问题,凭借稳定训练与强表达能力,已成为通用的高质量生成范式。