前向加噪 / 反向去噪 · DDPM 原理
GAN 是"对抗生成",VAE 是"编码再解码",扩散模型完全不同——它是"破坏再修复"。
前向过程(加噪):给一张清晰图 x₀,每步加一点高斯噪声,第 t 步得到 xₜ,加到第 T 步(如 1000 步)变成纯噪声 x_T。这个过程不需要训练,是固定的马尔可夫链。
反向过程(去噪):训练一个网络 ε_θ(xₜ, t),输入"噪声图 + 当前步数",预测"加了什么噪声"。把预测的噪声减掉,得到稍微清晰一点的 xₜ₋₁。重复 T 步,从纯噪声 x_T 一路去噪回 x₀。生成 = 从纯噪声开始反向去噪。
拖动时间步 t(0=清晰,1000=纯噪声),看一张图怎么一步步被噪声吞没。这就是扩散模型要学的"反向过程"的起点。
一个常见误解:扩散慢是因为步数多。其实更深的瓶颈是每步要跑一次 U-Net 前向(几百 MB 模型)。所以加速方向是减少前向次数(少步采样)或蒸馏小模型,而不是单纯减步数。