来源:Song 等,2021,arXiv:2011.13456,§3.3(SDE 的 score 估计 / 训练目标)。
记号:沿用前面。$s_\theta(x,t)$ 是要训的 score 网络;$p_{0t}(x_t\mid x_0)$ 是扰动核(§5.2 展开讲)。
读法:§4 说反向只缺一个 score 网络,这一节给出怎么训它。§5.1 你已有的离散 DSM;§5.2 每个时刻 $t$ 的靶子;§5.3 唯一的新一步「对所有 $t$ 加起来」,得连续时间目标。整节只在 §2 已会的基础上加一步。
---
## §5.1 你已有的:离散 denoising score matching
这一步:先把 §2 训 NCSN 的办法摆出来,它就是这一节的地基。
§2 训 NCSN 用的是 denoising score matching:在某一档固定噪声 $\sigma$ 上,加噪图 $=$ 信号 $+\sigma\varepsilon$,对它求 score 正好是 $-\varepsilon/\sigma$(好算)。(这里只有 $\varepsilon$ 是 DDPM 记号;$-\varepsilon/\sigma$ 本身就等于论文的条件 score $\nabla_{\tilde x}\log p_\sigma(\tilde x\mid x)$,§2.1 推过。)拿这个当靶子,让网络最小化与它的平方误差。Vincent 2011 证过:这样训出来的最优解,正是那个写不出公式的边缘 score。当时是对一串离散的 $\sigma$ 各算一份损失、求和。
记住这条结构:**「拿好算的条件 score 当靶子 → 网络匹配 → 最优解是边缘 score」**。下面只把「一串 $\sigma$」换成「连续的 $t$」,别的不变。
---
## §5.2 每个时刻 $t$ 的靶子
这一步:换到连续时间后,检查每个 $t$ 的靶子是否照样好算(是)。
§3 解出过:固定一张干净图 $x_0$,前向加噪到 $t$ 时刻,$x_t$ 的分布是一个高斯——均值是缩小的信号(VP:$e^{-B/2}x_0$;VE:原样 $x_0$),标准差是该时刻的噪声水平 $\sqrt{v(t)}$(§3.4 的条件方差开根号)。这个「给定起点 $x_0$,加噪 $t$ 后 $x_t$ 落在哪」的条件分布,论文记作 $p_{0t}(x_t\mid x_0)$,叫扰动核(人话:从 $x_0$ 出发、$t$ 时刻的落点概率表;有的书叫转移核,同一个东西)。§3.4 产出清单里 $v(t)$ 的第一个岗位,就是当它的方差。
于是每张加噪图都能写成一行:$x_t=$ 缩小的信号 $+\sqrt{v(t)}\,\varepsilon$。对这个高斯求 score,与 §2.1 那次同一个计算,结果同款:
$\nabla_{x_t}\log p_{0t}(x_t\mid x_0)=-\frac{\varepsilon}{\sqrt{v(t)}}$
**每个 $t$ 的靶子照样好算。** 单个 $t$ 上的损失就是 §5.1 那条 DSM 原样搬来,只是网络多吃一个时间输入 $t$:
$\mathbb E_{x_0,\,x_t}\big\lVert s_\theta(x_t,t)-\nabla_{x_t}\log p_{0t}(x_t\mid x_0)\big\rVert^2$
---
## §5.3 唯一的新一步:对所有 $t$ 加起来
这一步:把每个 $t$ 的损失合成一个总损失。
一个网络要在每个 $t$ 上都准,所以把所有时刻的损失合起来。**离散是「对一串 $\sigma$ 求和」,连续就换成「对 $t$ 取期望(积分)」,再按权重 $\lambda(t)$ 加权**:
> [!danger] Score-SDE 论文式(7) · 连续时间统一训练目标(VP/VE 通用)
> $J(\theta)=\mathbb E_{t}\Big[\lambda(t)\,\mathbb E_{x_0,\,x_t}\big\lVert s_\theta(x_t,t)-\nabla_{x_t}\log p_{0t}(x_t\mid x_0)\big\rVert^2\Big]$
> 随机抽一个时间 $t$、抽一张图 $x_0$、加噪到 $x_t$,让网络 $s_\theta(x_t,t)$ 匹配该时刻好算的条件 score(靶子 $-\varepsilon/$该时刻标准差),按 $\lambda(t)$ 加权。就是 §2 离散 DSM 的「对 $t$ 积分」版。
权重 $\lambda(t)$ 干嘛的:不同 $t$ 的损失量级差很多(高噪时靶子小、低噪时靶子大),不加权会被某些档主导,$\lambda(t)$ 把各档拉平。论文的典型取法:**取该时刻扰动核的方差(VE 是 $\sigma^2(t)$、VP 是 $1-\bar\alpha_t$),就是 §2 那招 $\lambda(\sigma)=\sigma^2$ 的连续版**——靶子量级 $\approx 1/$标准差,乘方差正好拉平。
> [!note]- 实际训练长什么样(和 DDPM 的训练循环几乎一样)
> 就是随机梯度下降:每个 batch 随机抽一批 $t$、抽图、按该 $t$ 的高斯核加噪得 $x_t$(记下用的 $\varepsilon$,靶子里要用)、算上面那个平方误差、反传更新 $\theta$。与 DDPM 训练循环的唯一差别:$t$ 从「整数步 $1..T$」变成「在 $[0,T]$ 上连续抽」。训完的 $s_\theta(x,t)$,就是 §4 反向 SDE、§6 概率流 ODE、§7 PC 采样里用的那个 score。
---
## 本节一条线
训 score 没有新原理,就是把 §2 的离散 denoising score matching(拿好算的条件 score $-\varepsilon/$标准差 当靶子,最优解是边缘 score)从「一串 $\sigma$ 求和」推广成「对连续时间 $t$ 加权积分」:$J(\theta)=\mathbb E_t[\lambda(t)\,\mathbb E\lVert s_\theta(x_t,t)-\nabla\log p_{0t}(x_t\mid x_0)\rVert^2]$,典型取 $\lambda(t)=$ 该时刻扰动核的方差(§2 的 $\sigma^2$ 加权的连续版)。实际训练和 DDPM 几乎一样,只是 $t$ 改成连续抽。训完这个 $s_\theta(x,t)$,前面 §4 和后面 §6/§7 的采样就全部解锁。下一节正式进采样:先看确定性的概率流 ODE(DDIM 是它的特例)。