DDPM:去噪扩散概率模型#
DDPM 就是通过对数据不断加噪成为真实噪声(通常是高斯噪声),和从真实噪声不断去噪还原成原始数据的过程中,学习到去噪的过程,进而就能对真实噪声进行随机采样,还原(生成)成各式各样的数据。
前向过程(扩散过程)#
给定真实数据分布 x0∼q(x0),前向过程定义为一个固定的 Markov 链,逐步向数据中添加高斯噪声:
q(xt∣xt−1):=N(xt;1−βtxt−1, βtI)
其中 βt∈(0,1) 是预设的噪声调度表。整个前向过程的联合分布为:
q(x1:T∣x0):=∏t=1Tq(xt∣xt−1)
一个重要的性质是:我们可以一步到位地从 x0 采样任意时刻 t 的 xt。令 αt:=1−βt,αˉt:=∏s=1tαs,则:
q(xt∣x0)=N(xt;αˉtx0, (1−αˉt)I)
这意味着 xt 可以写成:
xt=αˉtx0+1−αˉtϵ,ϵ∼N(0,I)
当 T 足够大时,αˉT→0,从而 q(xT∣x0)≈N(0,I),满足先验假设。
反向过程#
反向过程的目标是学习一个参数化的 Markov 链 pθ(x0:T) 来近似前向过程的后验。反向过程也建模为高斯转移:
pθ(xt−1∣xt):=N(xt−1;μθ(xt,t), Σθ(xt,t))
起点为 p(xT)=N(0,I)。
变分下界与训练目标#
模型通过最大化对数似然的变分下界(ELBO)来训练:
logpθ(x0)≥Eq(x1:T∣x0)[logq(x1:T∣x0)pθ(x0:T)]
展开后得到三个部分:
- 重构项:L0=−logpθ(x0∣x1)
- 去噪匹配项:Lt=DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt)),1<t≤T
- 先验匹配项:LT=DKL(q(xT∣x0)∥p(xT))
关键点在于:后验分布 q(xt−1∣xt,x0) 有闭式解。利用贝叶斯公式:
q(xt−1∣xt,x0)=N(xt−1;μ~t(xt,x0), β~tI)
其中:
μ~t(xt,x0)=1−αˉtαt(1−αˉt−1)xt+1−αˉtαˉt−1βtx0
β~t=1−αˉt1−αˉt−1βt
参数化选择#
Ho et al. (2020) 做出了两个关键的设计决策:
决策一:固定方差。令 Σθ(xt,t)=σt2I,其中 σt2=βt 或 β~t。实验表明两种选择效果相近。
决策二:预测噪声。将 μθ 重新参数化为对噪声 ϵ 的预测。利用 x0=(xt−1−αˉtϵ)/αˉt,代入 μ~t 并化简:
μθ(xt,t)=αt1(xt−1−αˉtβtϵθ(xt,t))
最终的训练目标简化为:
Lsimple=Et,x0,ϵ[ϵ−ϵθ(αˉtx0+1−αˉtϵ, t)2]
这一形式极其简洁:网络只需预测所添加的噪声 ϵ。
采样算法(DDPM)#
DDPM 的采样遵循反向 Markov 链,从 xT∼N(0,I) 开始,逐步去噪:
xt−1=αt1(xt−1−αˉtβtϵθ(xt,t))+σtz,z∼N(0,I)
其中 z=0 当 t=1 时。
核心观察:DDPM 的采样过程是随机的——每步都注入新的噪声 z。这使得采样过程必须走完全部 T 步(通常 T=1000)才能保证质量。
DDIM:去噪扩散隐式模型#
DDIM (Song et al., 2021) 的核心贡献是:将扩散模型重新解释为隐式模型(implicit model),从而支持在更少的采样步数下生成高质量样本。
非马尔可夫前向过程#
DDIM 的关键洞察是:DDPM 的训练目标 Lsimple 实际上只依赖于边际分布 q(xt∣x0),而不依赖于联合分布 q(x1:T∣x0)。这意味着:
我们可以构造不同的前向过程(具有不同的联合分布),只要它们共享相同的边际分布,训练出的模型就可以互换使用。
DDIM 定义了一类非马尔可夫前向过程族 Qσ。其关键性质是:
qσ(xt∣x0)=N(αˉtx0, (1−αˉt)I)
即边际分布与 DDPM 完全一致。
反向过程#
在 DDIM 的框架下,给定 xt 和 x0,可以构造如下反向条件分布:
qσ(xt−1∣xt,x0)=N(αˉt−1x0+1−αˉt−1−σt2 1−αˉtxt−αˉtx0, σt2I)
其中 σt≥0 是一个自由参数,控制反向过程的随机性。
验证一下:当 σt2=β~t=1−αˉt1−αˉt−1βt 时,该分布退化为 DDPM 的后验 q(xt−1∣xt,x0)。因此 DDPM 是 DDIM 框架的一个特例。
采样算法#
利用预测噪声的替换 x0=(xt−1−αˉtϵθ(xt,t))/αˉt,DDIM 的采样步骤为:
xt−1=αˉt−1(αˉtxt−1−αˉtϵθ(xt,t))+1−αˉt−1−σt2 ϵθ(xt,t)+σtϵt
其中 ϵt∼N(0,I)。
确定性采样(DDIM 的特例)#
当 σt=0 时,反向过程变为完全确定性:
xt−1=αˉt−1(αˉtxt−1−αˉtϵθ(xt,t))+1−αˉt−1 ϵθ(xt,t)
这个确定性的映射 xt↦xt−1 使得整个采样过程是可逆的,从而可以将 x0 编码回隐空间 xT。这正是 DDIM 被称为”隐式模型”的原因。
加速采样#
由于训练好的模型可以在不同的前向过程之间共享,DDIM 可以在训练好的模型上直接进行加速采样(无需重新训练)。具体做法是:
- 从原始的 T 步中均匀选取一个子序列 {t1,t2,…,tS},其中 t1=T,tS=1
- 按此子序列执行反向步骤
xts−1=αˉts−1(αˉtsxts−1−αˉtsϵθ(xts,ts))+1−αˉts−1−σts2 ϵθ(xts,ts)+σtsϵts实验表明,即使采样步数 S 减少到 10-50 步,DDIM 仍能保持较高的生成质量。