概率密度估计的经典方法——最大似然估计——要求模型给出归一化的概率密度 ,这在复杂模型中往往不可行,因为归一化常数 的高维积分无法解析求解。2005 年,Aapo Hyvarinen 提出了一个绕过归一化常数的方法:得分匹配(Score Matching)。它不估计密度本身,而是估计密度的梯度——得分函数。
得分匹配的思想起初并未在生成模型领域引起广泛关注。直到 2019 年左右,宋飏将去噪得分匹配与朗之万采样结合,提出了基于得分的生成模型,随后发展出扩散模型。与此同时,苏剑林从能量视角分析了 GAN 的训练动力学,揭示了 GAN 与扩散 ODE 的深层联系。
这篇文章从得分匹配出发,建立 VAE、GAN 和扩散模型在分布匹配框架下的统一视角,展示这三条看似不同的研究路线如何收敛到同一组数学结构。
得分函数与 Hyvarinen 得分匹配
得分函数定义为对数概率密度的梯度:
得分函数有一个重要性质:它不依赖于归一化常数。因为 ,而 ,所以 。这意味着我们可以用未归一化的模型来计算得分函数,完全绕过配分函数的计算难题。
Hyvarinen 的关键观察是:我们可以通过匹配得分函数来估计模型参数,而不需要知道归一化常数。具体地,定义 Fisher 散度:
其中 是模型的得分函数, 是数据的得分函数。
直接优化 需要知道数据得分 ,而这正是未知的。Hyvarinen 的贡献在于证明了,在温和的正则条件下, 可以改写为仅涉及 及其雅可比矩阵的形式:
其中 是得分函数的雅可比矩阵, 是迹运算。这个目标不涉及数据得分 ,可以直接用数据样本估计期望项。
但 Hyvarinen 得分匹配有一个实际限制: 的计算需要对 的每个分量求偏导,在 是高维向量时计算量很大。这正是去噪得分匹配要解决的问题。
去噪得分匹配
Vincent (2011) 提出的去噪得分匹配(Denoising Score Matching, DSM)提供了一个等价但更高效的替代方案。核心思想是:对数据加噪,然后学习如何去噪——去噪的方向恰好就是得分函数。
具体地,给定噪声水平 ,定义扰动分布:
Vincent 证明了:
其中 是扰动分布的得分函数。当 足够小时,,因此最小化 DSM 目标等价于匹配数据分布的得分函数。
对于高斯噪声 ,条件得分函数有简洁形式:
DSM 的训练目标因此变为:
这正是扩散模型训练目标的核心形式。去噪得分匹配建立了得分函数估计与扩散模型之间的桥梁:扩散模型就是在多个噪声水平上训练得分函数,然后用朗之万动力学从学到的得分场中采样。
GAN 的对抗训练:估计密度比
GAN(Generative Adversarial Network)采用了一种与得分匹配截然不同的策略。它不显式估计密度或得分函数,而是通过对抗训练隐式地衡量分布差异。
GAN 的判别器 学习区分真实样本和生成样本。Goodfellow 等人 (2014) 证明,最优判别器为:
其中 是真实数据分布, 是生成分布。这等价于估计密度比 :当 时,两个分布在 处无法区分。
原始 GAN 的训练目标等价于最小化 Jensen-Shannon 散度 。WGAN 将目标替换为 ,判别器变为学习 Kantorovich-Rubinstein 对偶中的 1-Lipschitz 函数。
GAN 作为扩散 ODE
苏剑林在《生成扩散模型漫谈(十九):作为扩散ODE的GAN》中提出了一个深刻的统一视角:GAN 的训练过程可以理解为扩散 ODE 在"参数训练时间维度"上的实现。
Wasserstein 梯度流方程
考虑生成器参数 的演化。如果目标是缩小生成分布 与数据分布 之间的 距离,那么参数的连续演化遵循 Wasserstein 梯度流方程:
这个方程描述了参数沿 距离下降最快的方向移动——这正是最自然的连续优化动力学。
判别器估计密度比
GAN 判别器的最优解 可以改写为对数密度比的形式:
这个密度比 正是两个分布之间差异的局部度量——它衡量了在 处数据分布密度相对于生成分布密度的优势程度。从 Wasserstein 梯度流的角度看, 等价于估计分布间的密度梯度方向。
向前推一步
将密度梯度方向 投影到生成器参数空间,就得到了参数更新方向。具体地,密度比 给出了分布应该向何处移动的信号,而生成器 将这个信号从数据空间反传到参数空间:
这个梯度正是 Wasserstein 梯度流在离散参数空间中的近似实现——判别器提供梯度方向,生成器将梯度投影到参数空间。
单步优化的等价性
以下为启发式推导(informal argument),用于说明两种参数更新方向在判别器仅训练一步时为何"指向同一处"。严格证明需展开判别器对 的链式法则、逐项核对梯度系数,本文不涉及——感兴趣的读者可参考苏剑林《生成扩散模型漫谈(十九):作为扩散ODE的GAN》中式 (8) 与式 (11) 的完整推导。
关键一步:在单步优化的条件下,上述参数更新近似等价于标准 GAN 的非饱和损失。推导路线如下。
首先,从最优判别器恢复密度比。GAN 的最优判别器为 ,由此可以构造对数密度比:
现在比较两个生成器目标的梯度方向。非饱和损失 与 Wasserstein 梯度流投影 是否指向相同的参数更新方向?关键代数步骤如下:将 展开,
当 (生成分布尚未拟合数据分布时),。因此 ,而 的梯度方向与 的负梯度方向一致( 关于 单调递减)。这意味着:
左端是标准 GAN 生成器的非饱和损失梯度,右端是 Wasserstein 梯度流的参数投影。这个等价性仅在判别器与生成器交替优化一步时成立——判别器提供一次密度比估计,生成器据此做一步参数更新。苏剑林在原文中式(8)和式(11)的推导给出了完整的代数核对(本文略去)。
为什么 GAN 不能训练太多步
上述等价性有一个关键前提:判别器只训练一步。如果判别器训练过多步,密度比估计 会逐渐偏离真实的梯度方向。原因在于,当判别器接近最优时, 趋近于 0 或 1,梯度信号饱和——判别器变得过于自信,无法提供有意义的密度比信息。此时参数更新不再等价于沿 Wasserstein 梯度流方向移动,而是沿着一个被扭曲的方向更新,导致训练不稳定。
这正是原始 GAN 训练中判别器与生成器需要严格同步更新的根本原因:等价性仅在单步优化时成立,多步优化会破坏这种等价性。
与扩散模型的结构对比
从 Wasserstein 梯度流的视角看,扩散模型与 GAN 的根本区别在于"传输步数":
- 扩散模型用 步完成从噪声到数据的传输——每步只做小幅修正,得分函数在每一步都提供准确的梯度方向,因此优化景观平滑。
- GAN 用 1 步完成从噪声到数据的传输——单步大更新,等价性仅在单步优化时才成立,梯度方向一旦偏离就难以纠正。
这个对比揭示了 GAN 训练不稳定的根本原因:一步到位的映射比多步渐进的映射更难优化,梯度信号更不稳定。扩散模型的多步结构天然提供了更平滑的优化景观,每一步都有纠错的机会。
统一视角:VAE、GAN、扩散模型的分布匹配
现在我们可以将三种生成模型放在一个统一的框架下理解——它们都是分布匹配的不同实现,但优化目标和匹配策略不同。
| 模型 | 优化目标 | 匹配策略 | 分布距离 |
|---|---|---|---|
| VAE | 最大化 ELBO | 变分近似 | KL 散度(变分后验 vs 真实后验) |
| GAN | 对抗损失 | 密度比估计 | JS 散度 / 距离 |
| 扩散 | 得分匹配 | 得分函数估计 | 上界 |
VAE 通过变分推断近似后验分布,最小化 。它的优势是训练稳定、有显式的潜空间结构,但受限于单步映射和 MSE 重构损失。
GAN 通过对抗训练估计分布间的密度比或距离,最小化 JS 散度或 距离。它能产生清晰的生成结果,但训练不稳定、模式坍塌问题严重。
扩散模型 通过多步去噪训练得分函数,其损失隐含了 距离的上界约束。多步结构提供了平滑的优化景观,得分匹配避免了对抗训练的不稳定性。
从分布距离的角度看,三者形成了从 KL 到 JS/ 到 的递进关系。KL 散度的梯度消失问题导致 VAE 生成模糊,JS 散度在不重叠时梯度为零导致 GAN 训练不稳定,而 距离始终提供有意义的梯度,这从数学上解释了扩散模型的成功。
应用
RLHF 对齐中的分布匹配
在 RLHF 训练中,策略优化可以理解为一种分布匹配:将对齐策略 推向奖励模型偏好的分布,同时用 KL 散度或 距离约束偏离参考策略 的程度。这个约束与 VAE 的正则项结构类似——都是信息瓶颈的形式。
从得分匹配的角度看,DPO(Direct Preference Optimization)可以理解为在偏好数据上学习一个隐式的得分函数:给定偏好对 ,DPO 的训练目标鼓励模型增加 的概率而降低 的概率,这等价于沿着偏好得分函数的方向移动策略分布。
得分蒸馏(SDS)与文本到 3D
得分蒸馏采样(Score Distillation Sampling, SDS)是文本到 3D 生成(如 DreamFusion)的核心技术。SDS 利用预训练扩散模型的得分函数来引导 3D 模型的优化:
其中 是扩散模型的噪声预测网络, 是 3D 渲染的 2D 图像。SDS 是在用扩散模型的得分函数(通过噪声预测参数化)作为"教师"信号,引导 3D 模型的参数 向更符合文本描述的方向更新。
这种"用预训练得分函数指导其他模型优化"的范式,正是得分匹配思想超越纯生成任务的体现。得分函数不仅用于采样,还可以作为通用的梯度信号来源。
参考文献
- 苏剑林. 生成扩散模型漫谈(十八):得分匹配 = 条件得分匹配. https://kexue.fm/archives/9509
- 苏剑林. 生成扩散模型漫谈(十九):作为扩散ODE的GAN. https://kexue.fm/archives/9662
- 苏剑林. 能量视角下的GAN模型. https://kexue.fm/archives/6316
- Hyvarinen, A. (2005). Estimation of Non-Normalized Statistical Models by Score Matching. JMLR.
- Vincent, P. (2011). A Connection Between Score Matching and Denoising Autoencoders. Neural Computation.
- Goodfellow, I., et al. (2014). Generative Adversarial Nets. NeurIPS.
- Song, Y., & Ermon, S. (2019). Generative Modeling by Estimating Gradients of the Data Distribution. NeurIPS.
- Poole, B., et al. (2023). DreamFusion: Text-to-3D using 2D Diffusion. ICLR.