GAN 通过两个网络对抗学习生成分布;Diffusion 选择一条更直接却更慢的路线:先把真实图像一步步破坏成噪声,再学习把每一步倒放回来。
一、扩散模型的位置
常见生成模型包括 VAE、GAN、Flow-based Model、Energy-based Model 和 Diffusion Model。扩散模型的典型特点是:
- 训练目标稳定;
- 图像质量高、模式覆盖和多样性好;
- 生成时需要反复去噪,采样较慢。
二、前向与反向两个过程

从真实图像 x0 出发:
- 前向扩散 q:按预先规定的噪声日程不断加入高斯噪声,最终得到近似标准高斯噪声 xT;
- 反向生成 pθ:让神经网络逐步预测并去掉噪声,从 xT 还原到 x0。
前向过程不需要学习,反向过程才包含模型参数。
三、DDPM 的单步前向过程
每一步的马尔可夫转移为
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI),
其中 βt∈(0,1) 控制第 t 步加入多少噪声。
利用重参数化,可以直接采样:
xt=1−βtxt−1+βtϵ,ϵ∼N(0,I).
第一项逐渐缩小原图信息,第二项加入随机噪声。恰当缩放可以让整个过程的方差保持可控。
四、为什么可以一步跳到任意时刻
定义
αt=1−βt,αˉt=s=1∏tαs.
把多个高斯转移合并后,可以直接从 x0 得到任意 xt:
q(xt∣x0)=N(xt;αˉtx0,(1−αˉt)I),
即
xt=αˉtx0+1−αˉtϵ.
这是训练能够高效进行的关键:不用真的从第 1 步循环到第 t 步,只需随机抽一个 t,一次就构造出对应噪声图。
五、噪声调度要满足什么
前向过程需要兼顾:
- T 足够大时,xT 应接近标准高斯;
- 单步噪声不能太大,否则反向过程难以近似为高斯;
- 每个中间状态都应容易采样和计算。
课件中的 DDPM 例子采用 T=1000,βt 从约 10−4 逐渐增加到 0.02。初期图像信息丰富,所以每步少加噪;后期已经接近噪声,可以加得更多。
六、反向过程怎样建模
真实的 q(xt−1∣xt) 不容易直接求,但当每一步 βt 足够小时,反向转移也可以近似为高斯:
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),σt2I).
因此模型只需预测这个高斯分布的参数。DDPM 最常见的等价做法不是直接预测干净图,也不是直接预测均值,而是让网络预测加进去的噪声:
ϵθ(xt,t)≈ϵ.
训练损失可简化成
Lsimple=Ex0,ϵ,t[∥ϵ−ϵθ(xt,t)∥2].
它就是一个清晰的均方误差目标,因此比 GAN 的对抗训练稳定得多。
七、为什么使用 UNet
去噪任务的输入和输出具有相同空间尺寸,既需要高级语义,又必须保留精细位置,因此适合使用编码器—解码器结构:
- 编码器逐步下采样,理解全局内容;
- 解码器逐步上采样,恢复空间细节;
- 跳跃连接把浅层细节送到对应解码层;
- ResNet Block 和 Self-Attention 提高表达能力;
- 时间步 t 编码告诉网络当前噪声强度。
条件扩散还可以通过 cross-attention 注入文本等条件,使模型按照提示生成图像。
八、训练与采样的差别
训练时可以随机选择一个时间步,一次构造 xt 并预测噪声,因此高度并行。生成时却必须从 xT 开始,按 T,T−1,…,1 逐步运行网络。
这解释了扩散模型的主要权衡:训练稳定、质量高,但原始采样要执行几百到上千次网络前向。DDIM、蒸馏等方法都在尝试减少去噪步数。
九、GAN 与 Diffusion 对比
| 维度 | GAN | Diffusion |
|---|
| 学习方式 | 生成器与判别器对抗 | 逐时刻噪声预测 |
| 训练稳定性 | 较难平衡 | 目标较稳定 |
| 生成速度 | 一次前向,快 | 多步去噪,慢 |
| 模式覆盖 | 可能模式崩溃 | 通常更全面 |
| 典型优势 | 快、图像锐利 | 高质量、高多样性 |
本讲速记
- 前向过程固定加噪,反向过程由网络学习去噪,二者都是马尔可夫链。
- 单步公式:xt=1−βtxt−1+βtϵ。
- 一步公式:xt=αˉtx0+1−αˉtϵ。
- 训练随机抽 t,让 UNet 预测噪声;生成必须按时间倒序迭代。
- 扩散模型训练稳定、质量和多样性好,代价是采样慢。