文章目录

  • 第一部分:贝叶斯网基础
    • [1.1 信息论基础](https://blog.csdn.net/deepbodhi/article/details/119823055)
    • [1.2 贝叶斯网基本概念](https://blog.csdn.net/deepbodhi/article/details/119823243)
    • [1.3 变量独立性的图论分析](https://blog.csdn.net/deepbodhi/article/details/119823321)
  • 第二部分:贝叶斯网推理
    • 2.1 概率推理中的变量消元方法
      • 2.1.1 推理问题
      • 2.1.2 变量消元法
        • 2.1.2.1 概率分布的分解与推理复杂度
        • 2.1.2.2 消元运算
        • 2.1.2.3 基于变量消元法的后验概率推理算法
      • 2.1.3 复杂度分析
        • 2.1.3.1 复杂性的度量
        • 2.1.3.2 复杂度的计算
      • 2.1.4 消元顺序
        • 2.1.4.1 最大势搜索
        • 2.1.4.2 最小缺边搜索
      • [2.1.5 推理问题化简](https://blog.csdn.net/deepbodhi/article/details/119844019#215__12)
      • [2.1.6 MAP问题化简](https://blog.csdn.net/deepbodhi/article/details/119844019#216_MAP_36)

第一部分:贝叶斯网基础

1.1 信息论基础

1.2 贝叶斯网基本概念

1.3 变量独立性的图论分析

第二部分:贝叶斯网推理

2.1 概率推理中的变量消元方法

本节主要介绍基于贝叶斯网的概率推理方法,如何降低推理复杂度是需要考虑的主要问题。
变量消元方法是用于降低贝叶斯网推理复杂度的主要手段。而变量消元的复杂度又与变量消元的顺序有关,通过一些启发式算法,可以找到较好的消元顺序。
除了寻找较好的消元顺序来降低推理复杂度,还可以通过独立性关系剔除与推理无关的变量,对推理问题进行简化,对推理问题的简化将在下一讲再介绍。

2.1.1 推理问题

贝叶斯网推理主要包含三大类问题:后验概率问题、最大后验假设问题和最大可能解释问题。其中后验概率问题是最基本的问题。
(1) 后验概率问题
后验概率问题是指已知贝叶斯网中某些变量的值,计算另外一些变量的后验概率分布。如第一部分所使用的Alarm案例中,若接到Mary电话通知警铃响了,这时会计算『发生了盗窃』的概率是多少,即计算 P ( B = y ∣ M = y ) P(B=y|M=y) P(B=y∣M=y)。
此类问题中,已知变量称为证据变量,记为E,取值记为e;需要计算后验概率分布的变量称为查询变量,记为Q;需要计算的后验概率分布为 P ( Q ∣ E = e ) P(Q|E=e) P(Q∣E=e).
人们常说的概率推理指的就是后验概率问题,根据证据变量和查询变量的因果关系不同,概率推理又可分为以下4种类型:

  • 从结果到原因的诊断推理。例如,已知Mary打电话,计算发生盗窃的概率。
  • 从原因到结果的预测推理。例如,已知发生了入室盗窃,计算Mary打电话的概率。
  • 同一结果的不同原因之间的原因间推理。例如,地震和入室盗窃都是导致警铃报警的原因。已知警铃响,又获知发生了地震,则对入室盗窃这一原因的信度则会降低。原因之间存在此消彼长的关系。
  • 包含上述多种类型的混合推理。例如,已知John打电话和发生了地震,计算警铃响的概率,这里既有诊断推理,又有预测推理。

虽然存在以上多种推理类型,但贝叶斯网推理都使用同一种方法来处理,即计算证据变量已知条件下查询变量的条件概率。

(2) 最大后验假设问题
已知证据E=e,有时会对一些变量的后验概率最大的状态组合感兴趣,这些变量称为假设变量,记作H。H的一个状态组合称为一个假设,记为h。在所有可能的假设中,找出后验概率最大的那个假设 h ∗ h^* h∗,即:
h ∗ = arg max ⁡ h P ( H = h ∣ E = e ) h^*=\argmax_h P(H=h|E=e) h∗=hargmax​P(H=h∣E=e)
这就是最大后验假设问题,简称为MAP(Maximum a posteriori hypothesis)。
可以看到,MAP问题的基础是后验概率问题。但MAP问题的复杂度与假设变量H的个数呈指数关系,对实际情况,需要作特殊的化简处理,关于该问题将在下一讲进行讨论。

(3) 最大可能解释问题
在贝叶斯网中,证据E=e的一个解释指的是网络中全部变量的一个与E=e相一致状态组合。往往有时最关心概率最大的那个解释,即最大可能解释,简称MPE(Most probable explanation)。MPE问题可视为MAP问题的一个特例,即MAP中的假设变量H包含了网络中所有非证据变量。

可以看出,以上三种问题中,最基础的是后验概率问题。而通过变量间的条件独立关系对联合分布进行分解,减少模型参数个数,可使推理过程简化。下面将介绍最基本的贝叶斯网推理算法:变量消元法。

2.1.2 变量消元法

2.1.2.1 概率分布的分解与推理复杂度

下面用一个最简单的贝叶斯网来分析推理的复杂度。
设有如下图所示的贝叶斯网,考虑计算P(D)。


P ( D ) = ∑ A , B , C P ( A , B , C , D ) = ∑ A , B , C P ( A ) P ( B ∣ A ) P ( C ∣ B ) P ( D ∣ C ) (2.1.1) \begin{aligned} P(D) &= \sum_{A,B,C} P(A,B,C,D) \\ &= \sum_{A,B,C} P(A)P(B|A)P(C|B)P(D|C) \end{aligned} \tag{2.1.1} P(D)​=A,B,C∑​P(A,B,C,D)=A,B,C∑​P(A)P(B∣A)P(C∣B)P(D∣C)​(2.1.1)
假设所有变量均为二值,则上式的运算复杂度如下:
P ( A = 0 ) { P ( B = 0 ∣ A = 0 ) [ P ( C = 0 ∣ B = 0 ) P ( D ∣ C = 0 ) + P ( C = 1 ∣ B = 0 ) P ( D ∣ C = 1 ) ] + P ( B = 1 ∣ A = 0 ) [ P ( C = 0 ∣ B = 1 ) P ( D ∣ C = 0 ) + P ( C = 1 ∣ B = 1 ) P ( D ∣ C = 1 ) ] } + P ( A = 1 ) { P ( B = 0 ∣ A = 1 ) [ P ( C = 0 ∣ B = 0 ) P ( D ∣ C = 0 ) + P ( C = 1 ∣ B = 0 ) P ( D ∣ C = 1 ) ] + P ( B = 1 ∣ A = 1 ) [ P ( C = 0 ∣ B = 1 ) P ( D ∣ C = 0 ) + P ( C = 1 ∣ B = 1 ) P ( D ∣ C = 1 ) ] } \begin{aligned} P(A=0)\{&P(B=0|A=0)[&P(C=0|B=0)P(D|C=0)&\\ &&+P(C=1|B=0)P(D|C=1)&]\\ +&P(B=1|A=0)[&P(C=0|B=1)P(D|C=0)&\\ &&+P(C=1|B=1)P(D|C=1)&]\}\\ +\\ P(A=1)\{&P(B=0|A=1)[&P(C=0|B=0)P(D|C=0)&\\ &&+P(C=1|B=0)P(D|C=1)&]\\ +&P(B=1|A=1)[&P(C=0|B=1)P(D|C=0)&\\ &&+P(C=1|B=1)P(D|C=1)&]\} \end{aligned} P(A=0){++P(A=1){+​P(B=0∣A=0)[P(B=1∣A=0)[P(B=0∣A=1)[P(B=1∣A=1)[​P(C=0∣B=0)P(D∣C=0)+P(C=1∣B=0)P(D∣C=1)P(C=0∣B=1)P(D∣C=0)+P(C=1∣B=1)P(D∣C=1)P(C=0∣B=0)P(D∣C=0)+P(C=1∣B=0)P(D∣C=1)P(C=0∣B=1)P(D∣C=0)+P(C=1∣B=1)P(D∣C=1)​]]}]]}​
其中乘法14次,加法7次,对与D=0和D=1都要进行以上运算,所以总共有乘法28次,加法14次。
为了利用联合概率分布的分解来降低推理复杂度,我们可以依次求出P(B)、P©和P(D)的边缘概率分布:
P ( B ) = P ( B ∣ A = 0 ) P ( A = 0 ) + P ( B ∣ A = 1 ) P ( A = 1 ) P ( C ) = P ( C ∣ B = 0 ) P ( B = 0 ) + P ( C ∣ B = 1 ) P ( B = 1 ) P ( D ) = P ( D ∣ C = 0 ) P ( C = 0 ) + P ( D ∣ C = 1 ) P ( C = 1 ) P(B)=P(B|A=0)P(A=0)+P(B|A=1)P(A=1)\\ P(C)=P(C|B=0)P(B=0)+P(C|B=1)P(B=1)\\ P(D)=P(D|C=0)P(C=0)+P(D|C=1)P(C=1) P(B)=P(B∣A=0)P(A=0)+P(B∣A=1)P(A=1)P(C)=P(C∣B=0)P(B=0)+P(C∣B=1)P(B=1)P(D)=P(D∣C=0)P(C=0)+P(D∣C=1)P(C=1)
计算P(B=0)需要2次乘法和1次加法,从而计算P(B)共需要4次乘法和2次加法;计算P©和P(D)的复杂度与P(B)一致。从而,共需12次乘法运算和6次加法运算。比直接用式(2.1.1)计算的复杂度低。
联合分布的分解之所以能降低推理复杂度,是因为它使得运算局部化。在式(2.1.1)中,消去A涉及到所有变量。而在第二种方法中,消去A只涉及到它自身和与它相连的变量B,因此复杂度降低。在变量众多的网络中,这种运算量的降低可能是指数级的,与贝叶斯网的节点度有关。
下面,我们定义严格的消元运算。

2.1.2.2 消元运算

在贝叶斯网基本概念中,介绍了联合分布的分解的概念。抽象地讲,一个联合分布是一个多变量函数,分解的概念可以推广到一般的多元函数。设 F ( X 1 , X 2 , ⋯ , X n ) F(X_1,X_2,\cdots,X_n) F(X1​,X2​,⋯,Xn​)是变量 { X 1 , X 2 , ⋯ , X n } \{X_1,X_2,\cdots,X_n\} {X1​,X2​,⋯,Xn​}的一个函数,而 F = { f 1 , f 2 , ⋯ , f m } \mathscr F = \{f_1,f_2,\cdots,f_m\} F={f1​,f2​,⋯,fm​}是一组函数,其中每个 f i f_i fi​所涉及的变量是 { X 1 , X 2 , ⋯ , X n } \{X_1,X_2,\cdots,X_n \} {X1​,X2​,⋯,Xn​}的一个子集。如果:
F = ∏ i = 1 m f i F=\prod_{i=1}^m f_i F=i=1∏m​fi​
则称 F \mathscr F F是F的一个分解, f 1 , f 2 , ⋯ , f m f_1,f_2,\cdots,f_m f1​,f2​,⋯,fm​是这个分解的因子。
不失一般性,设 F \mathscr F F中与 X 1 X_1 X1​相关的函数为 { f 1 , ⋯ , f k } \{ f_1,\cdots,f_k \} {f1​,⋯,fk​}。
从 F \mathscr F F中消去 X 1 X_1 X1​的过程称为消元运算,包括指如下过程:
(1) 从 F \mathscr F F中删去所有与 X 1 X_1 X1​相关的函数 f 1 , ⋯ , f k f_1,\cdots,f_k f1​,⋯,fk​;
(2) 将这些函数相乘,并通过如下运算消去变量 X 1 X_1 X1​:
∑ X 1 ∏ i k f i \sum_{X_1}\prod_i^k f_i X1​∑​i∏k​fi​
(3) 将新函数 ∑ X 1 ∏ i k f i \sum_{X_1}\prod_i^k f_i ∑X1​​∏ik​fi​放回 F \mathscr F F中。

以下定理保证了该消元运算等价于直接从联合概率分布求边缘概率分布。

定理2.1.1
设 F \mathscr F F是函数 F ( X 1 , X 2 , ⋯ , X n ) F(X_1,X_2,\cdots,X_n) F(X1​,X2​,⋯,Xn​)的一个分解,设 F ′ \mathscr F' F′是从 F \mathscr F F中消去 X 1 X_1 X1​后所得的一组函数。 G ( X 2 , ⋯ , X n ) G(X_2,\cdots,X_n) G(X2​,⋯,Xn​)是从 F ( X 1 , X 2 , ⋯ , X n ) F(X_1,X_2,\cdots,X_n) F(X1​,X2​,⋯,Xn​)中消去 X 1 X_1 X1​后所得的函数。那么
F ′ \mathscr F' F′是 G ( X 2 , ⋯ , X n ) G(X_2,\cdots,X_n) G(X2​,⋯,Xn​)的一个分解。

证明:
设 F = { f 1 , f 2 , ⋯ , f m } \mathscr F =\{ f_1,f_2,\cdots,f_m \} F={f1​,f2​,⋯,fm​},而 X 1 X_1 X1​只在 { f 1 , ⋯ , f k } \{f_1,\cdots,f_k\} {f1​,⋯,fk​}中出现。有:
G ( X 2 , ⋯ , X n ) = ∑ X 1 F ( X 1 , X 2 , ⋯ , X n ) = ∑ X 1 ∏ i = 1 m f i = ∑ X 1 ( ∏ i = 1 k f i ∏ i = k + 1 m f i ) = ( ∑ X 1 ∏ i = 1 k f i ) ∏ i = k + 1 m f i \begin{aligned} G(X_2,\cdots,X_n)&=\sum_{X_1}F(X_1,X_2,\cdots,X_n)\\ &=\sum_{X_1}\prod_{i=1}^m f_i\\ &=\sum_{X_1}(\prod_{i=1}^k f_i \prod_{i=k+1}^m f_i)\\ &=(\sum_{X_1}\prod_{i=1}^k f_i)\prod_{i=k+1}^m f_i \end{aligned} G(X2​,⋯,Xn​)​=X1​∑​F(X1​,X2​,⋯,Xn​)=X1​∑​i=1∏m​fi​=X1​∑​(i=1∏k​fi​i=k+1∏m​fi​)=(X1​∑​i=1∏k​fi​)i=k+1∏m​fi​​
定理得证。

2.1.2.3 基于变量消元法的后验概率推理算法

设X是一个贝叶斯网N中所有变量的集合, F \mathscr F F是N中所有概率分布的集合。按照贝叶斯网的定义, F \mathscr F F是N所表示的联合概率分布P(X)的一个分解。
假设观测到了证据E=e。在 F \mathscr F F的因子中,将个证据变量设置为它们的观测值,得到另一组函数,记为 F ′ \mathscr F' F′,该步骤称为证据设置。 F ′ \mathscr F' F′是函数P(Y,E=e)的一个分解,这里Y=X\E。
设Q是Y的一个子集,从 F ′ \mathscr F' F′中逐个消去所有在Y中但不在Q中的变量,得到另一个函数集合,记为 F ′ ′ \mathscr F'' F′′。根据定理2.1.1, F ′ ′ \mathscr F'' F′′是P(Q,E=e)的一个分解。所以,将 F ′ ′ \mathscr F'' F′′中的所有因子相乘,就得到P(Q,E=e),进一步可得到:
P ( Q ∣ E = e ) = P ( Q , E = e ) ∑ Q P ( Q , E = e ) P(Q|E=e)=\frac{P(Q,E=e)}{\sum_Q P(Q,E=e)} P(Q∣E=e)=∑Q​P(Q,E=e)P(Q,E=e)​
上述过程给出了一个计算后验概率分布的算法,即变量消元法,简称VE算法。其形式化描述如下:

VE(N,E,e,Q,p):
输入:   N   一个贝叶斯网E   证据变量e   证据变量的取值Q   查询变量p   消元顺序,包含所有不在Q和E中的变量
输出:   P(Q|E=e)
1. 将N中所有概率分布的集合赋值给F
2. 在F的因子中,将证据变量E设置为其观测值e
3. while(p不空):
4.     设Z为p中排在最前面的变量,将Z从p中删除
5.     F←Elim(F,Z)
6. end while
7. 将F中所有因子相乘,得到Q的函数h(Q)
8. return h(Q)/sum_Q(h(Q))
Elim(F,Z):
输入:   F   一个函数集合Z   待消元变量
输出:   另一个函数集合
1. 从F中删除所有涉及Z的函数,设这些函数为{f1,f2,...,fk}
2. g←将这k个函数连乘$\prod_{i=1}^k f_i$
3. h←对g中的Z累加消元$\sum_Z g$
4. 将h放回F中
5. return F

例2.1.1 在下图所示的贝叶斯网中,设证据为{F=0},使用VE算法计算P(A|F=0).

设消元顺序p=<C,E,B,D>。
贝叶斯网给出的联合分布的分解为:
F = { P ( A ) , P ( B ) , P ( C ) , P ( D ∣ A , B ) , P ( E ∣ B , C ) , P ( F ∣ D , E ) } \mathscr F = \{P(A),P(B),P(C),P(D|A,B),P(E|B,C),P(F|D,E)\} F={P(A),P(B),P(C),P(D∣A,B),P(E∣B,C),P(F∣D,E)}
(1) VE算法首先设置证据F=0,得:
F = { P ( A ) , P ( B ) , P ( C ) , P ( D ∣ A , B ) , P ( E ∣ B , C ) , P ( F = 0 ∣ D , E ) } \mathscr F = \{P(A),P(B),P(C),P(D|A,B),P(E|B,C),P(F=0|D,E)\} F={P(A),P(B),P(C),P(D∣A,B),P(E∣B,C),P(F=0∣D,E)}
(2) 依照消元顺序p,首先消去变量C,与C有关的因子是 P ( C ) , P ( E ∣ B , C ) P(C),P(E|B,C) P(C),P(E∣B,C),消去C得:
F = { P ( A ) , P ( B ) , P ( D ∣ A , B ) , P ( F = 0 ∣ D , E ) , ψ 1 ( B , E ) } \mathscr F = \{ P(A),P(B),P(D|A,B),P(F=0|D,E), \psi_1(B,E) \} F={P(A),P(B),P(D∣A,B),P(F=0∣D,E),ψ1​(B,E)}
其中, ψ 1 ( B , E ) = ∑ C P ( C ) P ( E ∣ B , C ) \psi_1(B,E)=\sum_C P(C)P(E|B,C) ψ1​(B,E)=∑C​P(C)P(E∣B,C)
(3) 接着消去变量E,与E有关的因子是 P ( F = 0 ∣ D , E ) , ψ 1 ( B , E ) P(F=0|D,E),\psi_1(B,E) P(F=0∣D,E),ψ1​(B,E),消去E得:
F = { P ( A ) , P ( B ) , P ( D ∣ A , B ) , ψ 2 ( D , B , F = 0 ) } \mathscr F=\{P(A),P(B),P(D|A,B),\psi_2(D,B,F=0)\} F={P(A),P(B),P(D∣A,B),ψ2​(D,B,F=0)}
其中, ψ 2 ( D , B , F = 0 ) = ∑ E P ( F = 0 ∣ D , E ) ψ 1 ( B , E ) \psi_2(D,B,F=0)=\sum_E P(F=0|D,E)\psi_1(B,E) ψ2​(D,B,F=0)=∑E​P(F=0∣D,E)ψ1​(B,E)
(4) 接着消去变量B,与B有关的因子是 P ( B ) , P ( D ∣ A , B ) , ψ 2 ( D , B , F = 0 ) P(B),P(D|A,B),\psi_2(D,B,F=0) P(B),P(D∣A,B),ψ2​(D,B,F=0),消去B得:
F = { P ( A ) , ψ 3 ( A , D , F = 0 ) } \mathscr F=\{P(A),\psi_3(A,D,F=0)\} F={P(A),ψ3​(A,D,F=0)}
其中, ψ 3 ( A , D , F = 0 ) = ∑ B P ( B ) P ( D ∣ A , B ) ψ 2 ( B , D , F = 0 ) \psi_3(A,D,F=0)=\sum_B P(B)P(D|A,B)\psi_2(B,D,F=0) ψ3​(A,D,F=0)=∑B​P(B)P(D∣A,B)ψ2​(B,D,F=0)
(5) 最后消去变量D,与D有关的因子是 ψ 3 ( A , D , F = 0 ) \psi_3(A,D,F=0) ψ3​(A,D,F=0),消去D得:
F = { P ( A ) , ψ 4 ( A , F = 0 ) } \mathscr F = \{P(A),\psi_4(A,F=0)\} F={P(A),ψ4​(A,F=0)}
其中, ψ 4 ( A , F = 0 ) = ∑ D ψ 3 ( A , D , F = 0 ) \psi_4(A,F=0)=\sum_D \psi_3(A,D,F=0) ψ4​(A,F=0)=∑D​ψ3​(A,D,F=0)
(6) 计算 h ( A , F = 0 ) = P ( A ) ψ 4 ( A , F = 0 ) h(A,F=0)=P(A)\psi_4(A,F=0) h(A,F=0)=P(A)ψ4​(A,F=0)
(7) 返回:
P ( A ∣ F = 0 ) = h ( A , F = 0 ) ∑ A h ( A , F = 0 ) P(A|F=0)=\frac{h(A,F=0)}{\sum_A h(A,F=0)} P(A∣F=0)=∑A​h(A,F=0)h(A,F=0)​

2.1.3 复杂度分析

2.1.3.1 复杂性的度量

在VE算法中,最耗费时间和空间的步骤是对Elim(F,Z)的调用,因此可以把这一步的复杂度作为整个算法的复杂度。
Elim(F,Z)从F中挑出所有涉及Z的函数 { f 1 , ⋯ , f k } \{ f_1,\cdots,f_k \} {f1​,⋯,fk​},将它们相乘得到函数g,在将Z从g中消去。设 { X 1 , ⋯ , X l } \{ X_1,\cdots,X_l \} {X1​,⋯,Xl​}是g中除Z以外的变量。若将g表示为多维表,则g所储存的函数值的个数为 ∣ Z ∣ ∏ i = 1 l ∣ X i ∣ |Z|\prod_{i=1}^l|X_i| ∣Z∣∏i=1l​∣Xi​∣。该值可作为函数g复杂性的一个恰当度量,从而也是Elim(F,Z)的复杂性的恰当度量。我们称之为变量Z的消元成本,记为 C ( Z ) \mathscr{C}( Z) C(Z).
在推理过程中,VE算法需要消去多个变量,设它们依次为 Z 1 , Z 2 , ⋯ , Z n Z_1,Z_2,\cdots,Z_n Z1​,Z2​,⋯,Zn​。则VE算法的复杂度可以用总消元成本 C = ∑ i = 1 n C ( Z i ) \mathscr C=\sum_{i=1}^n \mathscr C(Z_i) C=∑i=1n​C(Zi​)来度量。式中最大的一项对整个式子的大小起支配作用,因此有时也用其中的最大项来度量VE算法的复杂度。该最大项被称为最大团的大小,在下一节讨论团树传播算法时会再提到。

2.1.3.2 复杂度的计算

VE算法的复杂度与贝叶斯网的结构相关。
考虑一个函数集合 F = { f 1 , f 2 , ⋯ , f m } \mathscr F = \{f_1,f_2,\cdots,f_m\} F={f1​,f2​,⋯,fm​},它的结构图是一个按如下方法定义的无向图:
(1) 从空图出发,对 F \mathscr F F中每一个变量添加一个节点;
(2) 对任意两个变量X和Y,若它们出现在同一因子中,则在它们对应的节点之间添加一条边;
例如,函数集合
F = { P ( A ) , P ( T ∣ A ) , P ( S ) , P ( L ∣ S ) , P ( B ∣ S ) , P ( R ∣ T , L ) , P ( X ∣ R ) , P ( D ∣ R , B ) } \mathscr F = \{ P(A), P(T|A), P(S), P(L|S), P(B|S), P(R|T,L), P(X|R),P(D|R,B) \} F={P(A),P(T∣A),P(S),P(L∣S),P(B∣S),P(R∣T,L),P(X∣R),P(D∣R,B)}
其结构图如下所示。

可以看出,结构图与端正图相同,结构图是从函数集合 F \mathscr F F的角度定义,端正图是从贝叶斯网的角度定义。

从 F \mathscr F F中消去一个变量Z的成本为 C ( Z ) = ∣ Z ∣ ∏ i = 1 l ∣ X i ∣ \mathscr{C}(Z)=|Z|\prod_{i=1}^l |X_i| C(Z)=∣Z∣∏i=1l​∣Xi​∣,其中 Z , X 1 , ⋯ , X l Z,X_1,\cdots,X_l Z,X1​,⋯,Xl​是函数 g = ∏ i = 1 k f i g=\prod_{i=1}^k f_i g=∏i=1k​fi​所涉及的所有变量,而 f 1 , ⋯ , f k f_1,\cdots,f_k f1​,⋯,fk​是所有涉及Z的因子。根据结构图的定义, { X 1 , ⋯ , X l } \{ X_1,\cdots,X_l \} {X1​,⋯,Xl​}是 F \mathscr F F的结构图中与Z相邻的节点集合,记为nb(Z)。因此有:
C ( Z ) = ∣ Z ∣ ∏ X ∈ n b ( Z ) ∣ X ∣ \mathscr C(Z)=|Z|\prod_{X\in nb(Z)}|X| C(Z)=∣Z∣X∈nb(Z)∏​∣X∣

对于上图,设所有变量都取二值。从 F \mathscr F F中消去变量T。在结构图中,T的邻居节点nb(T)={A,L,R},所以:
C ( T ) = ∣ T ∣ ∏ X ∈ n b ( T ) ∣ X ∣ = 16 \mathscr C(T)=|T|\prod_{X\in nb(T)}|X|=16 C(T)=∣T∣X∈nb(T)∏​∣X∣=16

从 F \mathscr F F中消去T后得到新的函数集合 F ′ \mathscr F' F′, F ′ \mathscr F' F′的结构图可以通过对上图作如下图的变换得到:

即首先在原图G中将所有与Z相邻的节点nb(Z)两两相连,再从图中除去节点Z,以及与Z相连的所有边。

考虑一个消元顺序p,通过如下CostVE算法可计算VE算法的复杂度。

CostVE(N,E,Q,p):
输入:   N   贝叶斯网络结构E   证据变量Q   查询变量p   消元顺序,包含所有不再Q和E中的变量
输出:   用VE算法计算P(Q|E=e)的复杂度
1. 将N端正化为G
2. 从G中除去所有证据变量
3. 复杂度C赋初值0
4. while(p不空):
5.     从p中移去第一个变量Z
6.     C=C+|Z|\prod_{X\in nb(Z)}|X|
7.     从G中消去节点Z
8. end while
9. return C

考虑用VE算法消去上图所示贝叶斯网中所有变量。设这些变量均取二值,用CostVE算法计算两个不同的消元顺序分别对应的消元成本。
(1) 消元顺序p=<A,X,D,S,B,L,T,R>
(2) 消元顺序p=<R,L,T,D,B,S,A,X>
如下两图所示,分别为两种消元顺序的图变换过程。
第一种顺序的消元成本为:
C = 2 2 + 2 2 + 2 3 + 2 3 + 2 3 + 2 2 + 2 = 46 \mathscr C = 2^2+2^2+2^3+2^3+2^3+2^2+2=46 C=22+22+23+23+23+22+2=46
第二种顺序的消元成本为:
C = 2 6 + 2 6 + 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 = 254 \mathscr C = 2^6+2^6+2^6+2^5+2^4+2^3+2^2+2=254 C=26+26+26+25+24+23+22+2=254


2.1.4 消元顺序

从上例我们可以看到,两种不同消元顺序会导致不同的消元成本。在所有消元顺序中,总成本最低的消元顺序称为最优消元顺序。在推理之前,我们希望能预先确定最优消元顺序。然而,寻找最优消元顺序是一个NP难问题。实际中,我们可以使用启发式规则来寻找较好、但不一定是最优的消元顺序。常用的确定消元顺序的启发式方法包括:最大势搜索和最小缺边搜索。

2.1.4.1 最大势搜索

最大势搜索的方法为:首先从结构图中任选一个节点,编号为1;然后在剩下的未编号节点中选择与最多已编号节点相邻的节点,并依次编号;若出现多个候选待编号节点,则任选一个;在所有节点都完成编号后,按编号由大到小将节点排序,该顺序则为按最大势搜索的消元顺序。
以下图的贝叶斯网为例,用最大势搜索来确定消元顺序。

第1步,任选一个节点,比如B节点,编号为1;
第2步,候选待节点为<S,R,D>,因为它们的相邻节点中已编号的数量都是1,任选其中一个节点,比如S,编号为2;
第3步,候选待编号节点为<L,R,D>,它们的相邻节点已编号的数量都是1,任选其中一个节点,比如D,编号为3;
第4步,候选待编号节点为,它的相邻节点已编号的数量最多,为2,将其编号为4;
第5步,以此类推,分别将L、T、X、A编号为5、6、7、8;
最后,按编号由大到小排序得到<A,X,T,L,R,D,S,B>的消元顺序。
有CostVE算法可以计算得到,该消元顺序的成本为46。

2.1.4.2 最小缺边搜索

定义节点Z的缺边数为消去该节点后需要添加的边的条数。比如在上例的初始贝叶斯图上,节点{A,T,L,R,S,B,D,X}的缺边数分别为{0,2,2,8,1,2,0,0}.
最小缺边搜索的方法为:计算所有节点的缺边数,选择缺边数最小的,编号为1,若有多个候选待编号节点,则任选一个;从图中消去该节点,再重复以上过程,直至所有节点都消去。所得编号,按由小到大排序,该顺序即为按最小缺边搜索的消元顺序。
下图为按最小缺边搜索的过程,得到的消元顺序为<A,X,T,D,S,L,B,R>,由CostVE算法可以计算得到,该消元顺序的成本为46。


下一讲将介绍通过条件独立进一步化简贝叶斯网推理的方法以及MAP问题的变量消元算法。

2.1.5 推理问题化简

2.1.6 MAP问题化简

贝叶斯网专题4:概率推理中的变量消元方法相关推荐

  1. 贝叶斯网专题11:参数学习之极大似然估计

    第一部分:贝叶斯网基础 1.1 信息论基础 1.2 贝叶斯网基本概念 1.3 变量独立性的图论分析 第二部分:贝叶斯网推理 2.1 概率推理中的变量消元方法 2.2 团树传播算法 2.3 近似推理 2 ...

  2. 贝叶斯网专题12:参数学习之贝叶斯估计

    第一部分:贝叶斯网基础 1.1 信息论基础 1.2 贝叶斯网基本概念 1.3 变量独立性的图论分析 第二部分:贝叶斯网推理 2.1 概率推理中的变量消元方法 2.2 团树传播算法 2.3 近似推理 2 ...

  3. 贝叶斯网专题6:团树传播

    文章目录 第一部分:贝叶斯网基础 [1.1 信息论基础](https://blog.csdn.net/deepbodhi/article/details/119823055) [1.2 贝叶斯网基本概 ...

  4. 贝叶斯网专题1:信息论基础

    文章目录 贝叶斯网专题前言 第一部分:贝叶斯网基础 1.1 信息论基础 1.1.1 预备数学知识:Jensen不等式 1.1.2 熵 1.1.3 联合熵.条件熵.互信息 1.1.4 交叉熵和相对熵(K ...

  5. 贝叶斯网专题2:贝叶斯网基本概念

    文章目录 第一部分:贝叶斯网基础 [1.1 信息论基础](https://blog.csdn.net/deepbodhi/article/details/119823055) 1.2 贝叶斯网基本概念 ...

  6. 贝叶斯网引论 by 张连文

    贝叶斯网(Bayesian networks)是一种描述随机变量之间关系的语言,构造贝叶斯网是为了概率推理,理论上概率推理基于联合概率分布就行了,但是联合概率分布(基于表)的复杂度会呈指数增长,贝叶斯 ...

  7. Bonaparte:贝叶斯网在灾难遇难者识别(DVI)中的应用

    荷兰一家软件公司开发的Bonaparte系统已成功应用在多起灾难的遗体鉴别任务中.根据其官网给出的联系方式,联系到了其技术主管Willem Burgers,向他询问Bonaparte背后的技术原理.W ...

  8. 贝叶斯网的R实现( Bayesian networks in R)bnlearn(4)

    贝叶斯网络的推理(inference) (1)推理问题 在了解如何构造贝叶斯网络之后,下面我们考虑如何利用贝叶斯网络来进行推理.贝叶斯网络的推理是对某些变量当给定其它变量的状态作为证据时如何推断它们的 ...

  9. 从朴素贝叶斯到贝叶斯网

    回顾 在文章<朴素贝叶斯>中,小夕为大家介绍了朴素贝叶斯模型的基本知识,并且得出了朴素贝叶斯是利用联合概率P(x1,x2,x3...xn,y)来确定某个样本为某个类别的概率,进而利用最大后 ...

最新文章

  1. 2020 最烂密码 TOP 200 大曝光,霸榜的竟然是它?
  2. 黑马vue---1-7、vue杂记
  3. 操作html标签之找到标签(续)
  4. 如何把Eclipse工程导入到Android Studio
  5. 【资料分享】2018全球DevOps现状调查报告(中文版)
  6. 巴菲特对合伙人提过3个要求
  7. PHPSHE 1.7前台SQL注入漏洞分析
  8. java使用bks双向认证_android客户端SSL单向双向认证
  9. 《Java程序员职场全功略:从小工到专家》连载四:IT人不容易
  10. 利用Python连接MySQL将表单转化为DataFrame
  11. UART RS232 RS485协议原理及应用
  12. 处理数据spss乱码
  13. C2. Skyscrapers (hard version)
  14. HDU 5773 (DP)
  15. Linux通过windows代理上网配置方式
  16. 1074: 百钱买百鸡
  17. matlab三维点云去除背景,一种点云处理三维重建方法与流程
  18. 江苏省计算机二级高级office知识点,计算机二级高级Office常见知识点积累
  19. 数值分析笔记_3 埃尔米特插值
  20. 【学习笔记】《卓有成效的管理者》 第二章 掌握自己的时间

热门文章

  1. ARCGIS与QGIS对比,WEBGIS所用到的软件
  2. Material doesn‘t have a texture property ‘_MainTex
  3. Altium Designer生成Gerber文件的设置(嘉立创建议 )
  4. 网络营销复习题及答案
  5. Python的excel表格操作,数据提取分析
  6. [代码解读]基于多代理RL的车联网频谱分享_Python实现
  7. 计算机操作校本培训教材,小学教师校本培训教材.doc
  8. java递归1加到10,递归1-初识递归
  9. 车载计算机维修,车载电脑硬件故障及检修
  10. 搭建WDS(Windows部署服务)