核心直觉

想象在一张清晰图片上反复加入少量高斯噪声。经过足够多步以后, 原图的信息会被淹没,只剩随机噪点。这个固定的破坏过程叫作前向扩散。

神经网络学习相反的方向:观察某一时刻的带噪图像,预测其中的噪声。 每一步去掉一点,许多小步骤串起来,就能从纯噪声得到一个新样本。

把“直接画出一张图”改写为“反复预测并去掉一点噪声”。

前向过程:制造训练样本

设原始样本为 x₀,时间步为 t。噪声计划 βₜ 控制每一步加入多少噪声, ᾱₜ 则表示经过 t 步后还保留多少原始信息。利用重参数化,可以直接得到任意时刻的 xₜ:

xₜ = √ᾱₜ x₀ + √(1 − ᾱₜ) ε

其中 ε ∼ N(0, I)。t 越大,xₜ 越接近纯高斯噪声。

训练目标:预测噪声

训练时随机抽取一张样本、一个时间步和一份噪声,构造 xₜ。 去噪网络 εθ 接收 xₜ 与时间信息 t,并预测当时加入的噪声。

L = E[ ‖ ε − εθ(xₜ, t) ‖² ]

这个损失就是预测噪声与真实噪声之间的均方误差。常见骨干网络是带时间嵌入和注意力模块的 U-Net。

生成过程:逐步去噪

  1. 先从标准高斯分布采样纯噪声 xT
  2. 网络预测当前噪声,并据此计算更干净的 xt−1
  3. 重复直到 t = 0,得到符合训练数据分布的新样本。

DDPM 的采样稳定但步骤较多;DDIM 等方法可以减少采样步数,在速度和随机性之间做取舍。

条件如何控制结果

文本、类别或参考图像都可以作为条件 c 输入网络。文本生成图像模型通常先编码文本, 再通过交叉注意力影响每一步去噪。Classifier-free guidance 则通过比较有条件和无条件预测, 增强结果与提示词的一致性。

一句话总结

训练时随机加噪并学习预测噪声;生成时从纯噪声出发,重复去噪,直到得到完整样本。