Lecture 2 - Score Matching

1 Score Matching:问题与方法

上一讲学习 DDPM 时,我们采用了这样的思路:先人为定义一个逐步加噪的 forward process,再学习 reverse process。Maximum likelihood 本来难以直接计算,但经过 ELBO、KL divergence、Bayes' rule 和 Gaussian identities,最后得到一个非常简单的 noise prediction loss。

这一讲换一个视角。假设数据来自未知的复杂分布 formula,我们仍然希望从容易采样的 Gaussian 出发,最终生成数据。现在的问题是:

答案是 score function。课程随后围绕这个答案逐层展开:

概率密度的梯度有什么问题?
        ↓
为什么改用 log-density 的梯度?
        ↓
如何学习未知数据分布的 score?
        ↓
DSM 与 NCSN 如何让训练变得可行?
        ↓
DDPM 和 NCSN 如何统一为连续时间 SDE?
        ↓
如何用 reverse-time SDE 从噪声生成数据?
        ↓
如何去掉随机项,得到 Probability Flow ODE?
        ↓
DPM-Solver 如何利用 ODE 的结构实现少步采样?

学完后,应当能够回答:

  1. Score function 为什么不依赖未知的 normalization constant?
  2. Langevin dynamics 如何利用 score 进行采样?
  3. 原始 Score Matching 为什么仍然不可直接监督?
  4. Denoising Score Matching 如何构造可计算的目标?
  5. 为什么单一噪声尺度不够,NCSN 为什么要使用多个 noise levels?
  6. DDPM 和 NCSN 分别对应哪类 SDE?
  7. Reverse-time SDE 中为什么会出现 score?
  8. Probability Flow ODE 与 SDE 的“等价”到底指什么?
  9. DPM-Solver 为什么比通用 ODE solver 更适合 diffusion model?

1.1 为什么要学习 Score?

1.1.1 从概率密度的梯度开始

设数据分布的密度为 formula。梯度

formula

指出 formula 增长最快的方向。因此,如果我们能在空间中不断沿这个方向移动,就有机会从低密度区域走向高密度区域。

但真实数据分布通常只能写成未归一化形式:

formula

对高维图像而言,partition function formula 基本不可计算。于是:

formula

未知的 formula 仍然存在。除此之外,低密度区域中的 formulaformula 可能极小,也容易造成 numerical stability 问题。

1.1.2 改用 log-density 的梯度

考虑:

formula

代入未归一化密度:

formula

formulaformula 无关,因此:

formula

最终得到:

formula

这就是最关键的第一步:对数之后再对 formula 求导,未知的 normalization constant 自动消失。

定义 score function:

formula

它还有两个重要性质。

第一,它和 formula 指向同一方向,因为:

formula

只要 formula,分母是正数,不会改变方向。

第二,除以 formula 相当于使用相对变化率。在低密度区域,它通常比直接使用极小的 formula 更稳定。

1.1.3 一维 Gaussian 的例子

若:

formula

则:

formula

所以:

formula

这个结果非常有直觉:

  • formula 时,score 为负,指向左侧;
  • formula 时,score 为正,指向右侧;
  • 离均值越远,修正幅度越大;
  • 方差越小,分布越尖锐,score 的拉回作用越强。

Score 可以理解为一张“地形导航图”:它不直接告诉我们当前位置的概率值,却告诉我们应该往哪里走。


1.2 知道 Score 后,怎样生成样本?

1.2.1 Langevin sampling

如果已经知道目标分布的 score,可以用 Langevin dynamics 构造 Markov chain:

formula

其中:

  • score term 把样本推向高密度区域;
  • Gaussian noise 防止所有样本只做 deterministic gradient ascent,最终坍缩到单个 mode;
  • step size formula 控制每次更新的尺度。

在适当条件和足够多迭代后,这条 Markov chain 的 stationary distribution 是目标分布 formula

请注意,Langevin sampling 不是单纯的优化:

Gradient ascent:寻找某个 mode
Langevin sampling:从整个 distribution 采样

随机项在这里不是误差,而是正确采样所需的组成部分。

1.2.2 问题转移了

Langevin dynamics 告诉我们:只要得到 formula,就能尝试生成样本。但训练数据只给出样本 formula,并没有直接给出概率密度,更没有提供 score label。

因此接下来要解决的问题是:

1.3 Score Matching 为什么困难?

1.3.1 最直接的目标不可计算

理想目标是 Fisher divergence:

formula

问题正写在公式里:真实的 formula 未知,所以无法把它直接当作监督标签。

1.3.2 Implicit Score Matching

Hyvarinen 的 Implicit Score Matching(ISM) 使用 integration by parts,把目标改写为与真实 score 无关的形式。忽略与 formula 无关的常数后:

formula

这里:

formula

是 score network Jacobian 的 trace。它摆脱了未知的真实 score,但在高维图像上直接计算 Jacobian trace 代价很高。

1.3.3 Sliced Score Matching

Sliced Score Matching(SSM) 不直接计算完整 trace,而是把高维 score 投影到随机方向,通过随机向量估计 trace,从而降低计算成本。

它展示了一个重要思想:真实 score 虽然不可见,但可以通过等价目标间接估计。不过,本讲接下来选择另一条更适合生成模型的路线:主动给数据加已知噪声。


1.4 加噪为什么反而让 Score 更容易学习?

1.4.1 构造一个 score 已知的条件分布

对干净数据 formula 加 Gaussian noise:

formula

于是条件分布为:

formula

Gaussian score 有解析形式:

formula

现在监督信号出现了:训练时 formula 和我们加入的 formula 都已知,因此条件 score 可以直接计算。

1.4.2 我们真正想学的是带噪边际分布

带噪数据的 marginal distribution 为:

formula

真正需要的是它的 score:

formula

表面上看,我们拥有的是 conditional score,却想学习 marginal score。Denoising Score Matching 的关键结论是:以下两个目标关于 formula 只相差一个常数,具有相同最优解:

formula

formula

因此得到可训练的 Denoising Score Matching(DSM) loss:

formula

这里最容易误解的一点是:单个训练标签是 conditional score,但网络在所有可能的 formula 上做平方误差回归后,学到的是给定 formula 时 conditional score 的条件期望,而这个条件期望恰好等于 marginal score。

1.4.3 为什么叫 Denoising?

Score 指向带噪分布的高密度区域,也就大体指向更像真实数据的位置。对 Gaussian corruption 而言,score 与最优 denoiser 还有 Tweedie's formula 联系:

formula

所以 score network 既在学习密度几何,也隐式给出了去噪方向。


1.5 为什么一个噪声尺度还不够?

1.5.1 Vanilla DSM 的两难

如果 formula 很小,formula 很接近真实数据分布。这听起来很好,但训练样本只覆盖数据流形附近;远离数据的低密度区域几乎没有监督。采样若从随机噪声开始,模型在这些区域的 score 可能很不准确。

如果 formula 很大,Gaussian noise 会填平数据分布之间的空隙,低密度区域得到更充分的覆盖,score 更容易学习;但此时 formula 与真实数据分布相差较远,细节已经被抹去。

这形成一组矛盾:

小噪声:接近真实数据,但全局 score 难学
大噪声:全局 score 好学,但远离真实数据

1.5.2 NCSN:同时学习多个噪声尺度

Noise Conditional Score Network(NCSN) 使用递减的 noise schedule:

formula

训练一个以 noise level 为条件的网络:

formula

加权 DSM loss 可写为:

formula

因为 target magnitude 随 formula 变化,不同 noise level 的 loss 尺度差异很大。常见选择是:

formula

它让各尺度对训练的贡献更平衡。

1.5.3 Annealed Langevin Dynamics

推理时,从最大噪声尺度开始,再逐步降低噪声。对每个 formula,执行若干次 Langevin update:

formula

这称为 Annealed Langevin Dynamics(ALD)

它的生成逻辑是:

  1. 大噪声分布比较平滑,先把随机初值推到正确的全局区域;
  2. 逐渐减小噪声,开始形成更细的结构;
  3. 在最低噪声尺度上逼近真实数据分布,恢复局部细节。

这和 simulated annealing 的精神相似:先解决全局探索,再逐步精修。


1.6 DDPM 的 Noise Prediction 和 NCSN 的 Score Prediction 是什么关系?

DDPM 的任意时刻加噪公式为:

formula

因此条件分布为:

formula

它的 conditional score 是:

formula

所以 noise prediction 与 score prediction 只差一个由 noise schedule 决定的缩放和负号:

formula

这说明 DDPM 与 Score Matching 并不是两套互不相干的方法:

  • DDPM 表面上训练 noise predictor;
  • NCSN 直接训练 score predictor;
  • 二者都在学习不同 noise level 下的带噪分布结构。

这条联系为后面的连续时间统一视角做好了准备。


2 连续时间扩散与采样

2.1 Wiener process

连续时间里的 Gaussian noise 由 Wiener process(也称 Brownian motion)描述。记为 formula,它满足:

  • formula
  • 样本路径连续;
  • 不相交时间区间的 increments 相互独立;
  • 增量满足:
formula

因此可以形式化写成:

formula

这正是“不断加入无穷小 Gaussian increment”的连续版本。

2.1.1 一般形式的 SDE

一条 Itô stochastic differential equation 写为:

formula

其中:

  • formuladrift coefficient,描述确定性运动;
  • formuladiffusion coefficient,控制随机噪声强度;
  • formula 是 Wiener increment。

Drift 决定平均往哪里走,diffusion 决定样本云怎样扩散。

2.1.2 DDPM 对应 VP-SDE

DDPM 的离散更新:

formula

formula 很小时,使用 Taylor approximation:

formula

于是极限形式为 Variance Preserving SDE(VP-SDE)

formula

它有向原点收缩的 drift,同时加入噪声,使总体方差保持受控。DDPM 可以看作 VP-SDE 的一种离散化。

2.1.3 NCSN 对应 VE-SDE

NCSN 的前向扰动主要是不断增大 additive noise,而不衰减原信号。它对应 Variance Exploding SDE(VE-SDE)

formula

这里 drift 为零,方差随时间增长,因此称为 variance exploding。

课程在这里完成了统一:

DDPM 的离散加噪  -> VP-SDE
NCSN 的多尺度噪声 -> VE-SDE
                    ↓
        都是 dx = f dt + g dW 的特例

统一并不是说二者的 forward process 完全相同,而是说它们都能放进同一个 SDE 框架,使用同一套训练和反向生成理论。


2.2 连续时间下怎样训练 Score Network?

设 forward SDE 从数据分布 formula 出发,在时间 formula 产生 marginal formula。我们希望训练:

formula

与 DSM 相同,训练时使用已知的 perturbation kernel formula

formula

对常见的 linear SDE,条件分布是 Gaussian:

formula

因此:

formula

训练配方可以概括为:

  1. 采样 clean image formula、time formula 和 noise formula
  2. 构造 formula
  3. 输入 formula,预测 score;
  4. formula 比较并反向传播。

这和 DDPM 的训练步骤几乎同构。差别主要在 parameterization 和 weighting,而不是学习对象的本质。


2.3 怎样把 Forward SDE 反过来?

2.3.1 Reverse-time SDE

Forward SDE 为:

formula

Anderson 的 reverse-time diffusion 结果给出:

formula

生成时从 formula 积分到 formula,所以时间增量 formulaformula 表示反向过程使用的 Wiener process,不是简单重放 forward noise。

真实 score 未知时,使用模型替换:

formula

2.3.2 为什么反向漂移中必须出现 Score?

Forward diffusion 不断把概率质量摊平。若只把时间方向翻转,而不修正 drift,随机噪声仍会继续扩散,无法让样本重新聚集到数据分布。

Score term:

formula

为 drift 增加了密度相关的修正。结合反向积分的 formula,它把样本推向 formula 的高密度区域,用以抵消 diffusion 的摊平作用。

2.3.3 用 Euler-Maruyama 采样

从终端分布采样:

formula

formulaformula 走向 formula,Euler-Maruyama 离散化为:

formula

其中:

formula

最终得到 formula。课程指出,DDPM 的 reverse update 可以视为这种 reverse SDE 的一种离散形式。


2.4 为什么还要把 SDE 改写成 ODE?

Reverse SDE 能生成数据,但随机项也带来代价:

  • 通常需要很多细小步骤;
  • 误差同时来自有限步长的 discretization 和每步注入的随机噪声;
  • 给定相同初始状态,中间轨迹仍不确定。

于是课程提出一个大胆的问题:

2.4.1 从 Fokker-Planck equation 出发

Forward SDE 对应的密度演化为:

formula

利用:

formula

可以改写成:

formula

而 deterministic ODE:

formula

对应 continuity equation:

formula

对比两式,得到速度场:

formula

因此 Probability Flow ODE(PF-ODE) 为:

formula

实际使用模型 score:

formula

2.4.2 “相同 Probability Flow”是什么意思?

PF-ODE 与原 SDE 满足:

formula

对每个时间 formula 都成立。但这不代表单条 sample trajectory 相同:

  • SDE 轨迹是 stochastic 的;
  • ODE 在给定初值后是 deterministic 的;
  • 二者相同的是每个时刻由大量样本形成的 marginal density。

这是本讲必须准确掌握的一句话:

2.4.3 为什么一个是 formula,另一个是 formula

Reverse SDE:

formula

Probability Flow ODE:

formula

Reverse SDE 自身仍有 diffusion term,它对密度演化贡献二阶项,因此 drift 中需要完整的 formula score correction。PF-ODE 没有随机扩散项,为了复现同一组 marginal densities,速度场只需要 formula correction。

2.4.4 与 DDIM 的类比

课程把两组关系并列起来:

DDPM       <-> DDIM
Reverse SDE <-> PF-ODE

左侧是 stochastic sampling,右侧是可确定的 counterpart;右侧都能够复用原来训练的模型,并以较低 sampling diversity 换取更快的推理。这个类比强调角色相似,不代表 DDIM 的每个离散更新都与任意 PF-ODE solver 完全相同。


2.5 有了 ODE,为什么还需要 DPM-Solver?

2.5.1 NFE 是推理成本的核心指标

使用 neural ODE 采样时,主要成本来自反复调用网络。Number of Function Evaluations(NFE) 表示 solver 调用模型的次数。

最简单的 Euler method 每步使用 1 NFE:

formula

它计算便宜,但大步长误差较大。Runge-Kutta 4 每步通常使用 4 NFE,精度更高,但每一步也更昂贵。

真正应比较的是固定 NFE budget 下的生成质量,而不是只比较“步数”。

2.5.2 Diffusion ODE 不是任意黑盒 ODE

对连续扰动:

formula

diffusion ODE 通常可以整理为 semilinear form:

formula

其中:

  • formula 是由 noise schedule 决定的已知 linear term;
  • formula 也是已知系数;
  • 只有 neural network output 是 nonlinear term。

通用 solver 会一起离散化所有部分,没有利用这种结构。DPM-Solver 的想法是:

  1. 对已知 linear part 解析求解;
  2. 只对 nonlinear neural network term 做数值近似;
  3. 使用 half-log signal-to-noise ratio 作为新的时间变量。

定义:

formula

经过 variation of constants 和变量替换,解可以写成“解析线性传播 + 对模型输出的指数加权积分”。DPM-Solver 再对这个剩余积分做低阶 Taylor approximation。

2.5.3 DPM-Solver 的阶数

  • DPM-Solver-1:一阶近似,通常每步 1 NFE;
  • DPM-Solver-2:利用额外模型评估近似区间内变化,达到二阶精度;
  • DPM-Solver-formula:对模型项使用更高阶 Taylor expansion,以更多 NFE 换取更低局部截断误差。

这里的“阶”是 numerical accuracy order,不是 diffusion timestep,也不是网络层数。

2.5.4 课程希望我们记住什么?

DPM-Solver 的价值不在于发明了新的生成模型,而在于识别并利用 diffusion ODE 的特殊结构:

Forward SDE
    ↓ Fokker-Planck equation
Continuity equation
    ↓
Probability Flow ODE
    ↓ 利用 semilinear structure
DPM-Solver

在相同 NFE budget 下,它通常优于没有利用 diffusion structure 的传统 solver,优势在低 NFE 区间尤其明显。它不要求重新训练已有模型,实践中约 10 至 20 次 NFE 就可能得到合理结果。


3 概念框架与核心逻辑

学习这一讲最容易出现的问题,是把模型、动力学和求解器混为一谈。可以分成三层:

层次 核心问题 代表对象
学习目标 网络要预测什么? noise、score、formula
动力学 样本按什么方程演化? reverse SDE、PF-ODE
数值求解 怎样用有限次网络调用走完轨迹? Euler-Maruyama、RK4、DPM-Solver

同一个训练好的 score network 可以被放入不同动力学,也可以配合不同 numerical solver。更换 solver 通常不等于重新训练模型。


3.1 Score Matching 路线

formula

核心思想:不必估计完整 normalized density,只学习局部的 log-density gradient。

3.2 采样路线

formula

核心思想:score 提供向高密度区域移动的方向,随机项使过程成为分布采样而不是 mode optimization。

3.3 连续统一路线

formula

核心思想:离散 Gaussian corruption 可以统一成由 drift 和 diffusion 描述的连续随机过程。

3.4 加速路线

formula

核心思想:先把同一 marginal density evolution 写成 deterministic ODE,再利用 diffusion ODE 的特殊结构高效积分。


4 公式速查

4.1 Score function

formula

4.2 Langevin update

formula

4.3 Gaussian conditional score

formula

4.4 Denoising Score Matching

formula

4.5 Forward SDE

formula

4.6 Reverse-time SDE

formula

4.7 Probability Flow ODE

formula

4.8 Noise prediction 与 score prediction

formula

5 总结与复习

  1. Score 不是 probability。 它是 log probability 对输入的梯度,是向量场。
  2. Score 不需要知道 normalization constant。 常数在对 formula 求导时消失。
  3. 沿 score 移动不等于采样。 只有 deterministic ascent 会趋向 mode;Langevin 的随机项帮助恢复整个分布。
  4. DSM 标签是 conditional score,最优网络学到 marginal score。 二者通过条件期望联系起来。
  5. 大噪声不是只负责“破坏图像”。 它会平滑分布并覆盖低密度区域,使全局 score 更容易学习。
  6. NCSN 不是为每个噪声尺度训练一个独立网络。 通常是同一个网络以 noise level 为条件。
  7. DDPM noise predictor 可以转换为 score predictor。 二者相差已知尺度因子。
  8. VP 与 VE 的区别在 forward process。 VP 同时衰减信号并加噪;VE 主要让噪声方差持续增大。
  9. Reverse SDE 的符号必须结合时间方向理解。 生成时从 formula 积分到 formula
  10. PF-ODE 与 SDE 的轨迹不同。 相同的是每个时刻的 marginal density。
  11. PF-ODE 是动力学,DPM-Solver 是数值求解器。 后者不是新的生成模型。
  12. NFE 不总等于 timestep 数量。 高阶 solver 一步可能调用网络多次。

5.1 一张最终知识图

                         Data samples
                              |
                 Why not learn density directly?
                              |
                  score = grad_x log p(x)
                              |
             +----------------+----------------+
             |                                 |
      Score estimation                    Score sampling
             |                                 |
      SM -> DSM -> NCSN              Langevin -> Annealed Langevin
             |                                 |
             +----------------+----------------+
                              |
                    Continuous-time SDE
                    /                 \
              VP-SDE                   VE-SDE
              DDPM                     NCSN
                    \                 /
                     learned s_theta(x,t)
                              |
                 +------------+------------+
                 |                         |
          Reverse-time SDE          Probability Flow ODE
             stochastic                deterministic
                                               |
                                           DPM-Solver
                                               |
                                      low-NFE generation

5.2 最简总结

  • Score function:给出 log-density 增长最快的方向,并消除 normalization constant;
  • Score Matching:不估计密度本身,只估计其 score;
  • DSM:通过已知 Gaussian corruption 的 conditional score 构造训练监督;
  • NCSN:在多个 noise levels 上学习 score,解决覆盖范围与数据精度的矛盾;
  • Annealed Langevin Dynamics:由大噪声到小噪声逐级采样;
  • SDE:用连续随机动力学统一 DDPM 与 NCSN;
  • Reverse-time SDE:利用 score 抵消 forward diffusion,从噪声返回数据;
  • Probability Flow ODE:用确定性轨迹实现相同的 marginal density evolution;
  • DPM-Solver:利用 diffusion ODE 的半线性结构,以较少 NFE 完成采样。

整堂课可以压缩成一句话:

posted on 2026-08-23 17:56  牛牛的智驾笔记  阅读(2)  评论(0)    收藏  举报