核心直觉
想象在一张清晰图片上反复加入少量高斯噪声。经过足够多步以后, 原图的信息会被淹没,只剩随机噪点。这个固定的破坏过程叫作前向扩散。
神经网络学习相反的方向:观察某一时刻的带噪图像,预测其中的噪声。 每一步去掉一点,许多小步骤串起来,就能从纯噪声得到一个新样本。
把“直接画出一张图”改写为“反复预测并去掉一点噪声”。
前向过程:制造训练样本
设原始样本为 x₀,时间步为 t。噪声计划 βₜ 控制每一步加入多少噪声, ᾱₜ 则表示经过 t 步后还保留多少原始信息。利用重参数化,可以直接得到任意时刻的 xₜ:
xₜ = √ᾱₜ x₀ + √(1 − ᾱₜ) ε
其中 ε ∼ N(0, I)。t 越大,xₜ 越接近纯高斯噪声。
训练目标:预测噪声
训练时随机抽取一张样本、一个时间步和一份噪声,构造 xₜ。 去噪网络 εθ 接收 xₜ 与时间信息 t,并预测当时加入的噪声。
L = E[ ‖ ε − εθ(xₜ, t) ‖² ]
这个损失就是预测噪声与真实噪声之间的均方误差。常见骨干网络是带时间嵌入和注意力模块的 U-Net。
生成过程:逐步去噪
- 先从标准高斯分布采样纯噪声 xT。
- 网络预测当前噪声,并据此计算更干净的 xt−1。
- 重复直到 t = 0,得到符合训练数据分布的新样本。
DDPM 的采样稳定但步骤较多;DDIM 等方法可以减少采样步数,在速度和随机性之间做取舍。
条件如何控制结果
文本、类别或参考图像都可以作为条件 c 输入网络。文本生成图像模型通常先编码文本, 再通过交叉注意力影响每一步去噪。Classifier-free guidance 则通过比较有条件和无条件预测, 增强结果与提示词的一致性。
一句话总结
训练时随机加噪并学习预测噪声;生成时从纯噪声出发,重复去噪,直到得到完整样本。