前向加噪用重参数化一步直达,反向去噪用贝叶斯公式 + 神经网络近似——两者都是确定性推导,没有“玄学”。
扩散模型(Denoising Diffusion Probabilistic Models, DDPM)的两条核心公式:
前向加噪(任意 t 一步直达):
xt=αˉtx0+1−αˉtε,ε∼N(0,I)
反向去噪(逐步从噪声恢复数据):
xt−1=αt1(xt−1−αˉt1−αtεθ(xt,t))+σtδ,δ∼N(0,I)
这两条公式分别是 DDPM 训练和推理的数学核心。下面从 Markov 链的物理直觉出发,逐步推导。
DDPM 将加噪定义为 Markov 扩散过程——每一步在前一步基础上加高斯噪声:
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI)(1)
| 符号 |
含义 |
| βt∈(0,1) |
噪声调度(noise schedule),控制每步加多少噪声,通常 β1<β2<⋯<βT |
| 1−βt |
对先前状态的缩放因子:“保留信号”的比例 |
| βtI |
新添加噪声的方差 |
为什么是这个形式? 这是**方差保持(variance-preserving, VP)**扩散过程。经过 T 步后,xT 渐进收敛到 N(0,I)——无论 x0 是什么分布。这是扩散模型能从任意噪声出发生成任意图像的数学根基。
高斯分布的核心性质——两个独立高斯之和仍为高斯——意味着不需要迭代 t 步才能得到 xt。
先引入简写 αt=1−βt,利用重参数化技巧把 (1) 写成:
xt=αtxt−1+1−αtεt−1,εt−1∼N(0,I)
递归展开:
xt=αtxt−1+1−αtεt−1=αt(αt−1xt−2+1−αt−1εt−2)+1−αtεt−1=αtαt−1xt−2+两个独立高斯噪声的加权和αt(1−αt−1)εt−2+1−αtεt−1=αtαt−1xt−2+1−αtαt−1ε′
继续递归到底,定义 αˉt=∏s=1tαs,得到最终形式:
xt=αˉtx0+1−αˉtε,ε∼N(0,I)(2)
关键洞察:αˉt∈[0,1] 随时间递减——t=0 时 αˉ0≈1(几乎原图),t=T 时 αˉT≈0(几乎纯噪声)。不需要逐步迭代,任意 t 一步直达,训练效率大幅提升。
如果我们知道 x0,反向条件分布 q(xt−1∣xt,x0) 可以用贝叶斯公式精确推导:
q(xt−1∣xt,x0)=q(xt∣x0)q(xt∣xt−1)q(xt−1∣x0)
把三个高斯分布概率密度函数代入、展开、整理,得到同样形式的高斯:
q(xt−1∣xt,x0)=N(xt−1;μt(xt,x0),βtI)
其中精确均值 μ~t 为:
μt(xt,x0)=1−αˉtαˉt−1βtx0+1−αˉtαt(1−αˉt−1)xt(3)
问题:推理时根本没有 x0。这个精确后验只是理论公式,没法直接用。
用网络参数化的高斯近似真实后验:
pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),σt2I)
然后用变分下界(ELBO)推导损失。Ho et al. (2020) 的关键实验发现:与其让网络预测 x0 再代入 (3) 算均值,不如直接预测噪声 ε,效果更好。
推导如下——由 (2) 解出 x0:
x0=αˉt1(xt−1−αˉtε)(4)
将 (4) 代入 (3) 的 μ~t 公式,消去 x0:
μt=1−αˉtαˉt−1βt⋅αˉtxt−1−αˉtε+1−αˉtαt(1−αˉt−1)xt=αt1(xt−1−αˉt1−αtε)
用网络预测 εθ(xt,t) 替代真实 ε,就得到采样公式:
xt−1=αt1(xt−1−αˉt1−αtεθ(xt,t))+σtδ(5)
最后一项 σtδ(δ∼N(0,I))是随机采样时加回的微小噪声——也是生成多样性的来源。
训练目标也简化成极简 MSE:
L=Eε,t[∥ε−εθ(xt,t)∥2]
DDPM 论文发现所有复杂的系数在消去 x0 后都成了常数因子,直接去掉反而训练更稳定。最终 Loss 就是预测噪声与真实噪声的 L2 距离。
MAR 对标准 DDPM 做了一个关键改造——加入自回归产生的条件 z:
Loss:
L(z,x)=Eε,t[∥ε−εθ(xt∣t,z)∥2]
其中 z 是 Transformer 产生的条件向量,去噪 MLP εθ 的输入多了一个 z。梯度从 Diffusion Loss 穿过 z 流向整个 Transformer。
采样(加温度):
xt−1=αt1(xt−1−αˉt1−αtεθ(xt∣t,z))+τ⋅σtδ
温度 τ 缩放噪声方差,控制生成多样性——等价于离散自回归中的 temperature 采样。
| 维度 |
DDPM (Diffusion) |
Flow Matching |
| 前向路径形状 |
曲线(αˉt 决定弯曲程度) |
直线 |
| 预测目标 |
噪声 ε |
速度 v=x1−ε |
| 推理步数 |
通常 50–1000 |
通常更少 |
| 温度方案 |
缩放 σtδ |
有别的方式 |
详见 条件流匹配(CFM)。