[概率图模型]最大后验概率(MAP)变量消除实例

以学生网络为例 :
概率图模型

.

求 MAP

最大-积 变量消除算法的顺序为:
概率图模型变量消除顺序

联合概率

联合概率为: P ( S , I , D , L , G ) = ϕ s ( I , S ) ∗ ϕ I ( I ) ∗ ϕ D ( D ) ∗ ϕ G ( G , D , I ) ∗ ϕ L ( L ) P(S,I,D,L,G)=\phi_s(I,S)*\phi_I(I)*\phi_D(D)*\phi_G(G,D,I)*\phi_L(L) P(S,I,D,L,G)=ϕs(I,S)ϕI(I)ϕD(D)ϕG(G,D,I)ϕL(L)
每个 ϕ \phi ϕ对应于图中节点的条件概率表。

本文的两个约定
  • a. 因子表示为矩阵形式,因子间相乘对应于矩阵相乘,这里的矩阵乘法,是指待消除变量取值相同的元素相乘,如
    ϕ I ( I ) ∗ τ 1 ( I ) = [ 0.7 , 0.3 ] ∗ [ 0.95 , 0.8 ] = [ 0.7 ∗ 0.95 , 0.3 ∗ 0.8 ] = [ 0.665 , 0.024 ] \phi_I(I)*\tau_1(I) =[0.7,0.3]*[0.95,0.8]=[0.7*0.95,0.3*0.8]=[0.665,0.024] ϕI(I)τ1(I)=[0.7,0.3][0.95,0.8]=[0.70.95,0.30.8]=[0.665,0.024]
  • b. m a x x max_x maxx。对于其它变量的各种组合,尝试消除变量x的可能取值,得到的各种组合最大值。
    如对于条件概率表:
    概率图条件概率表
    要消除S,当 S = s 0 S=s^0 S=s0 i 0 i^0 i0 取最大值 0.95,当 S = s 1 S=s^1 S=s1 i 1 i^1 i1 取最大值 0.8
    表示为:
    m a x S ( [ 0.95 , 0.05 0.2 , 0.8 ] ) = [ 0.95 , 0.8 ] max_S(\begin{bmatrix} 0.95,0.05\\ 0.2,0.8\\ \end{bmatrix})=[0.95,0.8] maxS([0.95,0.050.2,0.8])=[0.95,0.8]
消除步骤
    1. 消除 S
      τ 1 ( I ) = m a x S ( ϕ S ( I , S ) ) = m a x S ( [ 0.95 , 0.05 0.2 , 0.8 ] ) = [ 0.95 , 0.8 ] \tau_1(I)=max_S(\phi_S(I,S))=max_S(\begin{bmatrix} 0.95,0.05\\ 0.2,0.8\\ \end{bmatrix})=[0.95,0.8] τ1(I)=maxS(ϕS(I,S))=maxS([0.95,0.050.2,0.8])=[0.95,0.8]
    1. 消除 I
      τ 2 ( G , D ) = m a x I ( ϕ I ( I ) ∗ τ 1 ( I ) ∗ ϕ G ( G , I , D ) ) = [ 0.7 , 0.3 ] ∗ [ 0.95 , 0.8 ] ∗ m a x G D ( [ 0.3 , 0.4 , 0.3 0.05 , 0.25 , 0.7 0.9 , 0.08 , 0.02 0.5 , 0.3 , 0.2 ] ) = [ 0.665 , 0.024 ] ∗ m a x G D ( [ 0.3 , 0.4 , 0.3 0.05 , 0.25 , 0.7 0.9 , 0.08 , 0.02 0.5 , 0.3 , 0.2 ] ) = m a x G D ( [ 0.3 ∗ 0.665 , 0.4 ∗ 0.665 , 0.3 ∗ 0.665 0.05 ∗ 0.665 , 0.25 ∗ 0.665 , 0.7 ∗ 0.665 0.9 ∗ 0.024 , 0.08 ∗ 0.024 , 0.02 ∗ 0.024 0.5 ∗ 0.024 , 0.3 ∗ 0.024 , 0.2 ∗ 0.024 ] ) = [ 0.3 ∗ 0.665 , 0.4 ∗ 0.665 , 0.3 ∗ 0.665 0.05 ∗ 0.665 , 0.25 ∗ 0.665 , 0.7 ∗ 0.665 ] = [ 0.3 , 0.4 , 0.3 0.05 , 0.25 , 0.7 ] ∗ 0.665 \tau_2(G,D)=max_I(\phi_I(I)*\tau_1(I)*\phi_G(G,I,D))=[0.7,0.3]*[0.95,0.8]*max_{GD}(\begin{bmatrix} 0.3,0.4,0.3\\ 0.05,0.25,0.7\\ 0.9,0.08,0.02\\ 0.5,0.3,0.2\\ \end{bmatrix})=[0.665,0.024]*max_{GD}(\begin{bmatrix} 0.3,0.4,0.3\\ 0.05,0.25,0.7\\ 0.9,0.08,0.02\\ 0.5,0.3,0.2\\ \end{bmatrix})=max_{GD}(\begin{bmatrix} 0.3*0.665,0.4*0.665,0.3*0.665\\ 0.05*0.665,0.25*0.665,0.7*0.665\\ 0.9*0.024,0.08*0.024,0.02*0.024\\ 0.5*0.024,0.3*0.024,0.2*0.024\\ \end{bmatrix})=\begin{bmatrix} 0.3*0.665,0.4*0.665,0.3*0.665\\ 0.05*0.665,0.25*0.665,0.7*0.665\\ \end{bmatrix}=\begin{bmatrix} 0.3,0.4,0.3\\ 0.05,0.25,0.7\\ \end{bmatrix}*0.665 τ2(G,D)=maxI(ϕI(I)τ1(I)ϕG(G,I,D))=[0.7,0.3][0.95,0.8]maxGD( 0.3,0.4,0.30.05,0.25,0.70.9,0.08,0.020.5,0.3,0.2 )=[0.665,0.024]maxGD( 0.3,0.4,0.30.05,0.25,0.70.9,0.08,0.020.5,0.3,0.2 )=maxGD( 0.30.665,0.40.665,0.30.6650.050.665,0.250.665,0.70.6650.90.024,0.080.024,0.020.0240.50.024,0.30.024,0.20.024 )=[0.30.665,0.40.665,0.30.6650.050.665,0.250.665,0.70.665]=[0.3,0.4,0.30.05,0.25,0.7]0.665
      这里正好巧了,都是取 I = i 0 I = i^0 I=i0时 G和D的各种联合概率最大,所以又把 0.665提出来,减少运算,因为常数不影响比较。
    1. 消除 D
      τ 3 ( G ) = m a x D ( ϕ D ( D ) ∗ τ 2 ( G , D ) ) = m a x D ( [ 0.6 , 0.4 ] ∗ [ 0.3 , 0.4 , 0.3 0.05 , 0.25 , 0.7 ] ∗ 0.665 ) = m a x D ( [ 0.18 , 0.24 , 0.18 0.02 , 0.1 , 0.28 ] ∗ 0.665 ) = [ 0.18 , 0.24 , 0.28 ] ∗ 0.665 \tau_3(G)=max_D(\phi_D(D)*\tau_2(G,D))=max_D([0.6, 0.4]*\begin{bmatrix} 0.3,0.4,0.3\\ 0.05,0.25,0.7\\ \end{bmatrix}*0.665)=max_D(\begin{bmatrix} 0.18,0.24,0.18\\ 0.02,0.1,0.28\\ \end{bmatrix}*0.665)=[0.18,0.24,0.28]*0.665 τ3(G)=maxD(ϕD(D)τ2(G,D))=maxD([0.6,0.4][0.3,0.4,0.30.05,0.25,0.7]0.665)=maxD([0.18,0.24,0.180.02,0.1,0.28]0.665)=[0.18,0.24,0.28]0.665
    1. 消除 L
      τ 4 ( G ) = m a x L ( ϕ L ( L , G ) ) = m a x L ( [ 0.1 , 0.9 0.4 , 0.6 0.99 , 0.01 ] ) = [ 0.9 , 0.6 , 0.99 ] \tau_4(G)=max_L(\phi_L(L,G))=max_L(\begin{bmatrix} 0.1,0.9\\ 0.4,0.6\\ 0.99,0.01\\ \end{bmatrix})=[0.9,0.6,0.99] τ4(G)=maxL(ϕL(L,G))=maxL( 0.1,0.90.4,0.60.99,0.01 )=[0.9,0.6,0.99]
    1. 消除 G
      τ 5 ( ) = m a x G ( τ 3 ( G ) ∗ τ 4 ( G ) ) = m a x G ( [ 0.18 , 0.24 , 0.28 ] ∗ 0.665 ∗ [ 0.9 , 0.6 , 0.99 ] ) = m a x G ( [ 0.162 , 0.144 , 0.277 ] ∗ 0.665 ) = 0.277 ∗ 0.665 = 0.184 \tau_5()=max_G(\tau3(G)*\tau4(G))=max_G([0.18,0.24,0.28]*0.665*[0.9,0.6,0.99])=max_G([0.162,0.144,0.277]*0.665)=0.277*0.665=0.184 τ5()=maxG(τ3(G)τ4(G))=maxG([0.18,0.24,0.28]0.665[0.9,0.6,0.99])=maxG([0.162,0.144,0.277]0.665)=0.2770.665=0.184

MAP 即 m a x S I D L G P ( S , I , D , L , G ) = 0.184 max_{SIDLG}P(S,I,D,L,G)=0.184 maxSIDLGP(S,I,D,L,G)=0.184

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值