跳转至

概率推理

概率推理(Probabilistic Reasoning)是处理不确定性的核心 AI 技术。现实世界中的信息往往是不完整、有噪声或模糊的,确定性逻辑推理无法有效应对这些情况。概率推理通过概率论图模型提供了一套严格的数学框架,用于在不确定条件下进行推断和决策。

从贝叶斯网络到隐马尔可夫模型,从精确推断到变分推断,概率推理方法在自然语言处理、计算机视觉、医学诊断、机器人等领域有广泛应用。本笔记涵盖贝叶斯网络、马尔可夫随机场、隐马尔可夫模型、概率编程以及与因果推断的联系。


1. 不确定性推理的必要性

不确定性来源 示例
观测不完整 医生只能观察到部分症状,无法直接看到病因
传感器噪声 机器人的距离传感器有测量误差
模型简化 天气模型无法捕获所有微观物理过程
固有随机性 量子力学过程本质上是概率性的
知识不完备 不可能掌握所有相关的领域知识

概率推理的核心思想:用概率分布表示不确定性,用贝叶斯规则更新信念:

\[ P(H \mid E) = \frac{P(E \mid H) \cdot P(H)}{P(E)} \]

其中 \(H\) 为假设,\(E\) 为证据,\(P(H)\) 为先验,\(P(H \mid E)\) 为后验。


2. 贝叶斯网络

2.1 定义

贝叶斯网络(Bayesian Network, BN)是一个有向无环图(DAG),其中:

  • 每个节点代表一个随机变量
  • 每条有向边表示因果或依赖关系
  • 每个节点附带一个条件概率表(CPT)

联合概率分布可以分解为:

\[ P(X_1, X_2, \dots, X_n) = \prod_{i=1}^{n} P(X_i \mid \text{Parents}(X_i)) \]

示例:一个简单的医学诊断网络

  [吸烟] → [肺癌] → [X光异常]
  [吸烟] → [支气管炎] → [呼吸困难]
  [肺癌] → [呼吸困难]

2.2 条件独立性

贝叶斯网络编码了丰富的条件独立关系。如果 \(X\)\(Y\) 在给定 \(Z\) 的条件下独立,记为:

\[ X \perp\!\!\!\perp Y \mid Z \]

Markov 条件:给定父节点,每个节点与其非后代节点条件独立。

2.3 d-分离

d-分离(d-separation) 是判断贝叶斯网络中条件独立性的图准则。

三种基本连接结构:

结构 形式 未观测中间节点时 观测中间节点时
链(Chain) \(X \to Z \to Y\) \(X, Y\) 相关 \(X \perp\!\!\!\perp Y \mid Z\)
分叉(Fork) \(X \leftarrow Z \to Y\) \(X, Y\) 相关 \(X \perp\!\!\!\perp Y \mid Z\)
对撞(Collider) \(X \to Z \leftarrow Y\) \(X \perp\!\!\!\perp Y\) \(X, Y\) 相关(解释消除效应)

对撞节点的反直觉性

在对撞结构中,观测中间节点反而会引入依赖关系。例如:才华和外貌独立,但如果我们只观察成功人士(才华 → 成功 ← 外貌),那么在成功人群中才华和外貌呈现负相关。

2.4 精确推断:变量消元

变量消元(Variable Elimination) 通过逐步边缘化消除变量来计算查询概率:

\[ P(Q \mid E = e) \propto \sum_{H} \prod_{i} P(X_i \mid \text{Parents}(X_i)) \bigg|_{E=e} \]
步骤 操作
1 确定查询变量和证据变量
2 选择消元顺序
3 对每个待消元变量,合并相关因子并求和消除
4 归一化得到后验概率

复杂度:取决于消元顺序产生的最大因子大小。最优消元顺序的寻找是 NP-hard 的。

2.5 近似推断

当精确推断不可行时,使用近似方法。

MCMC(马尔可夫链蒙特卡洛)

  • Gibbs 采样:逐变量从条件分布中采样 - \(X_i^{(t+1)} \sim P(X_i \mid X_1^{(t+1)}, \dots, X_{i-1}^{(t+1)}, X_{i+1}^{(t)}, \dots, X_n^{(t)})\)
  • Metropolis-Hastings:提议-接受/拒绝机制,更通用

变分推断(Variational Inference)

将推断转化为优化问题:寻找与真实后验 \(P\) 最接近的近似分布 \(Q\)

\[ Q^* = \arg\min_{Q \in \mathcal{Q}} \text{KL}(Q \| P) = \arg\max_{Q \in \mathcal{Q}} \text{ELBO}(Q) \]
方法 优势 劣势
MCMC 渐近精确 收敛慢,诊断困难
变分推断 速度快,可扩展 近似质量受限于 \(\mathcal{Q}\)

3. 马尔可夫随机场

3.1 无向图模型

马尔可夫随机场(Markov Random Field, MRF),也称无向图模型,使用无向图表示变量间的依赖关系。

联合概率分布通过势函数(potential function) 定义:

\[ P(X_1, \dots, X_n) = \frac{1}{Z} \prod_{c \in \mathcal{C}} \psi_c(X_c) \]

其中 \(\mathcal{C}\) 是图的最大团集合,\(Z\) 是配分函数(归一化常数)。

3.2 与贝叶斯网络对比

维度 贝叶斯网络 马尔可夫随机场
图类型 有向无环图(DAG) 无向图
参数化 条件概率表 势函数(可以不归一化)
因果语义 自然编码因果关系 不直接编码因果
独立性判断 d-分离 图分离(节点删除)
配分函数 不需要(概率自然归一化) 需要计算 \(Z\)(通常 intractable)
典型应用 医学诊断、因果推断 图像分割、物理系统建模

3.3 条件随机场(CRF)

CRF 是判别式的马尔可夫随机场,直接建模 \(P(Y \mid X)\)

\[ P(\mathbf{y} \mid \mathbf{x}) = \frac{1}{Z(\mathbf{x})} \exp\left(\sum_{k} \lambda_k f_k(\mathbf{y}, \mathbf{x})\right) \]

应用:序列标注(NER, POS tagging)、图像分割。BiLSTM-CRF 曾是 NER 的主流模型。


4. 隐马尔可夫模型

4.1 HMM 定义

隐马尔可夫模型(Hidden Markov Model, HMM)是一种时序概率模型:

  • 隐状态序列 \(Z_1, Z_2, \dots, Z_T\):满足一阶马尔可夫性
  • 观测序列 \(X_1, X_2, \dots, X_T\):每个观测只依赖于当前隐状态

参数\(\lambda = (\pi, A, B)\)

参数 含义
\(\pi_i = P(Z_1 = i)\) 初始状态分布
\(A_{ij} = P(Z_{t+1} = j \mid Z_t = i)\) 状态转移概率
\(B_{ik} = P(X_t = k \mid Z_t = i)\) 发射概率

4.2 三大核心问题

问题 描述 算法 复杂度
评估 给定模型和观测序列,计算 \(P(X \mid \lambda)\) 前向算法 \(O(N^2 T)\)
解码 给定模型和观测序列,找最优隐状态序列 Viterbi 算法 \(O(N^2 T)\)
学习 给定观测序列,估计模型参数 Baum-Welch (EM) 迭代收敛

4.3 前向算法

定义前向变量 \(\alpha_t(i) = P(X_1, \dots, X_t, Z_t = i \mid \lambda)\)

\[ \begin{aligned} \alpha_1(i) &= \pi_i \cdot B_{i, X_1} \\ \alpha_{t+1}(j) &= \left[\sum_{i=1}^{N} \alpha_t(i) \cdot A_{ij}\right] \cdot B_{j, X_{t+1}} \end{aligned} \]

最终:\(P(X \mid \lambda) = \sum_{i=1}^{N} \alpha_T(i)\)

4.4 Viterbi 算法

Viterbi 使用动态规划找到最可能的隐状态序列:

\[ \delta_t(j) = \max_{i} \left[\delta_{t-1}(i) \cdot A_{ij}\right] \cdot B_{j, X_t} \]

通过回溯指针恢复最优路径。

4.5 Baum-Welch 算法

Baum-Welch 是 EM 算法在 HMM 上的特化:

  • E 步:计算前向-后向变量,得到隐状态的后验分布
  • M 步:根据后验分布更新参数 \(\pi, A, B\)
  • 迭代直到收敛(保证单调增加似然)

5. 概率编程

概率编程(Probabilistic Programming)让用户以编程的方式定义概率模型,由框架自动完成推断。

5.1 主流框架

框架 推断方法 语言 特点
PyMC NUTS (HMC变体), VI Python 贝叶斯建模友好
Stan HMC/NUTS Stan DSL 工业级稳定性
Pyro SVI, MCMC Python (PyTorch) 深度概率模型
NumPyro NUTS, SVI Python (JAX) 高性能
Edward2/TFP VI, MCMC Python (TensorFlow) 与 TF 生态集成

5.2 PyMC 示例

import pymc as pm

with pm.Model() as model:
    # 先验
    mu = pm.Normal('mu', mu=0, sigma=10)
    sigma = pm.HalfNormal('sigma', sigma=5)

    # 似然
    obs = pm.Normal('obs', mu=mu, sigma=sigma, observed=data)

    # 推断
    trace = pm.sample(2000, tune=1000)

pm.summary(trace)

5.3 概率编程的优势

优势 说明
声明式建模 专注于模型定义,无需手写推断算法
不确定性量化 自动获得参数的完整后验分布
模型比较 WAIC、LOO-CV 等信息准则
灵活组合 可以构建任意复杂的层次模型

6. 因果推断与概率推理

6.1 从相关到因果

概率推理回答"观察到 \(E\)\(H\) 的可能性有多大?",而因果推断回答"如果干预 \(E\)\(H\) 会如何变化?"

Pearl 的因果层级

层级 问题类型 数学表达 示例
1. 关联 观察后会怎样? \(P(Y \mid X)\) 吸烟者得肺癌的概率?
2. 干预 如果做某事会怎样? \(P(Y \mid \text{do}(X))\) 如果强制某人吸烟会怎样?
3. 反事实 如果当初不这样做呢? \(P(Y_{x'} \mid X=x, Y=y)\) 如果他没吸烟还会得肺癌吗?

6.2 do-演算

do-演算(do-calculus) 是 Pearl 提出的从观察数据推断因果效应的形式化工具。核心是后门准则前门准则

后门准则:如果变量集 \(Z\) 阻断了 \(X \to Y\) 的所有后门路径,则:

\[ P(Y \mid \text{do}(X=x)) = \sum_{z} P(Y \mid X=x, Z=z) \cdot P(Z=z) \]

6.3 与符号方法的关联

连接点 说明
结构因果模型 因果图是特殊的贝叶斯网络 + 干预语义
知识图谱 因果关系可以编码在知识图谱中
可解释 AI 因果推理提供比相关性更强的解释
LLM 推理 LLM 的因果推理能力是当前研究热点

概率推理的现代融合

现代 AI 越来越强调将概率推理与深度学习结合:变分自编码器(VAE) 是深度生成模型与变分推断的结合,扩散模型 使用随机微分方程建模概率分布,贝叶斯深度学习 为神经网络权重赋予概率解释。


参考资料

  • Koller & Friedman, Probabilistic Graphical Models: Principles and Techniques
  • Bishop, Pattern Recognition and Machine Learning(第8-13章)
  • Pearl, Causality: Models, Reasoning, and Inference
  • Murphy, Machine Learning: A Probabilistic Perspective
  • Pyro Documentation
  • PyMC Documentation

评论 #