跳转至

贝叶斯网络 Bayes'nets/BN

也被称作graphical models

一些数学概念

后续需要用到的数学概念

  • Observed variables (evidence) 观测过的变量
  • Unobserved variables 未观测变量
  • Model 已知变量与未知变量之间关联方式

随机变量
用一个大写字母表示,也有定义域
为了简写,R in {true, false} -> {-r, +r}

概率分布
为随机变量的每个可能取值赋予一个概率值

写成P(R),R是随机变量
如果写成P(r),其实就是P(R=r)这一项的取值

联合分布
同时考虑所有随机变量的概率分布
如果有n个定义域为d的变量,联合分布的大小就是d^n,非常庞大,类似搜索空间或者真值表

P(R=.., W=.., T=..)=..或者简写P(.., .., ..)=..

边际分布
对联合分布中部分变量求和或积分得到的边缘概率分布,是联合分布的一部分

条件概率 条件分布
链式法则 \(P(a,b,c,...) = P(a) P(b|a) P(c|a,b) ...\)

计算条件分布时的归一化

概率推理
利用已知概率分布计算查询变量的后验概率或边缘概率

条件独立
A和B在C的条件下相互独立 \(A \perp \!\!\! \perp B \mid C\)

\[P(a,b | c) = P(a|c) P(b|c)\]

或者写成

\[P(a | c,b) = P(a|c)\]

举个例子,\(P(traffic, umbrella \mid rain) = P(traffic \mid rain)\),但是traffic和umbrella之间并不独立,只是在rain的条件下独立

如果条件独立成立,链式法则可以被简化为\(P(a,b,c,...) = P(a) P(b|a) P(c|b) ...\)
这样子就可以把巨大的联合分布化简为多个简单的条件分布

贝叶斯网络

我们可以先得到整个联合分布,再根据需要进行查找和计算,但是整个联合分布太大了,无法储存和学习

贝叶斯网络是一个有向无环图,包括:

  • 节点:表示变量,可能已观测/未观测;每一个变量都有一个条件概率表,和它的所有父节点构成一个条件分布
  • 弧:表示变量间潜在的直接影响或依赖关系。节点之间如果没有弧相连,就隐含了条件独立性假设;无路径连通的节点是绝对独立的 (实际上是没有被任何活跃路径连通,会在后续D-分离部分解释)
bayes_nets_pic

BN的核心是局部马尔可夫性假设,给定一个节点的所有父节点,该节点与它的所有非后代节点条件独立。由此可以推导出:

  • 条件概率仅依赖于直接相连的父节点
\[ P(x_i | x_1,\dots,x_{i-1}) = P(x_i | \text{parents}(X_i)) \]

链式法则由此化简为,多个只和父节点有关的条件分布的积

\[ P(x_1,x_2,x_3,\dots,x_n) = \prod_{i=1}^n P(x_i | \text{parents}(X_i))\]

这使得原本需要指数级参数的联合分布,可以用少量局部条件概率表来表示

  • 节点在其父节点给定后,便与图中其他特定部分“阻断”。这种局部阻断是判断任意变量间条件独立性的基础,可由后续介绍的D-分离算法实现

一个简单但不严谨的应用,例如计算图中的概率

\[P(+b,+e,+a,+j,+m) = P(+b) P(+e) P(+a|+b,+e) P(+j|+a) P(+m|+a)\]
其中B和E是绝对独立的,故概率直接相乘;
A发生在B和E条件下;
给定了A,J和M是条件独立的,故等效于两个概率直接相乘(局部马尔可夫性);
而且条件是直接相连的父节点A,而不包含B和E(推论1)

之后通过D分离能更严谨的解释为什么B和E绝对独立,以及更复杂的情况该怎么判断独立性

包含所有变量的概率都可以这样计算,于是原本需要有2^5个条目的联合分布就被拆解成了这些条件分布
一般的,一个n个布尔变量的联合分布大小是2^n;如果用n个节点,每个节点最多k个父节点的BN表示,大小是\(O(n 2^{k+1})\)

D-Sepreration 有向分离/D-分离

贝叶斯网络的结构暗含着独立性的假设,在利用BN建模的时候,要选取与实际情况相符的图。刚刚的马尔可夫性给出了一个简单的判断图中独立性的方法,下面介绍D-分离算法,可以更方便的判断
为了方便理解,下面的BN图里,可以把->理解成因果关系

基本三元组

Chain
A -> B -> C
如果B还没有被观测,A和C之间不是独立的
如果B被观测(或者说给定B的值),A和C在B下条件独立,可以证明如下

\[P(c|a,b) = \frac{P(a,b,c)}{P(a,b)} = \frac{P(a)P(b|a)P(c|b)}{P(a)P(b|a)} = P(c|b)\]

说明链中一个节点的证据会阻断影响的传递

eg: fire -> smoke -> alarm
不知道smoke的时候,fire发生与否会间接影响到alarm的概率分布
但是一旦知道smoke的取值,fire发生与否就和alarm无关了

Fork/Common Cause
A <- B -> C
如果B还没有被观测,A和C之间不是独立的(AC倾向于有类似的概率)
如果B被观测(或者说给定B的值),A和C在B下条件独立,可以证明如下

\[P(c|a,b) = \frac{P(a,b,c)}{P(a,b)} = \frac{P(b)P(a|b)P(c|b)}{P(b)P(a|b)} = P(c|b)\]

共同的原因已知,结果之间独立

eg: DDL -> Lab Full
    |
    V
  Forum Busy
不知道DDL的情况时,两个结果不是独立的,观察到Lab Full,很可能Forum Busy也发生;观察到一个结果影响另一个的概率,不独立
但是如果给定DDL,观察到Lab Full也不影响Forum Busy的概率,因为这只依赖DDL的情况

Collider/V-Structure/Common Effect
A -> B <- C
如果B还没有被观测,A和C之间独立,证明如下:

\[P(a,c) = \sum_bP(a,c,b) = \sum_bP(a)P(c)P(b|a,c) = P(a)P(c)\cdot 1\]

如果B被观测(或者说给定B的值),A和C不独立

eg: Rain -> Traffic <- Concert
如果知道Traffic发生,但是Rain没发生,那么Concert就很可能发生
Rain的发生影响了Concert的概率,不独立 

独立性的具体分析

所有情况都可以被归类成上面的三元组,只要是不独立的,就说明影响可以传递,路径是活跃的active;独立则说明路径被阻断,是不活跃的
(下图还多一个情况,可以类比Collider)

D-seperation_pic

\(X_i \perp \!\!\! \perp X_j | \{X_a, \dots, X_z\}\)是否成立,只要看从\(X_i\)\(X_j\)的所有无向路径(找路径的时候是无向的,拆分三元组分析时要看方向),在给定证据\(X_a, \dots, X_z\)下,有没有活跃的路径。只要有一个活跃的路径,就不确保独立
对于一个路径,只要路径中有一个三元组是不活跃的,整个路径就被截断,该路径就不活跃;所有三元组都是活跃的,影响可以传递,该路径就活跃

一个例子如下:

D-sepreTriple_pic
第二条判断,从L到B之间的无向路径是L-R-T-B,有两个三元组
第一个是L->R->T,没有被观测节点,活跃;
第二个是R->T<-B,没有被观测节点,不活跃;
有一个不活跃的,整个路径被截断,L和B独立

第五条判断,还是两个三元组,其中L->R->T中R已知,不活跃,路径被截断

这个例子都只有一条有向路径,如果有多条就逐一分析,只要有一个路径活跃,就不保证独立;换句话说,只有所有路径都不活跃才条件独立,比如:

D-sepreMoreWays_pic
第一条判断,T到R有两条路径,T-R-D和T-S-D
其中T<-R->D是活跃的,故这个路径活跃,不保证独立

注:上面突然说“不保证独立”而不是“不独立”,是因为D-分离实际上不能发现图中所有的独立性
比如在特定的概率分布下(比如所有概率都为1/2),数学上可能可以使得独立性被满足,但是一般不会出现,所以一开始都写的是“不独立”(而且我们一般假设相消性成立)

用途

D-sepreUse_pic

不同结构的贝叶斯网络暗含不同的条件独立性假设,可以根据D分离来判断
一旦两个网络的假设完全一致(同一个马尔可夫等价类),那么就可以用一个替换另一个。但是选择和实际情况最贴合的网络,节点的概率表会更简单,更具备可解释性
(比如基本三元组里common cause和chain是等价的,理论上可以替换,但是如果变量之间实际上就是common cause关系,选这个会更简单)

  • 弧越少的模型,暗含的假设就越多,有更多的节点满足条件独立性,计算最简单。但如果实际情况不符合这些独立性,会发生欠拟合
  • 弧越多,假设越少。如果完全联通,就没有任何一个独立性假设,那所有的情况都可以这样建模,但BN也就退化为联合分布

之前提到BN的基本假设是马尔可夫性,这实际上是一种既局部又全局的性质,而D-分离是推导独立性的方法
BN完全联通,上面说“没有任何一个独立性假设”,但是马尔可夫性也成立:

\[ P(X_i | X_1, ..., X_{i-1}) = P(X_i | \text{Parents}(X_i)) \]

但由于此时 \(\text{Parents}(X_i)\) 正是所有编号小于 \(i\) 的变量的集合 \(\{X_1, ..., X_{i-1}\}\),所以这个等式实际上退化为:

\[P(X_i | X_1, ..., X_{i-1}) = P(X_i | X_1, ..., X_{i-1})\]

这是一个恒等式,没有对联合分布施加任何实质性的约束,也就是所谓的“没有任何一个独立性假设”。

下面的内容由DeepSeek-V4生成,仅供概念辨析:

贝叶斯网络的独立性声明有三个层次

  • 局部马尔可夫性 (Local Markov Property):这是BN的定义性公理,也是我们介绍的公式。每个节点在给定父节点后,独立于其非后代节点。
  • 全局马尔可夫性 (Global Markov Property):这是由D分离算法判定的所有独立性集合。
  • 相消性 (Faithfulness):指分布的独立性是否完全且恰好是D分离判定的那些。我们通常假设此性质成立。

核心定理是:局部马尔可夫性 ⇔ 全局马尔可夫性。这意味着,局部公理一旦确立,由D分离得出的所有全局独立性,就自动被蕴含在分布之中了。