贝叶斯网络 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(traffic, umbrella \mid rain) = P(traffic \mid rain)\),但是traffic和umbrella之间并不独立,只是在rain的条件下独立
如果条件独立成立,链式法则可以被简化为\(P(a,b,c,...) = P(a) P(b|a) P(c|b) ...\)
这样子就可以把巨大的联合分布化简为多个简单的条件分布
贝叶斯网络¶
我们可以先得到整个联合分布,再根据需要进行查找和计算,但是整个联合分布太大了,无法储存和学习
贝叶斯网络是一个有向无环图,包括:
- 节点:表示变量,可能已观测/未观测;每一个变量都有一个条件概率表,和它的所有父节点构成一个条件分布
- 弧:表示变量间潜在的直接影响或依赖关系。节点之间如果没有弧相连,就隐含了条件独立性假设;无路径连通的节点是绝对独立的 (实际上是没有被任何活跃路径连通,会在后续D-分离部分解释)
BN的核心是局部马尔可夫性假设,给定一个节点的所有父节点,该节点与它的所有非后代节点条件独立。由此可以推导出:
- 条件概率仅依赖于直接相连的父节点
链式法则由此化简为,多个只和父节点有关的条件分布的积
这使得原本需要指数级参数的联合分布,可以用少量局部条件概率表来表示
- 节点在其父节点给定后,便与图中其他特定部分“阻断”。这种局部阻断是判断任意变量间条件独立性的基础,可由后续介绍的D-分离算法实现
一个简单但不严谨的应用,例如计算图中的概率
其中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下条件独立,可以证明如下
说明链中一个节点的证据会阻断影响的传递
Fork/Common Cause
A <- B -> C
如果B还没有被观测,A和C之间不是独立的(AC倾向于有类似的概率)
如果B被观测(或者说给定B的值),A和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之间独立,证明如下:
如果B被观测(或者说给定B的值),A和C不独立
独立性的具体分析¶
所有情况都可以被归类成上面的三元组,只要是不独立的,就说明影响可以传递,路径是活跃的active;独立则说明路径被阻断,是不活跃的
(下图还多一个情况,可以类比Collider)
\(X_i \perp \!\!\! \perp X_j | \{X_a, \dots, X_z\}\)是否成立,只要看从\(X_i\)到\(X_j\)的所有无向路径(找路径的时候是无向的,拆分三元组分析时要看方向),在给定证据\(X_a, \dots, X_z\)下,有没有活跃的路径。只要有一个活跃的路径,就不确保独立
对于一个路径,只要路径中有一个三元组是不活跃的,整个路径就被截断,该路径就不活跃;所有三元组都是活跃的,影响可以传递,该路径就活跃
一个例子如下:
第二条判断,从L到B之间的无向路径是L-R-T-B,有两个三元组
第一个是L->R->T,没有被观测节点,活跃;
第二个是R->T<-B,没有被观测节点,不活跃;
有一个不活跃的,整个路径被截断,L和B独立
第五条判断,还是两个三元组,其中L->R->T中R已知,不活跃,路径被截断
这个例子都只有一条有向路径,如果有多条就逐一分析,只要有一个路径活跃,就不保证独立;换句话说,只有所有路径都不活跃才条件独立,比如:
注:上面突然说“不保证独立”而不是“不独立”,是因为D-分离实际上不能发现图中所有的独立性
比如在特定的概率分布下(比如所有概率都为1/2),数学上可能可以使得独立性被满足,但是一般不会出现,所以一开始都写的是“不独立”(而且我们一般假设相消性成立)
用途¶
不同结构的贝叶斯网络暗含不同的条件独立性假设,可以根据D分离来判断
一旦两个网络的假设完全一致(同一个马尔可夫等价类),那么就可以用一个替换另一个。但是选择和实际情况最贴合的网络,节点的概率表会更简单,更具备可解释性
(比如基本三元组里common cause和chain是等价的,理论上可以替换,但是如果变量之间实际上就是common cause关系,选这个会更简单)
- 弧越少的模型,暗含的假设就越多,有更多的节点满足条件独立性,计算最简单。但如果实际情况不符合这些独立性,会发生欠拟合
- 弧越多,假设越少。如果完全联通,就没有任何一个独立性假设,那所有的情况都可以这样建模,但BN也就退化为联合分布
之前提到BN的基本假设是马尔可夫性,这实际上是一种既局部又全局的性质,而D-分离是推导独立性的方法
BN完全联通,上面说“没有任何一个独立性假设”,但是马尔可夫性也成立:
但由于此时 \(\text{Parents}(X_i)\) 正是所有编号小于 \(i\) 的变量的集合 \(\{X_1, ..., X_{i-1}\}\),所以这个等式实际上退化为:
这是一个恒等式,没有对联合分布施加任何实质性的约束,也就是所谓的“没有任何一个独立性假设”。
下面的内容由DeepSeek-V4生成,仅供概念辨析:
贝叶斯网络的独立性声明有三个层次
- 局部马尔可夫性 (Local Markov Property):这是BN的定义性公理,也是我们介绍的公式。每个节点在给定父节点后,独立于其非后代节点。
- 全局马尔可夫性 (Global Markov Property):这是由D分离算法判定的所有独立性集合。
- 相消性 (Faithfulness):指分布的独立性是否完全且恰好是D分离判定的那些。我们通常假设此性质成立。
核心定理是:局部马尔可夫性 ⇔ 全局马尔可夫性。这意味着,局部公理一旦确立,由D分离得出的所有全局独立性,就自动被蕴含在分布之中了。