贝叶斯网专题5:推理问题化简和MAP问题化简


第一部分:贝叶斯网基础

1.1 信息论基础

1.2 贝叶斯网基本概念

1.3 变量独立性的图论分析

第二部分:贝叶斯网推理

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

2.1.1 推理问题

2.1.2 变量消元法

2.1.3 复杂度分析

2.1.4 消元顺序

2.1.5 推理问题化简

前面介绍了通过消元方法降低推理复杂度,且通过选择合适的变量消元顺序,可进一步降低推理复杂度。本小节则介绍通过剔除贝叶斯网络中与推理无关的变量,从而进一步简化推理问题。
在本专题第3讲中,在介绍D分隔和U分隔之间关系时,引入了祖先闭集的概念。紧接着,在祖先闭集与贝叶斯子网中又证明了命题1.3.1:『贝叶斯网中的祖先闭集仍为贝叶斯网,且分布函数不变』。基于该命题,我们可以证明如下定理。

定理2.1.1
给定一贝叶斯网N,设P(Q|E=e)是需要计算的后验概率。令N’为从N中除去在 a n ( Q ∪ E ) an(Q\cup E) an(QE)之外的所有节点后所得到的贝叶斯网,则:
P N ( Q ∣ E = e ) = P N ′ ( Q ∣ E = e ) P_N(Q|E=e)=P_{N'}(Q|E=e) PN(QE=e)=PN(QE=e)

证明:
由命题1.3.1可知:
P N ( a n ( Q ∪ E ) ) = P N ′ ( a n ( Q ∪ E ) ) P_N(an(Q\cup E))=P_{N'}(an(Q\cup E)) PN(an(QE))=PN(an(QE))
因此有:
P N ( Q ∣ E = e ) = P N ′ ( Q ∣ E = e ) P_N(Q|E=e)=P_{N'}(Q|E=e) PN(QE=e)=PN(QE=e)
命题得证。

该定理表明,在 a n ( Q ∪ E ) an(Q\cup E) an(QE)之外的所有节点都与P(Q|E=e)无关,因此可在推理前将它们除去,从而降低推理复杂度。

进一步地,在剩余节点 a n ( Q ∪ E ) an(Q\cup E) an(QE)中,可寻找Q被E D分隔的节点,这些节点与Q相互独立,也可以删去,进而降低推理复杂度。寻找d-分隔的方法可参考本专题第3讲介绍D分隔与U分隔关系部分。
本专题第3讲曾证明过D分隔与条件独立的等价性,证明过程使用了类似如下所示的一张示意图。我们通过在端正图上寻找U分隔,很容易找出Q被E D分隔的节点集Y。E可分为两部分,一部分为存在父节点在X中的节点集 E 1 E_1 E1,剩余的为 E 2 = E − E 1 E_2=E-E1 E2=EE1。当我们删除与Q独立的所有节点Y后,可能会残留从Y指向 E 2 E_2 E2的边,比如下图中的K节点。这意味着删除Y需要修改节点K的条件概率表,这里只需将K的条件概率表中涉及Y中节点的部分设置为任意分布皆可,因为对于证据变量E,其值确定,概率推理中将不再依赖其条件概率表。
利用条件独立化简贝叶斯网推理

在如下图所示的贝叶斯网N中,设证据为{B=0,F=1},考虑计算 P N ( I ∣ B = 0 , F = 1 ) P_N(I|B=0,F=1) PN(IB=0,F=1)
推理问题简化
首先,保留贝叶斯网N中{I,B,F}节点的祖先闭集,得到上图(b)中的贝叶斯网N’。将N’端正化为无向图,并寻找节点I被{B,F} U分隔的节点集,为{A,D},从而可知在贝叶斯网N’上,{A,D}与I被{B,F} D分隔,在{B,F}已知的条件下,{A,D}与I独立。因此可进一步删去{A,D},得到贝叶斯网N’’。所求 P N ( I ∣ B = 0 , F = 1 ) = P N ′ ′ ( I ∣ B = 0 , F = 1 ) P_N(I|B=0,F=1)=P_{N''}(I|B=0,F=1) PN(IB=0,F=1)=PN(IB=0,F=1).

2.1.6 MAP问题化简

在上一讲介绍推理问题时,介绍了MAP问题是推理问题的一种,即计算 h ∗ = arg max ⁡ h P ( H = h ∣ E = e ) h^*=\argmax_h P(H=h|E=e) h=hargmaxP(H=hE=e)的问题。为了解决这个问题,可通过变量消元法,设证据变量为E=e,再逐个消去假设变量H之外的其它变量,获得一个P(H,E=e)的分解,并利用下式计算结果:
arg max ⁡ h P ( H ∣ E = e ) = arg max ⁡ h P ( H , E = e ) ∑ h P ( H , E = e ) = arg max ⁡ h P ( H , E = e ) \begin{aligned} \argmax_h P(H|E=e) &= \argmax_h \frac{P(H,E=e)}{\sum_h P(H,E=e)} \\ &= \argmax_h P(H,E=e) \end{aligned} hargmaxP(HE=e)=hargmaxhP(H,E=e)P(H,E=e)=hargmaxP(H,E=e)
搜索最优h的复杂度与假设变量的个数|H|指数相关,当假设变量较多时不可行。因此,需要考虑利用P(H,E=e)的分解来降低计算复杂度。

2.1.6.1 max运算的链式法则

首先来考虑两个运算,即取最大值运算max和搜索最大值点的运算argmax。一般地,设X和Y是两个交空的变量集合,g(X,Y)是它们的函数,那么:
(1) max ⁡ X g ( X , Y ) \max_X g(X,Y) maxXg(X,Y)是Y的函数;
(2) arg max ⁡ X g ( X , Y ) \argmax_X g(X,Y) Xargmaxg(X,Y)是从 Ω Y \Omega_Y ΩY Ω X \Omega_X ΩX的映射。
有如下定理,对max运算在不相交自变量集的函数上所满足的链式法则进行了证明。

定理2.1.2
设X,Y,Z是3个两两交空的变量集合,g(X,Y)和h(Y,Z)是两个函数,则有
max ⁡ X , Y , Z g ( X , Y ) h ( Y , Z ) = max ⁡ X , Y [ g ( X , Y ) max ⁡ Z h ( Y , Z ) ] (1)) \max_{X,Y,Z} g(X,Y)h(Y,Z)=\max_{X,Y} [g(X,Y)\max_Z h(Y,Z)] \tag{1)} X,Y,Zmaxg(X,Y)h(Y,Z)=X,Ymax[g(X,Y)Zmaxh(Y,Z)](1))
再设 δ ( Y ) = arg max ⁡ Z h ( Y , Z ) \delta(Y)=\argmax_Z h(Y,Z) δ(Y)=Zargmaxh(Y,Z)

( x ∗ , y ∗ ) = arg max ⁡ X , Y [ g ( X , Y ) max ⁡ Z h ( Y , Z ) ] (x^*,y^*)=\argmax_{X,Y}[g(X,Y)\max_Z h(Y,Z)] (x,y)=X,Yargmax[g(X,Y)Zmaxh(Y,Z)]
那么,
arg max ⁡ X , Y , Z g ( X , Y ) h ( Y , Z ) = ( x ∗ , y ∗ , δ ( y ∗ ) ) (2) \argmax_{X,Y,Z}g(X,Y)h(Y,Z)=(x^*,y^*,\delta(y^*)) \tag{2} X,Y,Zargmaxg(X,Y)h(Y,Z)=(x,y,δ(y))(2)

证明:
F 1 ( X , Y , Z ) = g ( X , Y ) h ( Y , Z ) F_1(X,Y,Z)=g(X,Y)h(Y,Z) F1(X,Y,Z)=g(X,Y)h(Y,Z),其最大值点为:
( x 1 ∗ , y 1 ∗ , z 1 ∗ ) = arg max ⁡ X , Y , Z F 1 ( X , Y , Z ) (x_1^*,y_1^*,z_1^*)=\argmax_{X,Y,Z} F_1(X,Y,Z) (x1,y1,z1)=X,Y,ZargmaxF1(X,Y,Z)
再设 F 2 ( X , Y ) = g ( X , Y ) max ⁡ Z h ( Y , Z ) F_2(X,Y)=g(X,Y)\max_Z h(Y,Z) F2(X,Y)=g(X,Y)maxZh(Y,Z),其最大值点为:
( x ∗ , y ∗ ) = arg max ⁡ X , Y F 2 ( X , Y ) (x^*,y^*)=\argmax_{X,Y} F_2(X,Y) (x,y)=X,YargmaxF2(X,Y)
对于式(1)等号右侧有:
max ⁡ X , Y F 2 ( X , Y ) ≥ F 2 ( x 1 ∗ , y 1 ∗ ) = g ( x 1 ∗ , y 1 ∗ ) max ⁡ Z h ( y 1 ∗ , Z ) ≥ g ( x 1 ∗ , y 1 ∗ ) h ( y 1 ∗ , z 1 ∗ ) = max ⁡ X , Y , Z F 1 ( X , Y , Z ) \begin{aligned} \max_{X,Y}F_2(X,Y)&\ge F_2(x_1^*,y_1^*)\\ &=g(x_1^*,y_1^*)\max_Zh(y_1^*,Z)\\ &\ge g(x_1^*,y_1^*)h(y_1^*,z_1^*)\\ &=\max_{X,Y,Z}F_1(X,Y,Z) \end{aligned} X,YmaxF2(X,Y)F2(x1,y1)=g(x1,y1)Zmaxh(y1,Z)g(x1,y1)h(y1,z1)=X,Y,ZmaxF1(X,Y,Z)
反过来,等号左侧有:
max ⁡ X , Y , Z F 1 ( X , Y , Z ) ≥ max ⁡ Z F 1 ( x ∗ , y ∗ , Z ) = max ⁡ Z g ( x ∗ , y ∗ ) h ( y ∗ , Z ) = g ( x ∗ , y ∗ ) max ⁡ Z h ( y ∗ , Z ) = max ⁡ X , Y F 2 ( X , Y ) \begin{aligned} \max_{X,Y,Z}F_1(X,Y,Z)&\ge\max_ZF_1(x^*,y^*,Z)\\ &=\max_Zg(x^*,y^*)h(y^*,Z)\\ &=g(x^*,y^*)\max_Zh(y^*,Z)\\ &=\max_{X,Y}F_2(X,Y) \end{aligned} X,Y,ZmaxF1(X,Y,Z)ZmaxF1(x,y,Z)=Zmaxg(x,y)h(y,Z)=g(x,y)Zmaxh(y,Z)=X,YmaxF2(X,Y)
从而,式(1)成立。
同时, x 1 ∗ = x ∗ , y 1 ∗ = y ∗ x_1^*=x^*,y_1^*=y^* x1=x,y1=y,对于 z 1 ∗ z_1^* z1,有
z 1 ∗ = arg max ⁡ Z g ( x ∗ , y ∗ ) h ( y ∗ , Z ) = g ( x ∗ , y ∗ ) arg max ⁡ Z h ( y ∗ , Z ) = arg max ⁡ Z h ( y ∗ , Z ) = δ ( y ∗ ) \begin{aligned} z_1^*&=\argmax_Zg(x^*,y^*)h(y^*,Z)\\ &=g(x^*,y^*)\argmax_Zh(y^*,Z)\\ &=\argmax_Zh(y^*,Z)\\ &=\delta(y^*) \end{aligned} z1=Zargmaxg(x,y)h(y,Z)=g(x,y)Zargmaxh(y,Z)=Zargmaxh(y,Z)=δ(y)
从而,定理得证。

2.1.6.2 分解和计算复杂度

定理2.1.2提供了利用max运算的链式法则来进行变量消元,从而化简MAP问题的方法。设f(H)=g(X,Y)h(Y,Z),根据定理2.1.2,函数f(H)的最大值可以通过如下两步获得:
(1) h ′ ( Y ) = max ⁡ Z h ( Y , Z ) h'(Y)=\max_Zh(Y,Z) h(Y)=maxZh(Y,Z);
(2) max ⁡ X , Y g ( X , Y ) h ′ ( Y ) \max_{X,Y}g(X,Y)h'(Y) maxX,Yg(X,Y)h(Y)
我们来分析一下,通过变量消元是否降低了计算复杂度?
设X,Y,Z都是有3种取值的变量.
直接计算 max ⁡ X , Y , Z g ( X , Y ) h ( Y , Z ) \max_{X,Y,Z} g(X,Y)h(Y,Z) maxX,Y,Zg(X,Y)h(Y,Z)需要进行 3 3 = 27 3^3=27 33=27次乘法和26次比较。
使用max的链式法则进行计算,第一步对Y的每一个取值需要做2次比较,共6次比较;第二步需要做 3 2 = 9 3^2=9 32=9次乘法和8次比较。两步共需要9次乘法和14次比较。
新方法比直接计算节省了18次乘法和12次比较。
再根据定理2.1.2,函数f(H)的最大值点可通过如下步骤获得:
(1) δ ( Y ) = arg max ⁡ Z h ( Y , Z ) \delta(Y)=\argmax_Zh(Y,Z) δ(Y)=Zargmaxh(Y,Z);
(2) ( x ∗ , y ∗ ) = arg max ⁡ X , Y g ( X , Y ) h ′ ( Y ) (x^*,y^*)=\argmax_{X,Y}g(X,Y)h'(Y) (x,y)=X,Yargmaxg(X,Y)h(Y);
(3) z ∗ = δ ( y ∗ ) z^*=\delta(y^*) z=δ(y)
该过程与计算最大值的过程可同步合并进行,过程中需要对 δ ( Y ) \delta(Y) δ(Y)记录。
由此可见,通过变量消元计算MAP问题是一种用空间换时间来降低算法时间复杂度的方法。

2.1.6.3 MAP变量消元算法

基于以上分析,下面给出MAP变量消元算法的形式化描述。
F = { f 1 , ⋯   , f m } \mathscr F=\{f_1,\cdots,f_m\} F={f1,,fm}是函数f(H)的一个分解,p是一个消元顺序,以下算法给出了一个利用分解 F \mathscr F F计算 ( max ⁡ H , arg max ⁡ H f ( H ) ) (\max_H,\argmax_Hf(H)) (maxH,Hargmaxf(H))的算法,即MAP变量消元法:MAP-VE。
设Z是p中第一个变量。MAP-VE首先从 F \mathscr F F中找出所有涉及Z的因子,不失一般性,设为 f 1 , ⋯   , f k f_1,\cdots,f_k f1,,fk,把它们连乘起来,得到函数 h ( Y , Z ) = ∏ i = 1 k f i h(Y,Z)=\prod_{i=1}^kf_i h(Y,Z)=i=1kfi,这里Y是h(Y,Z)所涉及的除Z以外的所有变量。记 F \mathscr F F中所有其它因子的乘积为函数g(X,Y),其中X为H中除去Y和Z以外的所有变量,则f(H)=g(X,Y)h(Y,Z)。
MAP-VE算法

对如下图所示的贝叶斯网,求 max ⁡ A , B , C , D , E P ( A , B , C , D , E ∣ F = 0 ) \max_{A,B,C,D,E}P(A,B,C,D,E|F=0) maxA,B,C,D,EP(A,B,C,D,EF=0) arg max ⁡ A , B , C , D , E P ( A , B , C , D , E ∣ F = 0 ) \argmax_{A,B,C,D,E}P(A,B,C,D,E|F=0) A,B,C,D,EargmaxP(A,B,C,D,EF=0)
变量消元法示例
函数P(A,B,C,D,E,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(DA,B),P(EB,C),P(F=0D,E)}
设消元顺序为p=<C,E,B,D,A>,MAP-VE算法的运算过程如下:
(1) 首先消去C:
δ 1 ( B , E ) = arg max ⁡ C P ( C ) P ( E ∣ B , C ) ψ 1 ( B , E ) = max ⁡ C P ( C ) P ( E ∣ B , C ) F = { P ( A ) , P ( B ) , P ( D ∣ A , B ) , P ( F = 0 ∣ D , E ) , ψ 1 ( B , E ) } \delta_1(B,E)=\argmax_CP(C)P(E|B,C)\\ \psi_1(B,E)=\max_CP(C)P(E|B,C)\\ \mathscr F=\{P(A),P(B),P(D|A,B),P(F=0|D,E),\psi_1(B,E)\} δ1(B,E)=CargmaxP(C)P(EB,C)ψ1(B,E)=CmaxP(C)P(EB,C)F={P(A),P(B),P(DA,B),P(F=0D,E),ψ1(B,E)}
(2) 递归调用1,消去变量E:
δ 2 ( B , D , F = 0 ) = arg max ⁡ E P ( F = 0 ∣ D , E ) ψ 1 ( B , E ) ψ 2 ( B , D , F = 0 ) = max ⁡ E P ( F = 0 ∣ D , E ) ψ 1 ( B , E ) F = { P ( A ) , P ( B ) , P ( D ∣ A , B ) , ψ 2 ( B , D , F = 0 ) } \delta_2(B,D,F=0)=\argmax_EP(F=0|D,E)\psi_1(B,E)\\ \psi_2(B,D,F=0)=\max_EP(F=0|D,E)\psi_1(B,E)\\ \mathscr F=\{P(A),P(B),P(D|A,B),\psi_2(B,D,F=0)\} δ2(B,D,F=0)=EargmaxP(F=0D,E)ψ1(B,E)ψ2(B,D,F=0)=EmaxP(F=0D,E)ψ1(B,E)F={P(A),P(B),P(DA,B),ψ2(B,D,F=0)}
(3) 递归调用2,消去变量B:
δ 3 ( A , D , F = 0 ) = arg max ⁡ E P ( B ) P ( D ∣ A , B ) ψ 2 ( B , D , F = 0 ) ψ 3 ( A , D , F = 0 ) = max ⁡ E P ( B ) P ( D ∣ A , B ) ψ 2 ( B , D , F = 0 ) F = { P ( A ) , ψ 3 ( A , D , F = 0 ) } \delta_3(A,D,F=0)=\argmax_EP(B)P(D|A,B)\psi_2(B,D,F=0)\\ \psi_3(A,D,F=0)=\max_EP(B)P(D|A,B)\psi_2(B,D,F=0)\\ \mathscr F=\{P(A),\psi_3(A,D,F=0)\} δ3(A,D,F=0)=EargmaxP(B)P(DA,B)ψ2(B,D,F=0)ψ3(A,D,F=0)=EmaxP(B)P(DA,B)ψ2(B,D,F=0)F={P(A),ψ3(A,D,F=0)}
(4) 递归调用3,消去变量D:
δ 4 ( A , F = 0 ) = arg max ⁡ E ψ 3 ( A , D , F = 0 ) ψ 4 ( A , F = 0 ) = max ⁡ E ψ 3 ( A , D , F = 0 ) F = { P ( A ) , ψ 4 ( A , F = 0 ) } \delta_4(A,F=0)=\argmax_E\psi_3(A,D,F=0)\\ \psi_4(A,F=0)=\max_E\psi_3(A,D,F=0)\\ \mathscr F=\{P(A),\psi_4(A,F=0)\} δ4(A,F=0)=Eargmaxψ3(A,D,F=0)ψ4(A,F=0)=Emaxψ3(A,D,F=0)F={P(A),ψ4(A,F=0)}
(5) 递归调用4,消去变量A:因只剩A这一个变量,所以直接进入if判断内,并返回 v = ψ 5 , ( a = δ 5 ) v=\psi_5,(a=\delta_5) v=ψ5,(a=δ5)
δ 5 = arg max ⁡ A P ( A ) ψ 4 ( A , F = 0 ) ψ 5 = max ⁡ A P ( A ) ψ 4 ( A , F = 0 ) \delta_5=\argmax_AP(A)\psi_4(A,F=0)\\ \psi_5=\max_AP(A)\psi_4(A,F=0) δ5=AargmaxP(A)ψ4(A,F=0)ψ5=AmaxP(A)ψ4(A,F=0)
(6) 接着是一连串的递归调用返回:
递归调用3返回 ( v , ( a , d = δ 4 ( a ) ) ) (v,(a,d=\delta_4(a))) (v,(a,d=δ4(a)))
递归调用2返回 ( v , ( a , d , b = δ 3 ( a , d ) (v,(a,d,b=\delta_3(a,d) (v,(a,d,b=δ3(a,d)))
递归调用1返回 ( v , ( a , d , b , e = δ 2 ( b , d ) ) ) (v,(a,d,b,e=\delta_2(b,d))) (v,(a,d,b,e=δ2(b,d)))
最后返回 ( v , ( a , d , b , e , c = δ 1 ( b , e ) ) ) (v,(a,d,b,e,c=\delta_1(b,e))) (v,(a,d,b,e,c=δ1(b,e)))
从而可得:
v = max ⁡ A , B , C , D , E P ( A , B , C , D , E , F = 0 ) ( a , b , c , d , e ) = arg max ⁡ A , B , C , D , E P ( A , B , C , D , E , F = 0 ) v=\max_{A,B,C,D,E}P(A,B,C,D,E,F=0)\\ (a,b,c,d,e)=\argmax_{A,B,C,D,E}P(A,B,C,D,E,F=0) v=A,B,C,D,EmaxP(A,B,C,D,E,F=0)(a,b,c,d,e)=A,B,C,D,EargmaxP(A,B,C,D,E,F=0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值