概率推理
概率推理(Probabilistic Reasoning)是处理不确定性的核心 AI 技术。现实世界中的信息往往是不完整、有噪声或模糊的,确定性逻辑推理无法有效应对这些情况。概率推理通过概率论和图模型提供了一套严格的数学框架,用于在不确定条件下进行推断和决策。
从贝叶斯网络到隐马尔可夫模型,从精确推断到变分推断,概率推理方法在自然语言处理、计算机视觉、医学诊断、机器人等领域有广泛应用。本笔记涵盖贝叶斯网络、马尔可夫随机场、隐马尔可夫模型、概率编程以及与因果推断的联系。
1. 不确定性推理的必要性
| 不确定性来源 | 示例 |
|---|---|
| 观测不完整 | 医生只能观察到部分症状,无法直接看到病因 |
| 传感器噪声 | 机器人的距离传感器有测量误差 |
| 模型简化 | 天气模型无法捕获所有微观物理过程 |
| 固有随机性 | 量子力学过程本质上是概率性的 |
| 知识不完备 | 不可能掌握所有相关的领域知识 |
概率推理的核心思想:用概率分布表示不确定性,用贝叶斯规则更新信念:
其中 \(H\) 为假设,\(E\) 为证据,\(P(H)\) 为先验,\(P(H \mid E)\) 为后验。
2. 贝叶斯网络
2.1 定义
贝叶斯网络(Bayesian Network, BN)是一个有向无环图(DAG),其中:
- 每个节点代表一个随机变量
- 每条有向边表示因果或依赖关系
- 每个节点附带一个条件概率表(CPT)
联合概率分布可以分解为:
示例:一个简单的医学诊断网络
[吸烟] → [肺癌] → [X光异常]
[吸烟] → [支气管炎] → [呼吸困难]
[肺癌] → [呼吸困难]
2.2 条件独立性
贝叶斯网络编码了丰富的条件独立关系。如果 \(X\) 和 \(Y\) 在给定 \(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) 通过逐步边缘化消除变量来计算查询概率:
| 步骤 | 操作 |
|---|---|
| 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\):
| 方法 | 优势 | 劣势 |
|---|---|---|
| MCMC | 渐近精确 | 收敛慢,诊断困难 |
| 变分推断 | 速度快,可扩展 | 近似质量受限于 \(\mathcal{Q}\) |
3. 马尔可夫随机场
3.1 无向图模型
马尔可夫随机场(Markov Random Field, MRF),也称无向图模型,使用无向图表示变量间的依赖关系。
联合概率分布通过势函数(potential function) 定义:
其中 \(\mathcal{C}\) 是图的最大团集合,\(Z\) 是配分函数(归一化常数)。
3.2 与贝叶斯网络对比
| 维度 | 贝叶斯网络 | 马尔可夫随机场 |
|---|---|---|
| 图类型 | 有向无环图(DAG) | 无向图 |
| 参数化 | 条件概率表 | 势函数(可以不归一化) |
| 因果语义 | 自然编码因果关系 | 不直接编码因果 |
| 独立性判断 | d-分离 | 图分离(节点删除) |
| 配分函数 | 不需要(概率自然归一化) | 需要计算 \(Z\)(通常 intractable) |
| 典型应用 | 医学诊断、因果推断 | 图像分割、物理系统建模 |
3.3 条件随机场(CRF)
CRF 是判别式的马尔可夫随机场,直接建模 \(P(Y \mid X)\):
应用:序列标注(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)\):
最终:\(P(X \mid \lambda) = \sum_{i=1}^{N} \alpha_T(i)\)
4.4 Viterbi 算法
Viterbi 使用动态规划找到最可能的隐状态序列:
通过回溯指针恢复最优路径。
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\) 的所有后门路径,则:
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