概率图模型
概率图模型(Probabilistic Graphical Model)是用图结构表达随机变量之间概率依赖关系的框架。图中的节点代表随机变量,边代表条件依赖或无向的势函数关系。
图模型的核心价值在于两点:
- 结构化表示:将高维联合分布 $P(X_1, \ldots, X_n)$ 分解为局部因子乘积,大幅降低参数存储量
- 高效推断:利用图结构中的条件独立性,局部化计算,无需对整个联合分布穷举
根据边的性质,概率图模型分为两大类:
- 有向图(Directed Graph):边带方向,用条件概率表达依赖关系,即贝叶斯网络
- 无向图(Undirected Graph):边无方向,用势函数(potential function)表达局部关联,即马尔可夫随机场
此外,因子图(Factor Graph)是一种二分图,用于更精细地表示函数的因子分解,是实现通用推断算法的基础结构。
贝叶斯网络(Bayesian Network)又称信念网络(Belief Network),使用有向无环图(DAG)表达条件独立性:若从节点 $i$ 到节点 $j$ 存在有向边,则 $j$ 的条件概率依赖于 $i$。
有向图中,通过d-分离(d-separation)判定条件独立性:给定集合 $Z$ 后,节点 $X$ 与节点 $Y$ 在图中相互独立,当且仅当 $Z$ 阻断了 $X$ 与 $Y$ 之间的所有路径。
阻断规则:
- 顺向路径(tail-to-head / tail-to-tail):若 $Z$ 包含中间节点,则阻断
- 汇聚路径(head-to-head):仅当 $Z$ 及 $Z$ 的后代均不在路径上时,才阻断;若 $Z$ 包含汇聚节点本身或其后代,反而打开(explaining away)
贝叶斯网络中,整个联合分布可分解为局部的条件概率分布之积:
贝叶斯网络的因式分解
其中 $\text{pa}(X_i)$ 表示节点 $X_i$ 的父节点集合。若节点无父节点,则退化为边缘分布 $P(X_i)$。
这一分解使得联合分布的参数化从指数级 $O(2^n)$ 降低为各节点条件概率表(Conditional Probability Table, CPT)之和。
每个节点 $X_i$ 的 CPT 大小与父节点数量呈指数关系。若某节点有 $k$ 个二元父节点,则 CPT 需 $2^k$ 个参数。这是贝叶斯网络参数化的主要瓶颈,也推动了如置信网络、概率逻辑编程等近似方法的发展。
马尔可夫随机场(Markov Random Field, MRF)使用无向边表达变量间的相互关联,天然适合表达对称的相互作用关系(如图像去噪、物体分割中的空间一致性约束)。
无向图中,节点集合的子集 $C$ 若满足任意两节点间均有边相连(即为极大团),则称 $C$ 为一个团(clique)。联合分布分解为各团上的势函数(potential function)之积:
MRF 的 Hammersley-Clifford 定理
若 $P(X_1, \ldots, X_n) > 0$(正性假设),则
其中 $\mathcal{C}$ 为所有极大团的集合,$\psi_C$ 为团势函数,$Z = \sum_X \prod_C \psi_C(X_C)$ 为归一化常数(配分函数)。
无向图中,给定相邻节点后,非相邻节点相互独立:即对任意节点子集 $A, B, S$,若 $S$ 将 $A$ 与 $B$ 分离,则 $A \perp B \mid S$。
| 维度 | 贝叶斯网络(有向图) | 马尔可夫随机场(无向图) |
|---|---|---|
| 边类型 | 有向边(因果方向) | 无向边(对称关联) |
| 分解形式 | 条件概率之积 | 势函数之积 |
| 局部结构 | CPT(条件概率表) | 势函数(未归一化) |
| 独立条件 | d-分离(有向分离) | 图分离(马尔可夫性) |
| 典型应用 | 因果推理、诊断推断 | 图像建模、协作过滤 |
因子图(Factor Graph)是一种无向二分图,用于精确表示多元函数的因子分解。节点分为两类:
- 变量节点(圆形):表示随机变量 $x_i$
- 因子节点(方形):表示因子函数 $f_j(S_j)$,即变量子集的函数
边仅连接变量节点与因子节点。
因子图将多元函数分解为因子之积:
因子图表示
其中 $S_j \subseteq \{x_1, \ldots, x_n\}$ 是第 $j$ 个因子的作用域,即该因子所依赖的变量集合。
函数 $g(x_1, x_2, x_3, x_4, x_5) = f_A(x_1)\,f_B(x_2)\,f_C(x_1, x_2, x_3)\,f_D(x_3, x_4)\,f_E(x_3, x_5)$ 对应的因子图结构:
- 变量节点:$x_1, x_2, x_3, x_4, x_5$
- 因子节点:$f_A, f_B, f_C, f_D, f_E$
- 边连接:$f_A-x_1$,$f_B-x_2$,$f_C-x_1, x_2, x_3$,$f_D-x_3, x_4$,$f_E-x_3, x_5$
概率模型中的联合分布 $P(X) = \frac{1}{Z}\prod_j \psi_j(C_j)$ 本身就是一个因子分解,天然可以表示为因子图。因子图的关键优势在于:它能将复杂的全局推断问题,转化为局部变量节点与因子节点之间的消息传递问题。
Sum-Product 算法,又称信念传播(Belief Propagation),是在因子图上进行精确边际推断的核心算法。其目标是计算每个变量节点的边缘分布 $P(x_i)$。
算法在因子图的两类节点之间交替传递消息:
1. 变量节点 → 因子节点
变量节点 $x$ 向相邻因子节点 $f$ 发送的消息,是 $x$ 从其他所有相邻因子节点接收消息的乘积:
其中 $\mathcal{N}(x)$ 为 $x$ 的邻居节点集合。
2. 因子节点 → 变量节点
因子节点 $f$ 向变量节点 $x$ 发送的消息,是 $f$ 对所有其他变量边缘化的结果:
其中 $\mathbf{y}$ 是因子 $f$ 所有邻接变量(除 $x$ 外)的集合,$\sum$ 表示对离散变量求和(连续变量则为积分)。
当所有消息收敛后,每个变量节点 $x_i$ 的边缘分布(即信念)为:
归一化常数由 $\sum_{x_i} P(x_i) = 1$ 确定。
当因子图是树状结构(无环)时,Sum-Product 算法在有限次迭代内精确收敛,不存在局部最优或振荡问题。对于含环(loopy)无向图,精确推断是 NP 难的,只能用置信度传播近似(Loopy Belief Propagation),迭代后在许多实际应用中仍能给出高质量近似。
Sum-Product(x) {
if (x 是变量节点) {
if (x 为叶子节点) return 1;
result = 1;
for (x_i in x的子因子节点) {
result = result * Sum-Product(x_i);
}
return result;
}
if (x 是因子节点) {
if (x 是叶子节点) return f(x_p); // f为因子,x_p为父节点
result = 1;
for (x_i in x的子变量节点) {
result = Sum-Product(x_i);
}
return marginal(f(x_p, x_C) * result);
// 对f关于x_C求边缘概率,x_C为子节点集合,x_p为父节点
}
}
概率图模型中常用的分布大多是指数族分布,其一般形式为:
其中 $\eta(\theta)$ 为自然参数,$T(x)$ 为充分统计量,$A(\theta)$ 为对数配分函数。指数族具有共轭性、ML 估计的解析形式等优良性质。
多元高斯分布是连续型图模型中最常用的分布,其协方差矩阵的结构(稀疏性)直接决定了图的连通性。在高斯图模型中,协方差矩阵的逆(非零元素对应图中的边)刻画了变量间的偏条件相关性。