AI 与大模型 · 第 11 期 · 第二季第 3 期

扩散模型,从噪声里挖出一张图

前向加噪 / 反向去噪 · DDPM 原理

一句话结论:扩散模型不是"生成",是"去噪"。前向把图一点点加噪声直到纯噪声,反向训练一个网络学会"从噪声里减一点噪声",重复 1000 步,图就长回来了。生成时从纯噪声开始去噪,等于从噪声里"挖"出一张图。
⏱ 约 9 分钟 🎯 想搞懂AI画图原理的人 📦 源:ai-engineering-from-scratch §9

01反共识:它不是生成,是去噪

GAN 是"对抗生成",VAE 是"编码再解码",扩散模型完全不同——它是"破坏再修复"。

前向过程(加噪):给一张清晰图 x₀,每步加一点高斯噪声,第 t 步得到 xₜ,加到第 T 步(如 1000 步)变成纯噪声 x_T。这个过程不需要训练,是固定的马尔可夫链。

xₜ = √(αₜ) · xₜ₋₁ + √(1−αₜ) · ε  (ε 是高斯噪声)

反向过程(去噪):训练一个网络 ε_θ(xₜ, t),输入"噪声图 + 当前步数",预测"加了什么噪声"。把预测的噪声减掉,得到稍微清晰一点的 xₜ₋₁。重复 T 步,从纯噪声 x_T 一路去噪回 x₀。生成 = 从纯噪声开始反向去噪。

不是"凭空生成",
是"从噪声里挖"。
灏天文库 · AI 与大模型 P.32

02前向加噪演示:拖滑块看图被噪声吞掉

拖动时间步 t(0=清晰,1000=纯噪声),看一张图怎么一步步被噪声吞没。这就是扩散模型要学的"反向过程"的起点。

🎨 前向加噪演示
拖滑块看图被噪声吞掉,理解反向去噪要恢复什么。
0
x₀ · 清晰原图

03三个关键设计选择

一个常见误解:扩散慢是因为步数多。其实更深的瓶颈是每步要跑一次 U-Net 前向(几百 MB 模型)。所以加速方向是减少前向次数(少步采样)或蒸馏小模型,而不是单纯减步数。

慢不在步数,
在每步要跑一次大网络。
灏天文库 · AI 与大模型 P.33

04带走这套原理清单

✅ 扩散模型 6 条原理规则

  1. 本质是去噪不是生成:前向加噪固定,反向去噪要训练。
  2. 前向不需训练:固定马尔可夫链,加高斯噪声到纯噪声。
  3. 反向训练噪声预测:网络预测"加了什么噪声",减掉它。
  4. 生成=从纯噪声反向去噪:重复 T 步从噪声挖出图。
  5. 加速靠少步采样+蒸馏:DDIM/LCM 砍到 20-50 步。
  6. 条件控制用 CFG:有条件减无条件,放大条件方向。
先学会破坏,
再学会修复,
生成就是反向走。
灏天文库 · AI 与大模型 P.34