14. Diffusion 模型的基础原理是什么?DDPM、DDIM、CFG 各起什么作用?
整理 Diffusion 模型的基础原理,以及 DDPM、DDIM、CFG 的作用。
简单回答
Diffusion 模型的核心思想是学习一个"去噪"过程:通过前向过程向数据逐步添加高斯噪声,再训练一个神经网络学习反向的去噪过程,从纯噪声中恢复出真实数据。DDPM 是奠基性的概率去噪框架;DDIM 是加速采样的改进,把采样步数从千步降到几十步;CFG(Classifier-Free Guidance)是控制生成质量和多样性之间权衡的关键机制。三者一起构成了现代图像生成(Stable Diffusion 等)的技术基础。
详细解答
前向过程:把数据变成噪声
Diffusion 模型的前向过程是把真实图像 通过 步逐渐加入高斯噪声,最终变成纯高斯噪声 。每一步加噪公式为:
其中 是每步的噪声强度(noise schedule),随时间增大。
前向过程有一个很好用的性质:可以用闭合公式直接从 跳到任意时间步 的结果,不需要逐步迭代:
其中 。这意味着给定原图 和时间步 ,可以直接采样任意噪声程度的图片,这在训练时很重要。
DDPM:反向去噪学习
DDPM(Denoising Diffusion Probabilistic Models,Ho et al. 2020)学习反向过程——从 (纯噪声)逐步去噪恢复到 (真实图像)。
反向过程的每一步需要估计:
实际训练时,并不直接预测均值 ,而是训练一个神经网络(通常是 U-Net)来预测每步添加的噪声 ,损失函数简化为:
即:在给定加噪图片 和时间步 的条件下,让网络预测出原来加的噪声是什么,再用预测的噪声去反算 。
DDPM 的问题是采样太慢——需要逐步执行 1000 步反向扩散才能生成一张图,实际应用中耗时几十秒到几分钟,不实用。
DDIM:加速采样
DDIM(Denoising Diffusion Implicit Models,Song et al. 2020)的核心贡献是把 DDPM 的马尔可夫链采样变成了一个非马尔可夫的确定性过程,可以用更少的步数(10~50 步)达到和 DDPM 1000 步相近的生成质量。
直觉上理解:DDIM 每次去噪不是只看 和相邻时间步,而是可以"跨步"——直接从 跳到 ,每步跨越多个时间步,采样总步数大幅减少。
当 时,整个过程是确定性的(给定相同初始噪声,每次生成相同结果),这也让图像编辑(把真实图片"反向编码"到噪声再重新生成)变得可能。
DDIM 是目前 Stable Diffusion 等模型默认采样器,通常用 20~50 步就能生成高质量图片。
CFG:生成质量和多样性的控制旋钮
CFG(Classifier-Free Guidance,Ho & Salimans 2021)是解决条件生成问题的关键技术,也是控制"文本对图片影响程度"的主要手段。
问题背景:文生图模型需要根据文本 prompt 生成图片,但如果只用条件噪声预测 ( 是文本条件),生成的图片往往不够"忠实"于 prompt——图片可以,但不够贴近文字描述。
CFG 的做法:同时训练有条件和无条件的噪声预测,推理时把两者的差值放大作为最终的去噪方向:
其中 表示无条件(空文本), 是 guidance scale(通常 7~15),控制文本影响的强度。
- :只用条件预测,最大多样性,文本控制弱
- :放大文本和无文本预测的差距,更"忠实"于 prompt,但多样性下降, 过大会出现过饱和的伪影
- 典型使用: 是 Stable Diffusion 的默认值,在质量和多样性之间有不错的平衡
CFG 实现简单但效果显著,是所有主流文生图模型的标配。推理时每步需要跑两次模型(有条件和无条件各一次),计算量翻倍,这是它的主要代价。
这三者与现代架构的关系
Stable Diffusion 是在 DDPM + DDIM + CFG 基础上的工程化系统,加了两个关键改进:把扩散过程从像素空间移到潜在空间(Latent Diffusion,大幅降低计算量);用 U-Net 加 Cross-Attention 来注入文本条件(Cross-Attention 把文本 token 的特征注入到 U-Net 的每个分辨率层)。DALL-E 3、Midjourney 等商用系统在这个基础上进一步扩展了 Transformer-based 的 Diffusion backbone(DiT)。
面试时可以这样答
Diffusion 模型的思路是:先学一个"反向去噪"过程,从纯噪声逐步恢复成真实图片。训练目标是给定加噪的图片和时间步,预测出原来加的噪声是什么,损失就是预测噪声和真实噪声的 MSE。
DDPM 是奠基框架,1000 步逐步去噪,质量好但太慢。DDIM 改成非马尔可夫的确定性采样,可以跨步,20~50 步就能得到接近的质量,是现在推理的标准方式。
CFG 是控制生成质量和多样性的旋钮。思路是同时预测有条件(带 prompt)和无条件的噪声,推理时放大两者的差值,差值越大图片越"忠实"于 prompt,但多样性下降。Guidance Scale 通常设 7~15,默认 7.5,过大会有过饱和伪影。
现代系统(Stable Diffusion)在此基础上把扩散过程移到了低维潜在空间(Latent Diffusion),用 Cross-Attention 注入文本条件,大幅降低了计算量。
常见追问
- Latent Diffusion(潜在扩散)和在像素空间做扩散相比,有什么核心代价?
- DiT(Diffusion Transformer)相比 U-Net 架构有什么优势?DALL-E 3 为什么用 Transformer?
- 图像编辑(DDIM Inversion)的具体流程是什么?