这是一篇把 DDPM(离散扩散)与 Score-based(连续 SDE / DSM)贯穿起来的文章。目标是:推导清楚,并且讲明白为什么要这样做。全文仅包含数学与解释,不含程序代码与样例实现。
为什么用 SDE/Itô:把 DDPM(离散)与 Score-based(连续)统一到可分析的框架;得到 $q(x_t | x_0)$ 的高斯闭式与重参数化;用 Itô 引理推导期望/协方差与 Fokker–Planck。 |
随机过程 $X_t\in\mathbb{R}^n$,时间 $t\in[0,1]$。前向加噪把 $X_0\sim p_{\text{data}}$ 推向近似高斯的 $X_1$;反向过程从高斯端还原到数据。
SDE 统一式($W_t$ 为标准布朗运动) \(dX_t = f(X_t,t)\,dt + G(X_t,t)\,dW_t.\)
两条经典族:
VP-SDE(Variance Preserving,DDPM 连续极限) \(dX_t = -\tfrac{1}{2}\beta(t) X_t\,dt + \sqrt{\beta(t)}\,dW_t,\) \(X_t\mid X_0=x_0 \sim \mathcal{N}\!\big(\alpha(t)\,x_0,\ (1-\alpha^2(t))I\big),\qquad \alpha(t)=\exp\!\Big(-\tfrac{1}{2}\int_0^t \beta(u)\,du\Big).\)
VE-SDE(Variance Exploding,NCSN/EDM 路线) \(dX_t = \sqrt{\tfrac{d}{dt}\sigma^2(t)}\,dW_t,\qquad X_t\mid X_0=x_0 \sim \mathcal{N}\!\big(x_0,\ \sigma^2(t) I\big).\)
重参数化(训练/推导的支点)
VP:$x_t=\alpha(t)x_0+\sigma(t)\epsilon,\ \sigma^2(t)=1-\alpha^2(t)$;
VE:$x_t=x_0+\sigma(t)\epsilon$;$\ \epsilon\sim\mathcal{N}(0,I)$。
为什么重要:有了可微的高斯闭式,就能稳定、统一地采样 $x_t$、构造损失、并且在推断时反解 $x_0$。
\(dt\cdot dt=0,\qquad dt\cdot dW=0,\qquad dW\cdot dW=dt,\qquad dW_i\cdot dW_j=\delta_{ij}\,dt.\)
直觉:$dW=\mathcal{O}(\sqrt{dt})$,所以 $(dW)^2=\mathcal{O}(dt)$ 不可忽略;而 $dt\cdot dW=\mathcal{O}(dt^{3/2})$、$dt^2=\mathcal{O}(dt^2)$ 可忽略。
也可由 $dW=\sqrt{dt}\,\varepsilon$($\varepsilon\sim\mathcal{N}(0,1)$)得 $\mathbb{E}[(dW)^2]=dt$。
$$
\begin{aligned}
d\phi(X_t,t)
&= \partial_t\phi\,dt + \nabla_x\phi^\top f\,dt
&\quad + \frac{1}{2}\,\mathrm{Tr}!\left[(GG^\top)\,\nabla_x^2\phi\right]\,dt
为何关键:它是“随机版链式法则”,把 SDE 中的噪声如何影响函数量(均值/方差/自由能等)说清楚,支撑后续所有统计与密度演化推导。
推导这些量的目的:
(i) 理解前向扩散的“信噪比”如何随时间变化(指导调度与加权);
(ii) 校验模型实现与数值稳定性;
(iii) 在线性情形获得闭式(Kalman–Bucy),便于分析。
取 $\phi(X_t,t)=X_{t,u}$ 得 \(\frac{d}{dt}\mathbb{E}[X_{t,u}] = \mathbb{E}[f_u(X_t,t)] \quad\Longrightarrow\quad \frac{dm}{dt}=\mathbb{E}[f(X_t,t)],\qquad m(t)=\mathbb{E}[X_t].\)
令 $S_t=X_tX_t^\top$,用乘积法则 \(d(XX^\top)=X\,dX^\top + dX\,X^\top + dX\,dX^\top,\) 代入 $dX=f\,dt+G\,dW$ 并取期望 \(\frac{d}{dt}\mathbb{E}[XX^\top]=\mathbb{E}[X f^\top + f X^\top] + \mathbb{E}[GG^\top].\) 协方差 $P=\mathbb{E}[(X-m)(X-m)^\top]=\mathbb{E}[XX^\top]-mm^\top$: \(\frac{dP}{dt} = \mathbb{E}[(X-m)f^\top]+\mathbb{E}[f(X-m)^\top]+\mathbb{E}[GG^\top].\)
若 $f=A(t)X+b(t)$,$G=Q^{1/2}(t)$: \(\frac{dm}{dt}=A m+b,\qquad \frac{dP}{dt}=A P + P A^\top + Q.\)
为什么有用:它告诉我们在“线性化近似”下噪声如何被系统放大/衰减,有助于选择 $\beta/\sigma$ 调度与损失加权。
意义:
DSM 需要可解的真局部 score $\nabla\log q(x_t | x_0)$; |
线性 OU 过程解: \(X_t=\alpha(t)X_0+\int_0^t \alpha(t)\alpha(s)^{-1}\sqrt{\beta(s)}\,dW_s \sim \mathcal{N}\!\big(\alpha(t)X_0,\ (1-\alpha^2(t))I\big).\)
\(X_t=X_0+\int_0^t \sqrt{\tfrac{d}{ds}\sigma^2(s)}\,dW_s \sim \mathcal{N}\!\big(X_0,\ \sigma^2(t)I\big).\)
因此得到重参数化:
解析监督:$q(x_t | x_0)$ 高斯 ⇒ 真局部 score $\nabla_{x_t}\log q(x_t | x_0)$ 闭式可写,DSM 可用。 |
给定前向 $dX_t=f\,dt+g\,dW_t$ 与边缘密度 $p_t$,有
反向 SDE \(dX_t=\big[f(X_t,t)-g^2(t)\,\nabla_x\log p_t(X_t)\big]\,dt+g(t)\,d\bar{W}_t,\qquad t:1\to 0.\)
概率流 ODE(确定性) \(\frac{dX_t}{dt}=f(X_t,t)-\tfrac{1}{2}g^2(t)\,\nabla_x\log p_t(X_t).\)
为什么成立:这来自 Fokker–Planck 与时间反演理论;只要我们学到 score($\nabla\log p_t$ 的近似),就能用 SDE/ODE 把高斯端“走回”数据端。
高斯加噪核 $q_\sigma(\tilde x|x)=\mathcal{N}(\tilde x;x,\sigma^2 I)$ 的局部 score 为 \(\nabla_{\tilde x}\log q_\sigma(\tilde x|x)= -\frac{\tilde x-x}{\sigma^2}.\) 连续噪声 DSM 损失 \(\mathcal{L}_{\mathrm{DSM}} =\mathbb{E}_{x,\epsilon,\sigma}\Big[\big\| s_\theta(\tilde x,\sigma)+\tfrac{\epsilon}{\sigma}\big\|^2\Big],\qquad \tilde x=x+\sigma\epsilon.\)
为什么合理:在 $x$ 条件期望下,上式是边缘 score 的一致监督;因此学到的 $s_\theta$ 可作为反向动力学的“方向场”。
离散马尔可夫核: \(q(x_t|x_{t-1})=\mathcal{N}(\sqrt{1-\beta_t}\,x_{t-1},\ \beta_t I),\qquad q(x_t|x_0)=\mathcal{N}(\sqrt{\bar{\alpha}_t}x_0,\ (1-\bar{\alpha}_t)I).\) 变分下界(ELBO)分解后,最优反向核均值与预测噪声 $\epsilon_\theta$ 线性相关,得到等价的 MSE: \(\mathcal{L}_{\epsilon}=\mathbb{E}_{t,x_0,\epsilon}\big[\|\epsilon-\epsilon_\theta(x_t,t)\|^2\big],\qquad x_t=\sqrt{\bar{\alpha}_t}x_0+\sqrt{1-\bar{\alpha}_t}\,\epsilon.\) 统一换算(便于与 DSM 对齐): \(s_\theta(x_t,t) = -\frac{\epsilon_\theta(x_t,t)}{\sigma(t)}.\)
为什么选噪声回归:尺度稳定、与 ELBO 一致(能评估似然),且推断时可显式反解 $\hat{x}_0$,便于控制与诊断。
为什么要会反解:
① 反向步的均值修正要用;② 监控/理解模型学到的“内容”;③ 与不同参数化($\epsilon/x_0/v/score$)互相转换。