《生成扩散模型漫谈(十八):得分匹配 = 条件得分匹配》 —— 苏剑林
边缘目标理论正确,却不能直接计算
给定数据 x0∼p0 和已知扰动核 pt(xt∣x0),时刻 t 的边缘分布是
pt(xt)=∫pt(xt∣x0)p0(x0)dx0.(1)
标准 Score Matching 希望网络拟合边缘 Score:
LSM(θ)=Ext∼pt[∥∇xtlogpt(xt)−sθ(xt,t)∥2].(2)
p0 通常只有数据样本,没有可求导的解析密度,所以公式 (1) 的积分和边缘 Score 都未知。形式上可以写成
∇logpt(xt)=Ex0∼p0[pt(xt∣x0)]Ex0∼p0[∇pt(xt∣x0)].
但用一个 batch 分别估计分子、分母再取比值,一般是有偏估计;分母小时还会不稳定。增大 batch 只能逐渐逼近总体比值,并没有把它变成理想的单样本训练标签。
实际扩散模型使用条件得分匹配:
LCSM(θ)=Ex0∼p0,xt∼pt(⋅∣x0)[∥∇xtlogpt(xt∣x0)−sθ(xt,t)∥2].(3)
对高斯扰动,条件 Score 有解析式,因此每个独立样本对 (x0,xt) 都能给出无偏的 Monte Carlo loss 与梯度估计。
边缘 Score 是条件 Score 的后验均值
从公式 (1) 直接求导,并假设可以交换微分与积分:
∇xtlogpt(xt)=pt(xt)1∫p0(x0)∇xtpt(xt∣x0)dx0=∫pt(xt)p0(x0)pt(xt∣x0)∇xtlogpt(xt∣x0)dx0=E[∇xtlogpt(xt∣x0)∣xt].(4)
第二行只是乘除 pt(xt∣x0),第三行使用 Bayes 公式识别出后验 pt(x0∣xt)。这个恒等式不要求扰动核是高斯;需要的是相关密度存在、导数与积分交换合法。
它也解释了为什么只输入 (xt,t) 的网络能够从依赖 x0 的监督中学到边缘 Score:对同一个 xt,平方损失会把所有可能 x0 给出的条件 Score 平均起来。
Jensen 不等式只给出了一半结论
令
Y=∇xtlogpt(xt∣x0),s=sθ(xt,t).
在固定 xt 后,公式 (4) 给出 E[Y∣xt]=∇logpt(xt)。由条件 Jensen 不等式,
∥E[Y∣xt]−s∥2≤E[∥Y−s∥2∣xt].
再对 xt 求期望:
LSM(θ)≤LCSM(θ).
这说明条件目标是边缘目标的上界,但“最小化一个上界”本身还不能保证两个目标有完全相同的优化过程。更强的结果要把平方项完整展开。
两个目标只相差条件方差
使用条件均值的平方误差分解:
E[∥Y−s∥2∣xt]=∥E[Y∣xt]−s∥2+E[∥Y−E[Y∣xt]∥2∣xt].
对 xt 求期望并代回 Score 恒等式:
LCSM(θ)=LSM(θ)+Ct(5)
其中
Ct=Ext[Ex0∣xt∥∇logpt(xt∣x0)∥2−∥∇logpt(xt)∥2]
是条件 Score 在给定 xt 后的方差总和,与 θ 无关。因此两个总体目标具有相同梯度、最优参数和优化地形;条件目标数值更大,只是加了一个模型无法改变的常数。
这里的常数通常依赖 t。若总训练目标还给不同时刻加权,那么每个 t 上分别相差常数,积分后仍与 θ 无关;但如果权重本身可学习或依赖模型参数,就需要重新检查这个结论。
总体等价不等于估计器等价
既然公式 (5) 说明两者等价,为什么直接估计边缘 Score 仍需要更大的 batch?
等价的是精确期望下的函数,不是任意有限样本实现。条件目标直接采样 (x0,xt) 后计算一个解析标签,它的 batch 均值是总体条件目标的无偏估计。直接边缘目标若先用 batch 估计公式 (1) 中的两个期望再取比值,会因为非线性的除法产生偏差;把这个有偏 Score 再放进平方损失,还会继续改变统计性质。
只有先用恒等式与平方展开把目标化成公式 (3),才得到实用的无偏 Monte Carlo 形式。因此“SM = CSM”应理解为:经过解析化简后,CSM 是 SM 的等价可训练形式;不能理解为任何直接计算 SM 的小 batch 算法都与 CSM 一样稳定。
在高斯核 xt=αtx0+σtε 下,条件 Score 为 −ε/σt,再把网络缩放为噪声预测器,就得到常见的噪声 MSE。这条链把“预测噪声”与“学习未知边缘密度的对数梯度”严格连接起来,而不是只靠直觉类比。