机器学习笔记之概率图模型——信念传播(基于树结构)
引言
上一节介绍了精确推断中的变量消去法,本节将针对变量消去法的弊端,介绍信念传播。
回顾:变量消去法及弊端
变量消去法(Variable Elimination,VE)是概率图精确推断的基础思想,其本质是通过 乘法对加法的分配律 思想进行简化运算。
已知一个贝叶斯网络表示如下:
上述节点的联合概率分布 P ( i 1 , i 2 , i 3 , i 4 , i 5 ) \mathcal P(i_1,i_2,i_3,i_4,i_5) P(i1,i2,i3,i4,i5)表示如下:
P ( i 1 , i 2 , i 3 , i 4 , i 5 ) = ∏ k = 1 5 P ( i k ∣ i p a ( k ) ) = P ( i 1 ) ⋅ P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 3 ) ⋅ P ( i 5 ∣ i 4 ) \begin{aligned} \mathcal P(i_1,i_2,i_3,i_4,i_5) & = \prod_{k=1}^5 \mathcal P(i_k \mid i_{pa(k)}) \\ & = \mathcal P(i_1) \cdot \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_3 \mid i_2) \cdot \mathcal P(i_4 \mid i_3) \cdot \mathcal P(i_5 \mid i_4) \end{aligned} P(i1,i2,i3,i4,i5)=k=1∏5P(ik∣ipa(k))=P(i1)⋅P(i2∣i1)⋅P(i3∣i2)⋅P(i4∣i3)⋅P(i5∣i4)
以 i 3 , i 5 i_3,i_5 i3,i5两个变量结点示例:
-
变量结点 i 5 i_5 i5的边缘概率分布表示如下:
其中
P i 1 ( i 2 ) \mathcal P_{i_1}(i_2) Pi1(i2)表示通过
i 1 i_1 i1积分从而得到
i 2 i_2 i2的边缘概率结果。
P ( i 5 ) = ∑ i 1 , i 2 , i 3 , i 4 P ( i 1 , i 2 , i 3 , i 4 , i 5 ) = ∑ i 1 , i 2 , i 3 , i 4 P ( i 1 ) ⋅ P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 3 ) ⋅ P ( i 5 ∣ i 4 ) = ∑ i 4 P ( i 5 ∣ i 4 ) ⋅ ∑ i 3 P ( i 4 ∣ i 3 ) ⋅ ∑ i 2 P ( i 3 ∣ i 2 ) ⋅ ∑ i 1 P ( i 2 ∣ i 1 ) ⋅ P ( i 1 ) = ∑ i 4 P ( i 5 ∣ i 4 ) ⋅ ∑ i 3 P ( i 4 ∣ i 3 ) ⋅ ∑ i 2 P ( i 3 ∣ i 2 ) ⋅ P i 1 ( i 2 ) = ⋯ = P i 4 ( i 5 ) \begin{aligned} \mathcal P(i_5) & = \sum_{i_1,i_2,i_3,i_4} \mathcal P(i_1,i_2,i_3,i_4,i_5) \\ & = \sum_{i_1,i_2,i_3,i_4} \mathcal P(i_1) \cdot \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_3 \mid i_2) \cdot \mathcal P(i_4 \mid i_3) \cdot \mathcal P(i_5 \mid i_4) \\ & = \sum_{i_4} \mathcal P(i_5 \mid i_4) \cdot \sum_{i_3} \mathcal P(i_4 \mid i_3) \cdot \sum_{i_2} \mathcal P(i_3 \mid i_2) \cdot \sum_{i_1} \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_1) \\ & = \sum_{i_4} \mathcal P(i_5 \mid i_4) \cdot \sum_{i_3} \mathcal P(i_4 \mid i_3) \cdot \sum_{i_2} \mathcal P(i_3 \mid i_2) \cdot \mathcal P_{i_1}(i_2) \\ & = \cdots \\ & = \mathcal P_{i_4}(i_5) \end{aligned} P(i5)=i1,i2,i3,i4∑P(i1,i2,i3,i4,i5)=i1,i2,i3,i4∑P(i1)⋅P(i2∣i1)⋅P(i3∣i2)⋅P(i4∣i3)⋅P(i5∣i4)=i4∑P(i5∣i4)⋅i3∑P(i4∣i3)⋅i2∑P(i3∣i2)⋅i1∑P(i2∣i1)⋅P(i1)=i4∑P(i5∣i4)⋅i3∑P(i4∣i3)⋅i2∑P(i3∣i2)⋅Pi1(i2)=⋯=Pi4(i5)
在贝叶斯网络中, i 5 i_5 i5节点的计算顺序表示如下(蓝色箭头):
这个操作和隐马尔可夫模型中的前向算法计算顺序相同,均是 从初始时刻出发,向目标时刻方向计算的过程。
不仅计算顺序相同,并且计算的操作也是非常近似的。即每一次迭代过程都需要对状态变量进行积分,从而转移到下一状态。
HMM模型前向算法(Forward Algorithm)迭代过程表示如下:
α t + 1 ( j ) = ∑ i t b j ( o t + 1 ) ⋅ a i j ⋅ α t ( i ) \alpha_{t+1}(j) = \sum_{i_t} b_j(o_{t+1}) \cdot a_{ij} \cdot \alpha_t(i) αt+1(j)=it∑bj(ot+1)⋅aij⋅αt(i)
其中 α t ( i ) \alpha_t(i) αt(i)表示 t t t时刻之前所有观测变量 o 1 , … , o t o_1,\dots,o_t o1,…,ot与 t t t时刻状态变量 i t i_t it的联合概率分布; a i j a_{ij} aij表示状态转移矩阵 A \mathcal A A的对应元素; b j ( o t + 1 ) b_j(o_{t+1}) bj(ot+1)表示发射矩阵 B \mathcal B B的对应元素;
α t ( i ) = P ( o 1 , ⋯ , o t , i t = q i ∣ λ ) λ = ( π , A , B ) \alpha_t(i) = \mathcal P(o_1,\cdots,o_t,i_t = q_i \mid \lambda) \quad \lambda = (\pi,\mathcal A,\mathcal B) αt(i)=P(o1,⋯,ot,it