跳转至

概率分布、熵与配分函数

概率分布是神经网络、统计物理和 NNQS 的共同语言。

在机器学习中,我们学习:

\[ p_\theta(y\mid x) \quad\text{或}\quad p_\theta(x). \]

在统计物理中,我们经常写:

\[ p(x)={e^{-\beta E(x)}\over Z}. \]

在 NNQS 中,采样分布是:

\[ p_\theta(x)=|\psi_\theta(x)|^2. \]

这些式子的共同点是:都在描述哪些状态更可能出现。

概率分布的基本要求

离散分布 \(p(x)\) 满足:

\[ p(x)\ge 0, \qquad \sum_x p(x)=1. \]

连续分布则写成:

\[ p(x)\ge 0, \qquad \int p(x)\,dx=1. \]

归一化条件很重要。一个模型可以给每个状态一个分数 \(s_\theta(x)\),但如果要解释为概率,必须转成归一化形式。

配分函数

统计物理中常见 Boltzmann 分布:

\[ p(x) = {e^{-\beta E(x)}\over Z}. \]

其中:

\[ Z=\sum_x e^{-\beta E(x)}. \]

\(Z\) 称为配分函数。它的作用是归一化:

\[ \sum_x p(x) = {1\over Z}\sum_x e^{-\beta E(x)} =1. \]

机器学习中也经常出现类似结构。比如 softmax:

\[ p_i={e^{z_i}\over\sum_j e^{z_j}}. \]

分母:

\[ \sum_j e^{z_j} \]

就是一个有限类别上的归一化因子。

Shannon 熵定义为:

\[ H(p) = -\sum_x p(x)\log p(x). \]

它衡量分布的不确定性。

如果分布集中在一个状态上:

\[ p(x^\star)=1, \]

则:

\[ H(p)=0. \]

如果分布很均匀,熵更大。

热力学熵和 Shannon 熵

Shannon 熵只需要概率分布。热力学熵还需要物理解释:状态 \(x\) 是微观态,概率来自某个物理系综。

两者形式相近:

\[ S=-k_B\sum_x p(x)\log p(x). \]

和 Shannon 熵相比,多了 Boltzmann 常数 \(k_B\) 和物理单位。

自由能

Helmholtz 自由能为:

\[ F=E-TS. \]

在正则系综中也可以写成:

\[ F=-{1\over\beta}\log Z. \]

这个式子说明:配分函数不是单纯归一化常数,它编码了整个热力学信息。

和神经网络训练的关系

神经网络训练经常可以看成分布匹配。

语言模型学习:

\[ p_\theta(t_i\mid t_{<i}) \approx p_{\rm data}(t_i\mid t_{<i}). \]

分类模型学习:

\[ p_\theta(y\mid x) \approx p_{\rm data}(y\mid x). \]

NNQS 学习一个波函数,使得:

\[ p_\theta(x)=|\psi_\theta(x)|^2 \]

在能量目标下变得更优。

因此,概率分布、熵、配分函数不是孤立概念。它们分别回答:

概念 问题
概率分布 哪些状态更可能出现?
分布有多不确定?
配分函数 如何归一化所有状态权重?
自由能 能量和熵如何折中?

在概率图模型中,很多推断问题都可以理解为从联合分布中求边缘分布:

\[ p(x_i)=\sum_{\{x_j:j\neq i\}}p(x_1,\ldots,x_N). \]

当联合分布由局部因子构成时,可以用消息传递方法近似或精确求这些边缘概率。相关内容见 推断、统计推断与信念传播