《生成扩散模型漫谈(二十五):基于恒等式的蒸馏(上)》 —— 苏剑林
《生成扩散模型漫谈(二十六):基于恒等式的蒸馏(下)》 —— 苏剑林
不采教师样本,改为匹配得分
设教师扩散模型的噪声预测器为 ϵφ∗,单步学生生成器为 x0(g)=gθ(z),z∼N(0,I)。对学生样本加噪:
xt(g)=αˉtgθ(z)+βˉtε,ε∼N(0,I).(1)
教师预测器在真实数据分布上训练,不能直接给出学生加噪分布 pθ(xt(g)) 的得分。因此再训练一个学生 Denoiser ϵψ:
LD(ψ)=Ez,ε,tϵψ(xt(g),t)−ε2.(2)
若对当前 θ 把它优化到最优,则
ϵψ∗(x,t)=−βˉt∇xlogpθ(x).
同理教师满足 ϵφ∗(x,t)=−βˉt∇xlogpdata,t(x)。让两者在学生样本上接近,就在匹配两种加噪分布的得分:
L1(θ)=Ez,ε,tϵφ∗(xt(g),t)−ϵψ∗(xt(g),t)2.(3)
该方案不需要教师逐步生成训练对,也不需要教师的原始训练集;但与 GAN 一样,实践只能交替更新 ψ 和 θ,ψ 未必达到最优,并且通常会错误地把随 θ 变化的 ψ∗(θ) 当作常数。
得分恒等式从哪里来
对任意只通过 xt 依赖样本的向量函数 f(xt,t),条件得分匹配给出
E[⟨f(xt,t),ϵψ∗(xt,t)⟩]=E[⟨f(xt,t),ε⟩].(4)
原因是最优噪声预测器等于条件期望 E[ε∣xt]。按全期望公式,
E⟨f(xt),E[ε∣xt]⟩=E⟨f(xt),ε⟩.
恒等式只在整体期望下成立,并不表示对每个样本都有 ϵψ∗(xt,t)=ε。此外,f 必须是 xt 的函数;若先求导后某一因子不再满足这个条件,便不能机械替换。
恒等变换削弱对在线 Denoiser 的依赖
展开公式 (3):
∥ϵφ∗−ϵψ∗∥2=⟨ϵφ∗−ϵψ∗,ϵφ∗−ϵψ∗⟩.
选择其中一个满足条件的 ϵψ∗,用公式 (4) 替换成已知采样噪声 ε,可构造改进目标
L2(θ)=E⟨ϵφ∗(xt(g),t)−ϵψ(xt(g),t),ϵφ∗(xt(g),t)−ε⟩.(5)
在 ψ=ψ∗ 时,它与原目标共享正确期望;实际交替训练中,它只出现一次 ϵψ,因而对在线 Denoiser 的近似误差更不敏感。这是稳定性的来源,不是说消除了双层优化。
SiD 实际使用
LSiD=L2−λL1.(6)
负的 L1 不是通常意义上的“再做一次得分匹配”,而是调整生成器梯度中不同路径的系数。
先变换再求导与先求导再变换
下篇的关键是:公式 (4) 在函数值层面成立,但求 θ 梯度时,ϵψ∗ 同时通过输入 xt(g) 和最优参数 ψ∗(θ) 依赖 θ。将全导数拆开:
∇θϵψ∗(θ)(xt(g),t)=输入路径Jxϵψ∗∇θxt(g)+最优响应路径Jψϵψ∗∇θψ∗.(7)
交替训练通常保留第一项、忽略第二项。先做恒等变换再求导,与先对平方范数求导后再对合法因子应用恒等式,会产生不同的系数。FGM 从分布生成流的目标梯度出发,得到的组合对应 λ=1/2;它抵消的是由于 stop-gradient 近似带来的特定重复项。
另一种把目标看成“教师与学生得分差对生成样本的推动方向”的推导,可得到 λ=1 的解释。两者并不说明所有 λ 等价,而是说明不同代理目标在理想条件下对应不同的梯度分解。实际 ϵψ 未达最优时,仍需把 λ 当作稳定性和偏差之间的超参数。
训练时真正维护的三套模型
教师 ϵφ∗ 固定;学生 Denoiser ϵψ 用公式 (2) 拟合当前学生分布;生成器 gθ 用公式 (6) 更新。每次生成器更新时应冻结两套 Denoiser 参数,但保留从它们的输出经 xt(g) 回到生成器的输入梯度。
三套同量级网络带来较高显存占用。用 LoRA 表示额外 Denoiser 可以节省参数,但不能改变方法对在线估计学生得分的依赖。SiD 的收益是省掉教师多步采样,代价则是交替优化和更复杂的梯度路径。