











TL; DR: 仅靠求导计算和配方,就能导出 Diffusion 的 ELBO,不需要对连续路径变分。
每个局部的 Diffusion Loss 都控制了当前时间下 Cross Entropy 的增长速度。
所有的 Gaussian diffusion path 本质相同,不妨考虑最简单的:从数据 \(X_0\sim p_0\) 出发,加上标准 Brownian noise,
\[X_t=X_0+\sqrt t\,\epsilon,\qquad \epsilon\sim\mathcal N(0,I). \]
它对应
\[{\rm d}X_t={\rm d}W_t, \]
因此边缘密度 \(p_t\) 满足热方程
\[\partial_t p_t=\frac12\Delta p_t. \]
设 denoiser \(D_t(x)\) 估计后验均值 \(\mathbb E[X_0\mid X_t=x]\)。由 Tweedie 公式,它对应的 score 估计为
\[s_t^D(x)=\frac{D_t(x)-x}{t}. \]
以此定义模型的 backward SDE:
\[{\rm d}X_t=-s_t^D(X_t)\,{\rm d}t+{\rm d}\bar W_t, \qquad t:T\to0. \]
记该反向过程在时刻 \(t\) 的边缘密度为 \(q_t\)。由于时间沿 \(T\to0\) 运行,\(q_t\) 满足 backward Fokker–Planck 方程
\[\partial_t q_t=\nabla\cdot(s_t^Dq_t)-\frac12\Delta q_t. \]
下面不比较整条 path measure,只考察同一时刻的交叉熵
\[\mathcal C(t)=\mathbb E_{X_t\sim p_t}[-\log q_t(X_t)]. \]
记
\[s_t^p=\nabla\log p_t, \qquad s_t^q=\nabla\log q_t. \]
将 \(p_t,q_t\) 的 Fokker–Planck 方程代入,对 \(\mathcal C(t)\) 求导并分部积分,二阶项相消,得到
\[-\frac{{\rm d}\mathcal C}{{\rm d}t}= \mathbb E_{p_t}[\nabla\cdot s_t^D] +\mathbb E_{p_t}[s_t^D\cdot s_t^q] -\frac12\mathbb E_{p_t}\|s_t^q\|^2. \]
再用 Stein 恒等式,
\[\mathbb E_{p_t}[\nabla\cdot s_t^D]=-\mathbb E_{p_t}[s_t^D\cdot s_t^p], \]
并直接配方:
\[-\frac{{\rm d}\mathcal C}{{\rm d}t}= \frac12\mathbb E_{p_t} \left[ -\|s_t^q-s_t^D\|^2 +\|s_t^p-s_t^D\|^2 -\|s_t^p\|^2 \right] \le \frac12 \mathbb E_{p_t} \left[ \|s_t^p-s_t^D\|^2-\|s_t^p\|^2 \right]. \]
由 denoising score matching 恒等式以及 Tweedie 公式,
\[\mathbb E_{p_t} \left[ \|s_t^p-s_t^D\|^2-\|s_t^p\|^2 \right] =\frac{\mathbb E\|D_t(X_t)-X_0\|^2-Nt}{t^2}, \]
其中 \(N\) 是维数。
因此
\[\mathbb E_{p_0}[-\log q_0(X_0)] \le \mathbb E_{p_T}[-\log q_T(X_T)] + \frac12\int_0^T\frac{\mathbb E\|D_t(X_t)-X_0\|^2-Nt}{t^2}{\rm d}t. \]
忽略常数后,训练目标即
\[\frac12\int_0^T \frac{1}{t^2}\mathbb E\|D_t(X_t)-X_0\|^2\,{\rm d}t. \]
为了控制截断行为,在 \(t=\tau\) 时刻提前解码,相当于以 \(q_\tau\) 为 prior、\(p_\tau(\cdot | x)\) 为 encoder、\(q(x\mid x_\tau)\) 为 decoder 的 VAE:
\[\begin{align*} -\log q(x) & = -\log \mathbb E_{p_\tau}\left[ \frac{q_\tau(x_\tau)}{p_\tau(x_\tau)} q(x \mid x_\tau) \right]\ \\ & \le -\mathbb E_{p_\tau}[\log q(x\mid x_\tau) + \log q_\tau(x_\tau) - \log p_\tau(x_\tau)] \\ & = -\mathbb E_{p_\tau}[ \log q(x\mid x_\tau) + \log q_\tau(x_\tau) ] - \mathcal H\big(p_\tau(\cdot|x)\big) \\ \mathbb E[-\log q(x)] & \le \mathbb E_{p_\tau}[ -\log q(x\mid x_\tau) ] + \mathbb E_{p_T}[-\log q_T(X_T)] + \frac12\int_\tau^T \frac{\mathbb E\|D_t(X_t)-X_0\|^2-Nt}{t^2}{\rm d}t - \mathcal H\big(p_\tau(\cdot|x)\big) \\ & = \mathbb E_{p_\tau}[ -\log q(x\mid x_\tau) ] + \mathcal D_{\rm KL}(p_T \| q_T) + \mathcal H\big(p_T(\cdot|x)\big) + \frac12\int_\tau^T \frac{\mathbb E\|D_t(X_t)-X_0\|^2-Nt}{t^2}{\rm d}t - \mathcal H\big(p_\tau(\cdot|x)\big) \\ & = \mathbb E_{p_\tau}[ -\log q(x\mid x_\tau) ] + \mathcal D_{\rm KL}(p_T \| q_T) + \frac12\int_\tau^T \frac{\mathbb E\|D_t(X_t)-X_0\|^2}{t^2}{\rm d}t \\ & \xlongequal{T \to +\infty} \mathbb E_{p_\tau}[ -\log q(x\mid x_\tau) ] + \frac12\int_\tau^{+\infty} \frac{\mathbb E\|D_t(X_t)-X_0\|^2}{t^2}{\rm d}t. \end{align*} \]
这里用到了
\[\mathcal H\big(p_T(\cdot|x)\big) - \frac12\int_\tau^T \frac{N}{t}{\rm d}t - \mathcal H\big(p_\tau(\cdot|x)\big) = \frac N2\ln(2\pi{\rm e}T)-\frac N2\ln(T/\tau)-\frac N2\ln(2\pi{\rm e}\tau)=0. \]
以往的连续 Diffusion 需要先定义 Path Measure 并对整个路径的分布变分。如今我们仅靠求导计算和配方,最多再加一层单点的变分,就导出了 Diffusion 的 ELBO。
这还揭示了一个事实:Diffusion 看似对整个 Path Measure 变分,实际上每个局部 MSE Loss 都控制了当前时间下 Cross Entropy 的增长速度。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。