- 扩散模型的前向过程
前向过程的一般形式:
假设有一个DDD维随机变量x0∈RDx_0∈R^Dx0∈RD,其真实分布q0(x0)q_0(x_0)q0(x0)是未知的(例如,图像数据的分布)。扩散模型定义了一个前向过程{xt}t∈[0,T]\{x_t\}_{t \in [0, T]}{xt}t∈[0,T],从x0x_0x0开始,随时间ttt逐渐加入噪声。该过程的关键性质是:给定初始状态x0x_0x0,任意时刻t的条件分布为高斯分布:
q0t(xt∣x0)=N(xt∣αtx0,σt2I)q_{0t}(x_t \mid x_0) = \mathcal{N}\left(x_t \mid \alpha_t x_0, \sigma_t^2 I\right)q0t(xt∣x0)=N(xt∣αtx0,σt2I)
αt\alpha_tαt和σt\sigma_tσt是正的、可微的、有界导数的函数,称为噪声调度。信号-噪声比(SNR) 定义为αt2σt2\frac{\alpha_t^2}{\sigma_t^2}σt2αt2,是时间ttt的严格递减函数,这保证随着时间增加,原始信号逐渐被噪声淹没。通常选择α(0)=1\alpha(0)=1α(0)=1,σ(0)=0\sigma(0)=0σ(0)=0(初始时刻无噪声情况),α(T)≈0\alpha(T)\approx0α(T)≈0,σ(t)>0\sigma(t)>0σ(t)>0。 - 扩散过程的SDE表示
上述条件高斯过渡实际上等价于一个伊藤随机微分方程(SDE) 的解。该 SDE 为:
dxt=f(t)xtdt+g(t)dwt,x0∼q0(x0)dx_t = f(t) x_t dt + g(t) dw_t, \quad x_0 \sim q_0(x_0)dxt=f(t)xtdt+g(t)dwt,x0∼q0(x0)
其中wtw_twt是标准维纳过程(布朗运动),而漂移系数f(t)f(t)f(t)和扩散系数g(t)g(t)g(t)由噪声调度决定:
f(t)=dlogαtdt,g2(t)=dσt2dt−2dlogαtdtσt2f(t) = \frac{d\log\alpha_t}{dt}, \quad g^2(t) = \frac{d\sigma_t^2}{dt} - 2\frac{d\log\alpha_t}{dt}\sigma_t^2f(t)=dtdlogαt,g2(t)=dtdσt2−2dtdlogαtσt2
这个 SDE将离散时间加噪过程(如 DDPM)推广到连续时间,为后续推导反向过程提供了数学框架。 - 逆向过程
在适当的正则条件下,前向 SDE 对应一个反向时间 SDE,从T 到0逐步去除噪声。反向过程为:
dxt=[f(t)xt−g2(t)∇xlogqt(xt)]dt+g(t)dwˉt,xT∼qT(xT)dx_t = \left[ f(t)x_t - g^2(t)\nabla_x \log q_t(x_t) \right] dt + g(t) d\bar{w}_t, \quad x_T \sim q_T(x_T)dxt=[f(t)xt−g2(t)∇xlogqt(xt)]dt+g(t)dwˉt,xT∼qT(xT)
这里:
- wˉt\bar{w}_twˉt是反向时间中的维纳过程(时间倒流时噪声方向反转)。
- ∇xlogqt(xt)∇xlogq_t(x_t)∇xlogqt(xt)称为得分函数(score function),是边际分布qt(x)q_t(x)qt(x)关于xtx_txt的对数梯度。它指示了从含噪数据中“去除噪声”的方向。
关键点:如果我们知道每个时刻t的得分函数,就可以从纯噪声xT∼N(0,σ~2I)x_T \sim \mathcal{N}(0, \tilde{\sigma}^2 I)xT∼N(0,σ~2I)出发,模拟反向 SDE,从而生成新的样本(相当于从q0q_0q0中采样)。