扩散模型的前向过程前向过程的一般形式假设有一个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​∣αt​x0​,σt2​I)α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 为dxtf(t)xtdtg(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)xt​dtg(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)∇xlog⁡qt(xt)]dtg(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)∇x​logqt​(xt​)]dtg(t)dwˉt​,xT​∼qT​(xT​)这里wˉt\bar{w}_twˉt​是反向时间中的维纳过程时间倒流时噪声方向反转。∇xlog⁡qt(xt)∇xlog⁡q_t(x_t)∇xlog⁡qt​(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​中采样。