上一篇文章中我们介绍了 score-based model 的基本概念,包括其如何对分布进行建模、如何从建模的分布中进行采样以及通过对分布进行扰动提高其建模精度的方式。在这篇文章中我们将介绍的是如何使用随机微分方程(也就是 SDE)进行 score-based 建模。
本文将score-based model和DDPM进行大一统。虽然SDE构造扩散模型是一个全新的框架,但是其本质还是score。
随机微分方程简介
首先我们先介绍一些随机微分方程的基本知识。 我们首先举一个常微分方程(ODE)的例子,例如下面的一个常微分方程:
dtdx=f(x,t)ordx=f(x,t)dt
其中 f(x,t) 描述了 x 随时间的变化趋势,这个常微分方程可以得到解析解:
x(t)=x(0)+∫0tf(x,τ)dτ
然而在计算机中,只能通过类似前向欧拉法等数值方法来迭代得到数值近似解:
x(t+Δt)≈x(t)+f(x(t),t)Δt
常微分方程描述了一个确定性的过程,而对于非确定性的过程(比如从分布中采样),则需要使用随机微分方程(SDE)进行描述。随机微分方程相比于常微分方程只是在形式上多了一个高斯噪声:
dtdx=漂移系数f(x,t)+扩散系数g(t)wtordxt=f(xt,t)dt+g(t)dwt
其中 $ \omega_t $ 表示布朗运动(Brownian motion),也称为维纳过程(Wiener process)。它是描述随机扰动的核心元素,具有以下性质:
- 独立增量:任意时刻的增量 $ \omega_{t+\Delta t} - \omega_t $ 与之前的所有增量独立。
- 正态分布:增量服从均值为0、方差为 $ \Delta t $ 的正态分布,即 $ \omega_{t+\Delta t} - \omega_t \sim \mathcal{N}(0, \Delta t) $。
- 连续路径:$ \omega_t $ 的样本路径几乎处处连续,但不可导
dwt 的积分对应伊藤积分(Ito integral),用于建模随机波动对系统的动态影响。在采样时 SDE 和 ODE 类似,也可以进行迭代采样:
x(t+Δt)≈x(t)+f(x(t),t)Δt+g(t)ΔtN(0,I)
由于采样过程中存在高斯噪声,进行多次采样会得到不同的轨迹,如下边右图中的一系列绿色折线所示

我们不加证明地给出一个结论(数学家干的事情),一个满足以上条件的 SDE 过程的逆向过程也是一个 SDE,且正向与逆向过程满足条件:
dxdx=f(x,t)dt+g(t)dw=[f(x,t)−g2(t)∇xlogpt(x)]dt+g(t)dw
离散形式:
xn+1=xnxn−1=xn+f(xn,tn)Δt+g(tn)Δwn+[f(xn,tn)−g2(tn)∇xlogptn(xn)]Δt+g(tn)Δtϵn
对于逆向过程,从 t=T 时刻到 t=0 时刻,pt(x) 表示 x(t) 的概率密度函数(时刻 T 就是随机噪声,时刻 0 就是真实数据分布)。红色的部分,在上节 score-based models 中,就是 score function,不过那里的 score function 的定义中概率分布不会随时间变化 s(x)=∇xlogp(x) (其实 p(x) 也是变化的,它受加噪强度的影响,因此也不是固定的)
如果我们想从随机噪声(prior distribution)中采样出一个真实图片(data distribution),我们只需要知道逆向扩散过程的参数就行,对于 f(x,t) 和 g(t) 都是已知的,因为这几个参数在前向扩散过程中是人为设置的,因此我们只需要 ∇xlogpt(x) 就可以完全求解逆向过程了,因此 SDE 模型的重点就是估计 score。


因此对于 SDE 模型,我们可以类似 score matching 的方式对模型进行训练,优化的目标为:
J(θ)=Et∈U(0,T)Ept(x)[λ(t)∥∇xlogpt(x)−sθ(x,t)∥2]
SDE 与 DDPM
DDPM 的前向 SDE
通过上文的介绍,我们可以发现用 SDE 描述的 score-based model 和扩散模型有很多相似之处。在 DDPM中,前向过程可以描述为以下形式:
xt=1−βtxt−1+βtϵt−1,ϵt−1∼N(0,I)
这是一个离散的过程,t∈{0,1,⋯,N}。由于 SDE 是连续的,需要将 DDPM 也转变为连续的形式,为此可以将所有时间步都除以 T,即 t∈{0,N1,⋯,NN−1,1},T=0 时刻是初始时刻,数据分布为真实分布,t=1 时刻是数据完全变为噪声的时刻,当 T→∞,DDPM 就变成了一个连续的过程。代入上式(Δt=1/N),可以得到:
x(t+Δt)==≈≈1−β(t+Δt)x(t)+β(t+Δt)ϵ(t)1−β(t+Δt)Δtx(t)+β(t+Δt)Δtϵ(t)(1−21β(t+Δt)Δt)x(t)+β(t+Δt)Δtϵ(t)x(t)−21β(t+Δt)Δtx(t)+β(t)Δtϵ(t)
其中 β(t)=βt×N写为差分形式:
x(t+Δt)−x(t)=−21β(t+Δt)Δtx(t)+β(t)Δtϵ(t)dx=−21β(t)x(t)dt+β(t)dwf(x,t)=−21β(t)x(t),g(t)=β(t)
DDPM 的逆向 SDE
则逆向扩散过程的 SDE 形式为:
dx=[−21β(t)x(t)−β(t)sθ(t)]dt+β(t)dw
其中 score function 表达式为:
sθ(t)=∇xtlogp(xt∣x0)=−∇xt2σt2(xt−μt)2=−2σt22(xt−μt)=−σt2xt−μt
而
xt=αtˉx0+1−αtˉϵ⇒μt=αtˉx0,σt=1−αtˉ
则
s(t)=−σt2xt−μt=−1−αtˉxt−αtx0=−1−αtˉϵ
即模型等效预测的 score 和等效预测的噪声有如下的等价关系
s_\theta(t) = -\frac{\boldsymbol \epsilon_\theta} {\sqrt{1-\bar {\boldsymbol{\alpha_t}}}} \\
s(t) = -\frac{\boldsymbol \epsilon} {\sqrt{1-\bar {\boldsymbol{\alpha_t}}}} \\\
回顾 DDPM 的采样过程:
x(t)==≈==≈1−β(t+1)1(x(t+1)−1−αˉ(t+1)β(t+1)ϵ0)+β(t+1)z1−β(t+1)1(x(t+1)−β(t+1)sθ(t+1))+β(t+1)z(1+21β(t+1))(x(t+1)−β(t+1)sθ(t+1))+β(t+1)zx(t+1)+21β(t+1)x(t+1)−(β(t+1)+21β2(t+1))sθ(t+1)+β(t+1)zx(t+1)+f(x(t+1),t)−g2(t+1)sθ(t+1)−21β2(t+1)sθ(t+1)+β(t+1)zx(t+1)+f(x(t+1),t)−g2(t+1)sθ(t+1)+g(t+1)z
对比上面逆向 SDE 的离散形式,可以发现就是一种统一的形式:
xn−1=xn+[f(xn,tn)−g2(tn)∇xlogptn(xn)]Δt+g(tn)Δtϵn
推导到这里可以发现,
SDE 与 SMLD