跳转至

推断、统计推断与信念传播

这几个词和机器学习关系很直接。它们都在说同一个核心问题:

已经看到一部分信息,如何判断隐藏变量、模型参数、未来结果或真实状态是什么?

先用一张表压住:

概念 一句话
推断 inference 根据已知信息推出未知量。
统计推断 statistical inference 用概率模型和数据估计参数、预测未知量,并描述不确定性。
信念 belief 在概率模型里,对某个变量当前状态的概率判断。
信念传播 belief propagation 在图模型上通过局部消息传递更新变量的边缘概率。

注意一个容易混的点:在深度学习工程里,inference 经常指“模型训练好以后做预测”;在统计机器学习里,inference 经常指“根据观测数据求后验、边缘概率或隐藏状态”。两个用法都合理,关键看语境。

推断

机器学习里的推断最宽泛地说就是:

给定模型和观测信息,求未知的标签、隐藏变量、参数、未来输出或动作。

例如图像分类模型看到一张图片:

输入:一张图片
模型:神经网络
输出:猫 0.92,狗 0.05,狐狸 0.03

这一步就是 inference。

在深度学习工程里,经常把流程分成:

training = 调整参数
inference = 用训练好的参数做预测

训练阶段更新权重:

\[ \theta \leftarrow \theta-\eta\nabla_\theta L. \]

推断阶段固定权重:

\[ \hat y=f_\theta(x). \]

所以“推断”在工程语境下通常等价于 forward prediction。

统计推断

统计推断更强调概率模型和不确定性:

从有限样本出发,推断总体、参数、隐藏变量或未来数据,并说明这个判断有多不确定。

常见问题包括:

类型 问题例子
参数估计 高斯分布的均值 \(\mu\) 和方差 \(\sigma^2\) 是多少?
假设检验 A 方法真的比 B 方法好吗?
后验推断 看到数据后,参数最可能在哪里?
预测 未来一个样本大概率落在哪里?
不确定性估计 这个结论有多可靠?

例如高斯模型:

\[ x_i\sim\mathcal{N}(\mu,\sigma^2). \]

观察到数据:

\[ D=\{x_1,\ldots,x_n\}. \]

估计 \(\mu,\sigma^2\) 就是统计推断。

如果使用贝叶斯语言,核心公式是:

\[ p(\theta\mid D) = {p(D\mid\theta)p(\theta)\over p(D)}. \]

其中:

符号 含义
\(\theta\) 模型参数
\(D\) 观测数据
\(p(\theta)\) 先验
\(p(D\mid\theta)\) 似然
\(p(\theta\mid D)\) 后验
\(p(D)\) evidence / 边缘似然

统计推断的核心问题就是:

看到数据 \(D\) 以后,对未知量 \(\theta\) 的概率判断如何改变?

推断和统计推断的区别

概念 范围 重点
推断 inference 更宽 根据已知推出未知
统计推断 statistical inference 更具体 在概率模型下从样本推断参数、隐藏变量、总体或未来数据

一些常见语境:

说法 通常含义
neural network inference 训练后模型前向预测
Bayesian inference 计算或近似后验分布
variational inference 用简单分布近似复杂后验
inference in graphical models 求隐藏变量边缘概率、MAP 状态或后验
LLM inference 大模型推理服务,包括解码、KV cache、量化等工程问题

因此不要只看单词,要看它在什么领域里出现。

信念

机器学习里的 belief 不是哲学意义上的“信仰”,而是:

对某个变量当前状态的概率分布。

例如有一个隐藏变量 \(X\),表示天气:

P(X = 晴天) = 0.6
P(X = 雨天) = 0.3
P(X = 阴天) = 0.1

这个分布就是对 \(X\) 的 belief。

如果看到地面是湿的,这个 belief 可能更新成:

P(X = 晴天) = 0.1
P(X = 雨天) = 0.8
P(X = 阴天) = 0.1

所以:

belief = 当前证据下,对隐藏状态的概率判断

它不是固定答案,而是会随着新观测改变。

图模型中的信念

在图模型里,每个节点表示一个变量,边或因子表示变量之间的依赖关系。

例如链式结构:

X1 -- X2 -- X3 -- X4

我们可能想知道每个变量在所有观测下的边缘分布:

\[ p(X_i\mid \text{所有观测}). \]

这个边缘分布就可以叫节点 \(i\) 的 belief:

\[ b_i(x_i)\approx p(x_i\mid \text{evidence}). \]

如果变量很多,直接从联合分布求边缘要对其他变量求和:

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

这个求和的状态空间通常随变量数指数增长,所以需要更高效的近似或精确算法。

信念传播

信念传播 belief propagation, BP 是图模型上的消息传递算法。它解决的问题是:

一个复杂系统里有很多变量和局部关系,如何通过局部消息传递得到每个变量的边缘概率?

不要和神经网络里的 backpropagation 混淆。两个都简称 BP,但含义不同:

缩写 全称 作用
BP backpropagation 神经网络中反向传播梯度
BP belief propagation 图模型中传播概率消息

信念传播的核心想法是:

每个节点只和邻居交换概率消息
  -> 节点汇总来自邻居的信息
  -> 更新自己对变量状态的 belief
  -> 再把更新后的信息传给其他邻居

在树图上,信念传播可以精确求边缘分布。在有环图上,反复迭代的版本叫 loopy belief propagation,通常是近似算法。

Pairwise Markov Random Field

考虑 pairwise Markov random field:

\[ p(x_1,\ldots,x_N) \propto \prod_i\phi_i(x_i) \prod_{(i,j)}\psi_{ij}(x_i,x_j). \]

其中:

符号 含义
\(\phi_i(x_i)\) 节点 \(i\) 的局部证据或外场
\(\psi_{ij}(x_i,x_j)\) 节点 \(i,j\) 的相互作用
\(\prod_i\phi_i\prod_{(i,j)}\psi_{ij}\) 未归一化联合权重

这个结构和统计物理中的 Boltzmann 分布很像:

\[ p(x)\propto e^{-\beta H(x)}. \]

局部因子可以理解为局部能量项的指数形式。归一化常数就是概率图模型里的配分函数:

\[ Z = \sum_x \prod_i\phi_i(x_i) \prod_{(i,j)}\psi_{ij}(x_i,x_j). \]

BP 的消息公式

节点 \(i\) 发给节点 \(j\) 的消息可以写成:

\[ m_{i\to j}(x_j) \propto \sum_{x_i} \phi_i(x_i) \psi_{ij}(x_i,x_j) \prod_{k\in\partial i\setminus j} m_{k\to i}(x_i). \]

逐项解释:

部分 含义
\(\phi_i(x_i)\) 节点 \(i\) 自己的局部证据
\(\psi_{ij}(x_i,x_j)\) \(i\)\(j\) 的相容性
\(\prod_{k\in\partial i\setminus j}m_{k\to i}(x_i)\) \(j\) 以外其他邻居给 \(i\) 的消息
\(\sum_{x_i}\) \(i\) 自己的状态求和掉,得到关于 \(x_j\) 的消息

大白话是:

节点 \(i\) 告诉节点 \(j\):根据我自己的证据,以及除了你之外其他邻居告诉我的信息,我认为你取每个值的可能性是多少。

最后节点 \(i\) 的 belief 为:

\[ b_i(x_i) \propto \phi_i(x_i) \prod_{k\in\partial i} m_{k\to i}(x_i). \]

归一化以后:

\[ \sum_{x_i}b_i(x_i)=1. \]

这就是节点 \(i\) 的边缘概率估计。

纠错码例子

信念传播最经典的应用之一是纠错码,例如 LDPC code。

假设发送比特串:

1 0 1 1 0 0 1

信道有噪声,接收端收到:

1 0 0 1 0 0 1

第三位可能被翻转了。纠错码会引入一些校验约束:

x1 xor x3 xor x5 = 0
x2 xor x3 xor x6 = 1
...

于是问题变成:

在信道观测和校验约束下,每个 bit 最可能是 0 还是 1?

每个 bit 有一个 belief:

P(x3 = 0) = 0.55
P(x3 = 1) = 0.45

校验节点和变量节点之间反复传递消息后,可能变成:

P(x3 = 0) = 0.02
P(x3 = 1) = 0.98

于是接收端判断第三位更可能是 1。

这个例子说明 BP 的本质:局部约束不断互相传递,最后形成对每个变量的全局概率判断。

和平均场、Bethe 近似的关系

普通平均场近似假设联合分布可以完全因子化:

\[ p(x_1,\ldots,x_N) \approx \prod_i q_i(x_i). \]

这等价于忽略变量之间的相关性。

BP 对应 Bethe approximation。它比普通平均场多保留了边上的两体相关:

\[ p(x_1,\ldots,x_N) \approx { \prod_{(i,j)}b_{ij}(x_i,x_j) \over \prod_i b_i(x_i)^{d_i-1} }. \]

其中 \(d_i\) 是节点 \(i\) 的度。

可以这样理解:

方法 保留的信息
平均场 每个点自己的单点分布
BP / Bethe 单点分布 + 边上的两体相关
精确解 所有高阶相关

树图上 Bethe 形式是精确的;有环图上它通常是近似。

和机器学习的关系

这些概念在机器学习里出现得很频繁:

场景 对应含义
神经网络部署 inference = 模型预测
贝叶斯机器学习 inference = 求后验分布
隐马尔可夫模型 inference = 根据观测推隐藏状态
变分自编码器 VAE variational inference = 用近似分布拟合后验
图模型 belief = 节点边缘概率
纠错码 / 概率图模型 belief propagation = 消息传递求边缘分布
强化学习 / POMDP belief state = 对真实状态的概率分布
统计物理 marginalization = 对其他自由度求和或 trace out

比如 POMDP 中,智能体看不到真实状态 \(s_t\),只能看到观测 \(o_t\)。它维护 belief state:

\[ b_t(s) = P(s_t=s\mid o_1,a_1,o_2,a_2,\ldots,o_t). \]

这表示:

虽然不知道真实状态,但我维护一个关于真实状态的概率分布,并用它来决策。

和 VAE 的关系

VAE 中有隐变量 \(z\),生成模型写作:

\[ p_\theta(x,z)=p_\theta(x\mid z)p(z). \]

真正想要的是后验:

\[ p_\theta(z\mid x). \]

但这个后验通常难以精确计算,于是引入近似分布:

\[ q_\phi(z\mid x)\approx p_\theta(z\mid x). \]

这就是 variational inference。它和 belief propagation 都属于“推断算法”,只是适用模型和近似形式不同:

方法 典型场景
belief propagation 图模型、局部因子、离散变量常见
variational inference 复杂后验、连续隐变量、深度生成模型常见
MCMC 直接采样近似后验或边缘

和 NNQS / 统计物理的关系

NNQS 中常见的问题是从一个指数大的构型空间中处理概率权重:

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

这和图模型或统计物理中的联合分布有共同困难:状态空间巨大,不能直接枚举所有 \(x\)。因此需要采样、变分近似、局部能量估计或消息传递等方法。

不过要区分:

  • BP 主要用于有显式图结构和局部因子的概率模型。
  • NNQS 用神经网络直接参数化波函数或概率分布。
  • VMC 通过从 \(p_\theta(x)\) 采样来估计能量和梯度。

它们共享同一种大问题:

不能直接处理完整联合分布时,如何有效提取边缘、期望、最可能状态或梯度信息?

最短心智模型

可以这样串起来:

世界有隐藏状态或未知参数
我们得到有限观测数据
用概率模型描述未知性
对隐藏量形成 belief
通过 inference 更新 belief
如果模型是图结构,可以用 belief propagation 高效更新

最后压缩成一句话:

推断就是从观测推出未知;统计推断就是带概率和不确定性的推断;信念就是当前概率判断;信念传播就是在图模型中通过消息传递更新这些概率判断。