
扩散模型的核心可以压缩成一句话:训练时学会从任意噪声强度下恢复数据方向,生成时从标准高斯噪声出发,重复执行这个去噪步骤。
它和 VAE、GAN 一样,目标都是从简单分布生成复杂数据;不同之处在于,它把一次困难的映射拆成了许多小的随机转移。本文以 DDPM 为主线解释这一过程。
前向扩散:把数据逐渐变成高斯噪声
设真实样本 x0∼q(x)。DDPM 定义一个固定的马尔可夫链,每一步加入少量高斯噪声:
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)
其中 βt∈(0,1) 是预先设定的噪声计划。令
αt=1−βt,αˉt=s=1∏tαs
连续高斯变量的线性组合仍是高斯变量,因此可以把从 x0 到 xt 的所有步骤合并,得到一个非常实用的闭式采样公式:
q(xt∣x0)=N(xt;αˉtx0,(1−αˉt)I)
等价地,若 ϵ∼N(0,I):
xt=αˉtx0+1−αˉtϵ
这个重参数化结果意味着:训练时不需要真的从 x1 一步步算到 xt。随机抽一个时间步 t,只做一次线性组合就能直接得到对应噪声强度的样本。

当 T 足够大、噪声计划合适时,αˉT 接近 0,xT 便近似服从 N(0,I)。
反向过程:学习每一步的去噪分布
生成时我们只有随机噪声 xT,需要逐步采样 xT−1,…,x0。真实的反向条件分布依赖未知的数据分布,于是用神经网络参数化:
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))
DDPM 从负对数似然的变分下界出发训练模型。由于前向后验
q(xt−1∣xt,x0) 是可解析的高斯分布,各时间步的主要项可以写成它与 pθ 之间的 KL 散度。
原论文发现,固定或按规则设置反向方差,并让网络预测噪声 ϵ,可以得到简单而有效的目标:
Lsimple=Ex0,t,ϵ[∥ϵ−epsilonθ(xt,t)∥22]
把 xt 的闭式表达代入,就是:
Lsimple=E[ϵ−epsilonθ(αˉtx0+sqrt1−αˉtϵ,t)22]
这看起来只是一个均方误差,但它实际要求网络在不同时间步、不同噪声尺度下估计被加入的噪声,也等价地学习了指向高密度数据区域的方向。
“预测噪声”不是唯一参数化。现代实现也常预测 x0,或预测结合 x0 与 ϵ 的 v。三者可以互相换算,但损失权重和数值特性不同。
训练算法
每次迭代只需要五步:
- 从数据集中采样 x0;
- 均匀采样时间步 t∈{1,…,T};
- 采样 ϵ∼N(0,I);
- 构造 xt=αˉtx0+1−αˉtϵ;
- 最小化 ∥ϵ−ϵθ(xt,t)∥22。
时间步必须输入网络,否则同一个 xt 无法区分自己处于轻微噪声还是接近纯噪声的阶段。常见做法是用正弦位置编码或学习式 embedding 表示 t。
从噪声采样图像
训练完成后,先采样 xT∼N(0,I),再按 t=T,…,1 迭代:
xt−1=αt1(xt−1−αˉtβtϵθ(xt,t))+σtz
其中 z∼N(0,I);最后一步通常令 z=0。σt 由选定的反向方差方案决定。
这个过程的优点是稳定,缺点也很明显:原始 DDPM 往往需要数百到上千次网络前向计算,推理速度远慢于一次前向生成的模型。
为什么常用 U-Net
图像去噪既需要局部纹理,又需要跨区域的全局语义。U-Net 的下采样路径提取多尺度特征,上采样路径恢复空间分辨率,skip connection 保留细节;残差块、注意力和时间 embedding 则把不同尺度、不同噪声阶段的信息结合起来。

网络可以很大,但数学接口始终简单:输入带噪样本和时间步,输出噪声、原图或 v 的估计。
条件生成与 Classifier-Free Guidance
文本到图像模型还要建模条件 c。Classifier-free guidance(CFG)在训练时随机丢弃一部分条件,使同一个网络同时学会条件与无条件预测。采样时组合两次输出:
ϵcfg=ϵθ(xt,t,∅)+s[ϵθ(xt,t,c)−ϵθ(xt,t,∅)]
s 越大,结果通常越贴合提示词,但多样性可能下降,过大还会带来过饱和和伪影。它不是“越大越好”的质量旋钮。
DDIM、潜空间扩散与 Flow Matching
从 2026 年回看,需要把几条常被混在一起的路线分开:
- DDIM 使用与 DDPM 相同的训练模型,但定义了不同的非马尔可夫采样过程;当随机项为零时可以确定性采样。它不只是“少跑几步的 DDPM”。
- Latent Diffusion 先用自编码器把图像压到潜空间,再在潜变量上扩散,大幅减少计算量。Stable Diffusion 属于这条路线。
- Flow Matching / Rectified Flow 学习连续时间的速度场,通过 ODE 把简单分布运输到数据分布。它与扩散模型关系紧密,但训练目标和采样动力学并不等同于 DDPM。
理解 DDPM 仍然是理解这些后续方法的最好起点:前向扰动如何定义、模型在预测什么、采样器如何利用预测,这三件事构成了生成模型设计的主干。
参考资料