前置
1. 分数学习目标
设 pt 是前向扩散在时刻 t 的边缘密度,分数为
s⋆(x,t):=∇xlogpt(x).
训练网络 sθ 的理想加权 Fisher divergence 为
Jscore(θ)=21Et∼π[λ(t)EXt∼pt∥sθ(Xt,t)−∇logpt(Xt)∥22].
这里:
- π 是明确指定的训练时间分布,不必是均匀分布;
- λ(t)≥0 是损失权重;
- 连续时间高斯扰动在 t=0 常有 b0=0,条件分数奇异,因此实践中通常取
t∼π 支持于 [ε,T],ε>0;
- p0=pdata 是数据边界分布,pT 是终端边缘,只有日程设计充分时才近似所选先验 pprior。
真实边缘分数通常不可计算,因为
pt(x)=∫p0t(x∣x0)p0(x0)dx0.
2. 去噪分数匹配
若扰动核 p0t(xt∣x0) 的条件分数可解,则去噪分数匹配
(DSM)(Vincent, 2011) 目标为
JDSM(θ)=21Et∼π[λ(t)EX0∼p0,Xt∼p0t(⋅∣X0)∥sθ(Xt,t)−∇xtlogp0t(Xt∣X0)∥22].
该目标只需从数据和已知扰动核采样。
3. DSM 等价性证明
固定 t。在可将梯度移入积分、且所有期望有限的正则条件下,
∇xpt(x)=∫∇xp0t(x∣x0)p0(x0)dx0=∫p0t(x∣x0)p0(x0)∇xlogp0t(x∣x0)dx0.
除以 pt(x) 得 Fisher identity:
∇logpt(x)=E[∇xlogp0t(x∣X0)∣Xt=x].
因此对任意 sθ,
EXt∼pt[⟨sθ(Xt,t),∇logpt(Xt)⟩]=EX0,Xt[⟨sθ(Xt,t),∇xtlogp0t(Xt∣X0)⟩].
展开两个平方目标:
21Ept∥sθ−∇logpt∥2=21Ept∥sθ∥2−Ept⟨sθ,∇logpt⟩+21Ept∥∇logpt∥2,
21Ep0p0t∥sθ−∇logp0t∥2=21Ept∥sθ∥2−Ep0p0t⟨sθ,∇logp0t⟩+21Ep0p0t∥∇logp0t∥2.
前两项逐一相同,最后一项都与 θ 无关。因此
JDSM(θ)=Jscore(θ)+C
且 C 与 θ 无关;二者具有相同的参数梯度和最优解。这个证明不声称两个目标的数值相等。
若改用经典 Hyvärinen score matching,把目标化为
Ept[∇⋅sθ+21∥sθ∥2],
还需额外假设边界通量
pt(x)sθ(x,t) 在无穷远消失,才能合法分部积分。
4. 线性高斯核下的参数化
设
Xt=atX0+btϵ,ϵ∼N(0,I),bt>0.
则
p0t(xt∣x0)=N(atx0,bt2I)
且条件分数为
∇xtlogp0t(xt∣x0)=−bt2xt−atx0=−btϵ.
4.1 score 参数化
网络直接输出
sθ(xt,t)≈∇logpt(xt).
DSM 单样本损失为
λ(t)sθ(xt,t)+btϵ22.
4.2 epsilon 参数化
定义
sθ(xt,t):=−btϵθ(xt,t).
则
λ(t)sθ+btϵ2=bt2λ(t)∥ϵθ−ϵ∥2.
所以“不加权 epsilon MSE”对应的是分数 DSM 权重
λ(t)=bt2,
而不是所有权重选择都自动等价于同一个无权 epsilon 目标。
4.3 x0 参数化
若网络预测 x^0,θ,则
ϵθ=btxt−atx^0,θ,
sθ=bt2atx^0,θ−xt.
因此 score、epsilon 和 x0 参数化在 at,bt=0 时可相互转换,但损失权重会随转换改变。
5. 引导目标的 epsilon 形式
若希望在无条件分数上加入一个给定向量场
h(xt,t,y)≈∇xtlogpt(y∣xt),
则目标分数是
−btϵ+h.
采用 sθ=−ϵθ/bt 时,
−btϵθ+btϵ−h2=bt21∥ϵθ−ϵ+bth∥2.
例如启发式 loss guidance 取
h=∇xt[−ℓ(xt,y)],则 epsilon 目标为
ϵ−bth=ϵ+bt∇xtℓ.
该代数关系本身是精确的,但 h 是否真是条件似然分数取决于引导方法的近似;详见
条件扩散。
6. 训练伪代码
算法:无条件扩散模型训练
- 选定时间分布 π、权重 λ 和扰动核
p0t。
- 重复直到收敛:
- 采样 x0∼pdata;
- 采样 t∼π;连续时间通常限制 t≥ε;
- 采样 ϵ∼N(0,I);
- 构造
xt=atx0+btϵ;
- 计算
λ(t)sθ(xt,t)+btϵ2
或其等价的正确加权 epsilon 形式;
- 反向传播并更新 θ。
7. 逆向 SDE 采样伪代码
在网格
0=t0<t1<⋯<tN=T
上,从终端向起点积分。令
Δti:=ti−1−ti<0.
算法:Euler—Maruyama 逆向采样
- 采样 xtN∼pprior。这里应使用实际终端先验;只有模型定义如此时才写成
N(0,I)。
- 对 i=N,N−1,…,1:
- 计算逆向漂移
frev=f(xti,ti)−g(ti)2sθ(xti,ti);
- 采样
ΔWi∼N(0,∣Δti∣I);
- 更新
xti−1=xti+frevΔti+g(ti)ΔWi.
- 返回 xt0。
若使用 probability-flow ODE,则删除随机增量,并把分数项系数从 g2 改为 21g2。两种采样器只共享边缘路径,不共享单条轨迹。
Vincent, P. (2011). A Connection Between Score Matching and Denoising Autoencoders. Neural Computation, 23(7), 1661–1674.