目录

1. 背景

2. 原理

 2.1 核心思想

 2.2 从 Fisher 散度到可计算的损失函数

2.3 几何意义

3. 公式体系

3.1 基础形式

3.2 条件得分匹配

3.3 去噪得分匹配(Denoising Score Matching, DSM)

4. 局限

4.1 流形假设(Manifold Hypothesis)

4.2 低密度区域的估计偏差

 4.3 混合分布的比例系数丢失

4.4 对不可微分布的局限

5. 小结


Score Matching 是扩散模型和基于分数的生成模型的理论基石。下面从背景、原理、公式推导以及局限性四个方面展开。扩散模型的核心在于逆转一个逐渐向数据添加噪声的过程。这种逆转所需的主要元素是,在任何噪声水平𝑡下,知道向哪个方向迈步才能使数据 的噪声略微减少,使其更接近原始数据分布。噪声水平𝑡对应扩散过程的特定阶段,模型需预测当前阶段的梯度方向以逐步降噪。

1. 背景

在传统概率建模中,很多任务需要估计概率密度函数p(x),但存在一个核心难题——归一化常数(配分函数)难以计算。对于复杂的能量模型,归一化常数 Z = \int e^{-E(x)} dx涉及高维空间上的积分,这几乎是不可行的。

2005年,Aapo Hyvärinen 在一篇开创性论文《Estimation of Non-Normalized Statistical Models by Score Matching》中提出了 “Score Matching”,巧妙地绕开了这个难题。其核心洞察是:在许多任务中,我们其实并不需要完整的概率密度p(x),只需要它的梯度——即得分函数(Score Function):


s(x) = \nabla_x \log p(x)

归一化常数在取对数后变为一个加性常数,求导时自动消去,因此得分匹配天然不需要处理归一化常数。随后,Score Matching 被进一步发展,支撑起了基于分数的生成模型(如 NCSN)以及主流的扩散模型(DDPM、SMLD 等)。

2. 原理

 2.1 核心思想

Score Matching 的核心是最小化模型得分与真实得分之间的 Fisher 散度(Fisher Divergence)。Fisher 散度衡量的是两个得分函数在数据分布加权下的期望平方距离:


J(\theta) = \frac{1}{2} \int p_{\text{data}}(x) \| \nabla_x \log p_{\text{model}}(x; \theta) - \nabla_x \log p_{\text{data}}(x) \|^2 dx
 

其中:
- p_{\text{data}}(x)是真实的(未知的)数据分布
- p_{\text{model}}(x; \theta)是待估计的模型分布

 2.2 从 Fisher 散度到可计算的损失函数

直接计算上式需要知道\nabla_x \log p_{\text{data}}(x),即真实得分函数,但它在实践中是未知的。Hyvärinen 《Score Matching Framework》的关键贡献是证明了:在合适的边界条件下,Fisher 散度可以转化为一个不依赖真实得分的等价形式。

通过分部积分,可以得到:

J(\theta) = \int p_{\text{data}}(x) \left[ \frac{1}{2} \| \nabla_x \log p_{\text{model}}(x; \theta) \|^2 + \text{tr}\left( \nabla_x^2 \log p_{\text{model}}(x; \theta) \right) \right] dx + \text{const}

这个等价形式只依赖于模型得分及其二阶导数(即 Hessian 的迹),且可以用训练样本的均值来近似:

\hat{J}(\theta) = \frac{1}{N} \sum_{n=1}^{N} \left[ \frac{1}{2} \| \nabla_x \log p_{\text{model}}(x_n; \theta) \|^2 + \text{tr}\left( \nabla_x^2 \log p_{\text{model}}(x_n; \theta) \right) \right]

2.3 几何意义

得分函数\nabla_x \log p(x)本质上是一个“ 向量场 ”,指向概率密度增长最快的方向。Score Matching 的目标就是让模型学习这个向量场——不需要知道概率密度的绝对值,只需要知道“往哪个方向走能更接近高概率区域”。一旦掌握了这个梯度场,就可以从任意随机点出发,沿着得分方向迭代更新,最终收敛到数据分布的高概率区域,从而生成高质量样本。

3. 公式体系

3.1 基础形式

假设模型为 p_m(x; \theta) = \frac{1}{Z(\theta)} \exp(-E(x; \theta)),其中 Z(\theta) 是归一化常数。得分函数为:


s_m(x; \theta) = \nabla_x \log p_m(x; \theta) = -\nabla_x E(x; \theta)
 

可见,得分函数的计算与 Z(\theta)完全无关。Score Matching 的优化目标为:


\mathcal{L}_{SM}(\theta) = \mathbb{E}_{p_{\text{data}}(x)} \left[ \frac{1}{2} \| s_m(x; \theta) \|^2 + \text{tr}\left( \nabla_x s_m(x; \theta) \right) \right]
 

最小化该目标等价于最小化模型得分与真实得分之间的 Fisher 散度。

3.2 条件得分匹配

通过引入数据扰动,可以建立条件得分匹配的等价形式:


\mathcal{L}_{CSM}(\theta) = \mathbb{E}_{p_{\text{data}}(x)} \mathbb{E}_{q(\tilde{x}|x)} \left[ \| s_m(\tilde{x}; \theta) - \nabla_{\tilde{x}} \log q(\tilde{x}|x) \|^2 \right]
 

其中 q(\tilde{x}|x) 是一个条件分布(如加噪分布)。这是后续扩散模型训练目标的理论基础。

3.3 去噪得分匹配(Denoising Score Matching, DSM)

DSM 是目前最主流的变体,也是扩散模型的核心训练方法。其核心思想是:对干净数据加噪得到 x_t,让模型学习去噪得分。损失函数为:


\mathcal{L}_{DSM}(\theta) = \mathbb{E}_{x_0, \epsilon, t} \left[ \| s_\theta(x_t, t) - \nabla_{x_t} \log q(x_t | x_0) \|^2 \right]
 

对于高斯噪声,s_{\theta }\left ( x_{t} ,t\right )\approx \nabla_{x_t} \log q(x_t | x_0) = -\frac{x_t - x_0}{\sigma_t^2},这恰好与预测噪声的形式等价,从而建立了 Score Matching 与扩散模型的直接联系。这个式子尤为重要,因在扩散模型中我们大多假设噪声符合高斯分布。

4. 局限

4.1 流形假设(Manifold Hypothesis)

真实世界的高维数据(如图像)往往集中在嵌入高维空间中的低维流形上。对于不在流形上的点,概率密度为零,得分函数在数学上无定义。此外,在流形之外,得分函数的方向是模棱两可的,这会导致基于分数的采样过程失效。

4.2 低密度区域的估计偏差

在数据分布的低密度区域,训练样本稀缺,得分匹配模型可学到的信号非常少,容易学习到噪声而非真实梯度。这会直接影响采样效率——基于 朗之万(Langevin) 动力学的采样在低密度区域可能陷入“徘徊”状态,难以有效探索数据空间。

 4.3 混合分布的比例系数丢失

在混合分布(如 p(x) = \pi_1 p_1(x) + \pi_2 p_2(x))场景下,得分函数仅反映局部的概率密度变化方向,“ 无法反映各成分的相对权重 ”。这意味着,即使某个分布成分的概率占比更高,基于得分的 Langevin 采样也可能以相等的概率采样到各个成分,导致生成样本的分布偏离真实的混合比例。

4.4 对不可微分布的局限

原始 Score Matching 方法要求概率密度函数在“ 整个实数空间 ”上可微。对于定义域受限的分布(如非负数据、截断分布等),这一限制需要特殊的推广处理(如 Generalized Score Matching)才能解决。

5. 小结

Score Matching 通过直接建模概率密度的梯度(得分函数),巧妙地避开了归一化常数问题,为复杂分布的建模开辟了新路径。其三大经典局限(流形假设、低密度区域偏差、混合比例丢失)则促使研究者发展出“加噪扰动”和“多尺度噪声调度”等策略,催生了 NCSN(Noise Conditional Score Networks),并最终与 DDPM 统一在基于分数的生成模型框架之下。今天,Denoising Score Matching 已成为训练扩散模型的标准方法,广泛应用于高质量图像生成,三维点云重建等任务。

本文来源于网络学习后,通过个人总结等完成,感谢各位前辈的讲解,如有不妥或有误的地方,欢迎大家来讨论,批评指正。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐