训练扩散模型的核心方法:让神经网络回归得分函数 ∇logpt(x)(对数似然的梯度)。因边缘得分不可算,改回归可解析的条件得分(去噪得分匹配),二者梯度相同。
得分函数(score function)指概率分布 q(x) 的对数密度梯度 ∇logq(x)——它指向似然增长最快的方向,是一个处处定义的向量场。扩散模型不直接建模密度,而是学习每个噪声水平 t 下的边缘得分 ∇logpt(x)。
得分匹配(Score Matching)就是训练一个得分网络 stθ(x) 去逼近 ∇logpt(x) 的方法。它与 流匹配 是同一套“条件→边缘→边缘化 trick”框架的两个投影:流匹配学向量场,得分匹配学得分。
- 它是扩散模型(DDPM/Score-based SDE)的训练根基:Song et al. 的 score-based 生成模型与 Ho et al. 的 DDPM 本质都在做得分匹配——DDPM 的“噪声预测”只是得分的一个重参数化。
- 得分解锁 SDE 采样与引导:一旦学到得分,就能用 SDE 扩展 trick 在保持边缘分布不变的前提下注入任意扩散系数 σt(随机采样),也能用贝叶斯拆分做 无分类器引导。
- 与向量场可互换:对高斯概率路径,得分与向量场通过线性公式互相恢复(见下)——学会其一即学会另一,这解释了“流匹配阵营”与“扩散/得分阵营”为何殊途同归。
与向量场完全平行,边缘得分是条件得分按后验加权的平均:
∇logpt(x)=∫∇logpt(x∣z)pt(x)pt(x∣z)pdata(z)dz
对高斯概率路径 pt(⋅∣z)=N(αtz,βt2Id),条件得分有闭式解:
∇logpt(x∣z)=−βt2x−αtz
理想的得分匹配损失 LSM=E[∥stθ(x)−∇logpt(x)∥2] 因边缘得分不可算而无法直接优化。改用可算的条件(去噪)得分匹配损失:
LCSM(θ)=Et,z∼pdata,x∼pt(⋅∣z)[∥stθ(x)−∇logpt(x∣z)∥2]
关键定理:LSM(θ)=LCSM(θ)+C,C 与 θ 无关,故 ∇θLSM=∇θLCSM。最优解 stθ∗=∇logpt。这与流匹配里 LFM=LCFM+C 是完全对偶的结论。
代入高斯条件得分并令 x=αtz+βtϵ:
LCSM=E[βt21∥βtstθ(αtz+βtϵ)+ϵ∥2]
1/βt2 在 βt→0 时数值不稳定。DDPM 的做法是丢弃该系数,并把网络重参数化为噪声预测器 ϵtθ=−βtstθ,得到极简目标:
LDDPM(θ)=E[∥ϵtθ(αtz+βtϵ)−ϵ∥2]
即“网络学习预测被加进去的噪声”。详细的加噪/去噪公式推导见 DDPM 前向与反向扩散公式推导。
对高斯概率路径(Proposition 1):
uttarget(x)=at∇logpt(x)+btx,at=(βt2αtα˙t−β˙tβt), bt=αtα˙t
因两侧都是 x,z 的线性函数,可互相恢复。训练好向量场即等价于知道得分,反之亦然——因此对高斯路径无需分别训练两个网络。
给定得分,可为任意 σt≥0 构造保持同一边缘 pt 的 SDE:
dXt=[uttarget(Xt)+2σt2∇logpt(Xt)]dt+σtdWt
σt=0 退化为确定性 ODE 采样;σt>0 引入随机性(与 Langevin 动力学同源)。实践中存在经验最优 σt(权衡训练误差与模拟误差)。
| 维度 |
得分匹配(Score Matching) |
流匹配 |
| 学习目标 |
得分 ∇logpt(x) |
向量场 uttarget(x) |
| 可算损失 |
去噪得分匹配 LCSM |
条件流匹配 LCFM |
| 采样 |
SDE(可退化为 ODE) |
ODE(可扩展为 SDE) |
| 典型实现 |
DDPM 噪声预测 ϵθ |
速度预测 v=z−ϵ |
| 关系 |
高斯路径下二者线性可互换 |
同上 |
一句话:流匹配和得分匹配不是两种模型,而是同一生成框架在“向量场”与“得分”两个坐标下的表述。
- 2005: Hyvärinen 提出原始 Score Matching。
- 2011: Vincent 提出去噪得分匹配(Denoising Score Matching),与去噪自编码器建立联系。
- 2019–2020: Song & Ermon(NCSN)、Ho et al.(DDPM)把得分匹配推向大规模图像生成。
- 2021: Song et al. 用 SDE 统一 score-based 模型,“Creating noise from data is easy; creating data from noise is generative modeling”。
- 2022–: 与 流匹配 在理论上被统一(本页据 MIT 6.S184 讲义整理)。
- 「得分就是梯度下降的梯度」:得分是对数似然对数据 x 的梯度(∇xlogpt(x)),不是对参数 θ 的梯度;它是一个数据空间的向量场。
- 「DDPM 和得分匹配是两回事」:DDPM 的噪声预测损失就是去噪得分匹配丢掉 1/βt2 系数后的重参数化,二者训练目标同源。
- 「学了得分还得再学向量场才能采样」:对高斯路径二者线性可互换,训练一个即可。