上一节介绍了推断的本质以及推断的具体方法。本节将介绍精确推断方法中的变量消去法(Variable Elimination,VE)
推断(Inference)的任务本质上是求解变量或变量集合的概率结果。
已知样本集合 X \mathcal X X中的样本包含 p p p个特征。给定联合概率分布 P ( X ) = P ( x 1 , x 2 , ⋯ , x p ) \mathcal P(\mathcal X) = \mathcal P(x_1,x_2,\cdots,x_p) P(X)=P(x1,x2,⋯,xp)条件下:
概率的加法(积分)运算。
例如:隐马尔科夫模型中的‘解码问题’ -> Viterbi算法。
变量消去法是精确推断中最简单的推断方法,从名字中可以看出,该方法目的是消除条件中各种无关变量。
示例:已知一个简单概率图表示如下:
任务:求解节点 i 4 i_4 i4的概率分布 P ( i 4 ) \mathcal P(i_4) P(i4)。
根据概率的加法(积分)公式,使用联合概率分布 P ( i 1 , i 2 , i 3 , i 4 ) \mathcal P(i_1,i_2,i_3,i_4) P(i1,i2,i3,i4)对 P ( i 4 ) \mathcal P(i_4) P(i4)进行表示:
P ( i 4 ) = ∑ i 1 , i 2 , i 3 P ( i 1 , i 2 , i 3 , i 4 ) \mathcal P(i_4) = \sum_{i_1,i_2,i_3}\mathcal P(i_1,i_2,i_3,i_4) P(i4)=i1,i2,i3∑P(i1,i2,i3,i4)
由于该图是有向图,因此直接使用贝叶斯网络的因子分解 对联合概率分布进行表示:
这里定义变量
i 1 , i 2 , i 3 , i 4 i_1,i_2,i_3,i_4 i1,i2,i3,i4均是‘离散型随机变量’。
P ( i 1 , i 2 , i 3 , i 4 ) = ∏ k = 1 p 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 ) \begin{aligned} \mathcal P(i_1,i_2,i_3,i_4) & = \prod_{k=1}^p \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) \end{aligned} P(i1,i2,i3,i4)=k=1∏pP(ik∣ipa(k))=P(i1)⋅P(i2∣i1)⋅P(i3∣i2)⋅P(i4∣i3)
最终,结点 i 4 i_4 i4的概率分布可表示为:
P ( i 4 ) = ∑ i 1 , i 2 , i 3 P ( i 1 ) ⋅ P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 3 ) \mathcal P(i_4) = \sum_{i_1,i_2,i_3}\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) P(i4)=i1,i2,i3∑P(i1)⋅P(i2∣i1)⋅P(i3∣i2)⋅P(i4∣i3)
如果直接对 P ( i 4 ) \mathcal P(i_4) P(i4)进行求解,需要将上式展开。这里为简化运算,定义变量 i 1 , i 2 , i 3 , i 4 i_1,i_2,i_3,i_4 i1,i2,i3,i4均服从伯努利分布:
i 1 , i 2 , i 3 , i 4 ∈ { 0 , 1 } i_1,i_2,i_3,i_4 \in \{0,1\} i1,i2,i3,i4∈{0,1}
展开结果表示如下:
注意:这里只对
i 1 , i 2 , i 3 i_1,i_2,i_3 i1,i2,i3进行积分,因此只有
2 3 = 8 2^3 = 8 23=8项。
P ( i 4 ) = ∑ i 1 , i 2 , i 3 P ( i 1 ) ⋅ P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 3 ) = P ( i 1 = 0 ) ⋅ P ( i 2 = 0 ∣ i 1 = 0 ) ⋅ P ( i 3 = 0 ∣ i 2 = 0 ) ⋅ P ( i 4 ∣ i 3 = 0 ) + ⋯ + P ( i 1 = 1 ) ⋅ P ( i 2 = 1 ∣ i 1 = 1 ) ⋅ P ( i 3 = 1 ∣ i 2 = 1 ) ⋅ P ( i 4 ∣ i 3 = 1 ) \begin{aligned} \mathcal P(i_4) & = \sum_{i_1,i_2,i_3} \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) \\ & = \mathcal P(i_1 = 0) \cdot \mathcal P(i_2 = 0 \mid i_1 = 0) \cdot \mathcal P(i_3 = 0 \mid i_2 = 0) \cdot \mathcal P(i_4 \mid i_3 = 0) + \cdots + \\ & \mathcal P(i_1 = 1) \cdot \mathcal P(i_2 = 1 \mid i_1 = 1) \cdot \mathcal P(i_3 = 1 \mid i_2 = 1) \cdot \mathcal P(i_4 \mid i_3 = 1) \end{aligned} P(i4)=i1,i2,i3∑P(i1)⋅P(i2∣i1)⋅P(i3∣i2)⋅P(i4∣i3)=P(i1=0)⋅P(i2=0∣i1=0)⋅P(i3=0∣i2=0)⋅P(i4∣i3=0)+⋯+P(i1=1)⋅P(i2=1∣i1=1)⋅P(i3=1∣i2=1)⋅P(i4∣i3=1)
观察该结果,我们发现如下问题:
观察概率加法公式中的项数,即便是最简单的顺序结构,并且各变量均是最简单的伯努利分布,单每增加一个节点,项数依然会指数倍地增长。
很明显,真实情况中,概率图的结构只会更加复杂。因此,该算法的复杂度不小于 K p \mathcal K^p Kp。
其中
K \mathcal K K表示基于节点分布的综合结果,可能每个节点的分布各不相同;
p p p表示节点个数。
变量消除法的思想是:在图结构中,和某节点相关联的节点数量是有限的。在积分过程中,只将相关联的节点进行积分运算,不相关的节点,对应的因子直接视为常数即可。
继续观察 P ( i 4 ) \mathcal P(i_4) P(i4)的因子分解:
P ( i 4 ) = ∑ i 1 , i 2 , i 3 P ( i 1 ) ⋅ P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 3 ) \mathcal P(i_4) = \sum_{i_1,i_2,i_3} \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) P(i4)=i1,i2,i3∑P(i1)⋅P(i2∣i1)⋅P(i3∣i2)⋅P(i4∣i3)
上述4项因子结果中,和结点 i 1 i_1 i1无关的项有: P ( i 3 ∣ i 2 ) , P ( i 4 ∣ i 3 ) \mathcal P(i_3 \mid i_2),\mathcal P(i_4 \mid i_3) P(i3∣i2),P(i4∣i3)。
将因子分解表示为如下形式:
P ( i 4 ) = ∑ i 2 , i 3 P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 3 ) ⋅ ∑ i 1 P ( i 1 ) ⋅ P ( i 2 ∣ i 1 ) \begin{aligned} \mathcal P(i_4) & = \sum_{i_2,i_3} \mathcal P(i_3 \mid i_2) \cdot \mathcal P(i_4 \mid i_3) \cdot \sum_{i_1} \mathcal P(i_1) \cdot \mathcal P(i_2 \mid i_1) \end{aligned} P(i4)=i2,i3∑P(i3∣i2)⋅P(i4∣i3)⋅i1∑P(i1)⋅P(i2∣i1)
观察后项 ∑ i 1 P ( i 1 ) ⋅ P ( i 2 ∣ i 1 ) \sum_{i_1} \mathcal P(i_1) \cdot \mathcal P(i_2 \mid i_1) ∑i1P(i1)⋅P(i2∣i1)可表示如下:
‘概率密度积分’
∑ i 1 P ( i 1 ) ⋅ P ( i 2 ∣ i 1 ) = ∑ i 1 P ( i 1 , i 2 ) = P i 1 ( i 2 ) \begin{aligned} \sum_{i_1} \mathcal P(i_1) \cdot \mathcal P(i_2 \mid i_1) = \sum_{i_1} \mathcal P(i_1,i_2) = \mathcal P_{i_1}(i_2) \end{aligned} i1∑P(i1)⋅P(i2∣i1)=i1∑P(i1,i2)=Pi1(i2)
这里将上述积分结果定义一个符号: P i 1 ( i 2 ) \mathcal P_{i_1}(i_2) Pi1(i2),表示 i 2 i_2 i2的边缘概率 P i 1 ( i 2 ) \mathcal P_{i_1}(i_2) Pi1(i2)是通过对 i 1 i_1 i1进行积分得到的结果。
因此, P ( i 4 ) \mathcal P(i_4) P(i4)可表示如下:
P ( i 4 ) = ∑ i 2 , i 3 P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 3 ) ⋅ P i 1 ( i 2 ) = ∑ i 3 P ( i 4 ∣ i 3 ) ⋅ ∑ i 2 P ( i 3 ∣ i 2 ) ⋅ P i 1 ( i 2 ) \begin{aligned} \mathcal P(i_4) & = \sum_{i_2,i_3} \mathcal P(i_3 \mid i_2) \cdot \mathcal P(i_4 \mid i_3) \cdot \mathcal P_{i_1}(i_2) \\ & = \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) \end{aligned} P(i4)=i2,i3∑P(i3∣i2)⋅P(i4∣i3)⋅Pi1(i2)=i3∑P(i4∣i3)⋅i2∑P(i3∣i2)⋅Pi1(i2)
变量消除法的核心:继续观察后项: ∑ i 2 P ( i 3 ∣ i 2 ) ⋅ P i 1 ( i 2 ) \sum_{i_2} \mathcal P(i_3 \mid i_2) \cdot \mathcal P_{i_1}(i_2) ∑i2P(i3∣i2)⋅Pi1(i2),和上面的化简相同,可以继续使用概率密度积分 对该式进行化简:
∑ i 2 P ( i 3 ∣ i 2 ) ⋅ P i 1 ( i 2 ) = ∑ i 2 P ( i 2 , i 3 ) = P i 2 ( i 3 ) \sum_{i_2} \mathcal P(i_3 \mid i_2) \cdot \mathcal P_{i_1}(i_2) = \sum_{i_2} \mathcal P(i_2,i_3) = \mathcal P_{i_2}(i_3) i2∑P(i3∣i2)⋅Pi1(i2)=i2∑P(i2,i3)=Pi2(i3)
注意:这里
i 2 i_2 i2的边缘概率
P i 1 ( i 2 ) \mathcal P_{i_1}(i_2) Pi1(i2)是子集合
{ i 1 , i 2 } \{i_1,i_2\} {i1,i2}中的边缘概率。也就是说,
i 2 i_2 i2的边缘概率并没有对其他节点进行积分。但是结果是'完全相同'的。是因为在上述示例概率图中,只有结点
i 1 i_1 i1指向了
i 2 i_2 i2,其他节点与
i 2 i_2 i2的边缘概率无关。即:
P i 1 ( i 2 ) = ∑ i 1 P ( i 1 , i 2 ) = ∑ i 1 , i 3 , i 4 P ( i 1 , i 2 , i 3 , i 4 ) = P ( i 2 ) \mathcal P_{i_1}(i_2) = \sum_{i_1} \mathcal P(i_1,i_2) = \sum_{i_1,i_3,i_4} \mathcal P(i_1,i_2,i_3,i_4) = \mathcal P(i_2) Pi1(i2)=i1∑P(i1,i2)=i1,i3,i4∑P(i1,i2,i3,i4)=P(i2)
同理,最终可以将 P ( i 4 ) \mathcal P(i_4) P(i4)化简为:
P ( i 4 ) = ∑ i 3 P ( i 4 ∣ i 3 ) ⋅ P i 2 ( i 3 ) = P i 3 ( i 4 ) \mathcal P(i_4) = \sum_{i_3} \mathcal P(i_4 \mid i_3) \cdot \mathcal P_{i_2}(i_3) = \mathcal P_{i_3}(i_4) P(i4)=i3∑P(i4∣i3)⋅Pi2(i3)=Pi3(i4)
将变量消去法与因子分解方法进行对比:
{ P ( i 4 ) = ∑ i 1 , i 2 , i 3 P ( i 1 ) ⋅ P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 3 ) P ( 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 ) \begin{cases} \mathcal P(i_4) = \sum_{i_1,i_2,i_3} \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) \\ \mathcal P(i_4) = \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) \end{cases} {P(i4)=∑i1,i2,i3P(i1)⋅P(i2∣i1)⋅P(i3∣i2)⋅P(i4∣i3)P(i4)=∑i3P(i4∣i3)⋅∑i2P(i3∣i2)⋅∑i1P(i2∣i1)⋅P(i1)
发现变量消去法每次将求积和求和的运算限制在局部范围内,仅和部分变量相关,从而简化运算。
从运算过程角度,即‘乘法对加法的分配律’。
变量消去法并不是仅基于贝叶斯网络(有向图),马尔可夫随机场(无向图)同样可以使用该方法进行运算。不同于有向图节点之间显式的因果关系,无向图可以通过势函数来描述节点之间的关联关系:
某无向图模型表示如下:
目标:求解结点 i 4 i_4 i4的边缘概率结果 P ( i 4 ) \mathcal P(i_4) P(i4)。
由于最大团
{ i 1 , i 2 , i 3 } \{i_1,i_2,i_3\} {i1,i2,i3}包含3个变量,因此可以‘依次进行积分’(个人理解)。
公式中出现的
m 1 → 23 ( i 2 , i 3 ) m_{1 \to 23}(i_2,i_3) m1→23(i2,i3)表示将
i 1 i_1 i1积分掉后,关于变量
i 2 , i 3 i_2,i_3 i2,i3的函数。
上述基于无向图的变量消去法,其变量的消去顺序为: i 0 , i 1 , i 2 , i 3 i_0,i_1,i_2,i_3 i0,i1,i2,i3,但在真实情况中,使用变量消去法,并非只有一种消去顺序。
例如贝叶斯网络,我们通常使用拓扑排序的方式选择消去顺序;由于图中 入度为零的变量节点 可能不止一个,并且拓扑排序过程中路径并非只有一条。因此理论上可以有多种顺序对变量节点进行消除;
那么若干种消除顺序,总会存在代价最小的一条,但是想要找到这条代价最小的顺序,这个行为本身的代价是极高的。会涉及 NP-Hard问题:如果想要找到代价最小的顺序,最坏情况下需要对每一个路径进行遍历,这个代价是极高的。
假设需要计算多个节点变量的边缘概率,如上图中,求解完 P ( i 4 ) \mathcal P(i_4) P(i4)后又需要求 P ( i 3 ) \mathcal P(i_3) P(i3),则需要执行 { i 0 , i 1 , i 2 } \{i_0,i_1,i_2\} {i0,i1,i2} 的顺序重头计算,这种操作的计算资源消耗是极高的。
已知贝叶斯网络描述如下:
很明显,这是一个有向无环图,任务目标依旧是求解变量节点 i 4 i_4 i4的边缘概率分布 P ( i 4 ) \mathcal P(i_4) P(i4):
首先,该图的因子分解表示如下:
P ( i 0 , i 1 , i 2 , i 3 , i 4 ) = ∏ i = 0 4 P ( i k ∣ i p a ( k ) ) = P ( i 0 ) ⋅ P ( i 1 ∣ i 0 ) ⋅ P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 1 , i 2 ) ⋅ P ( i 4 ∣ i 3 ) \begin{aligned} \mathcal P(i_0,i_1,i_2,i_3,i_4) & = \prod_{i=0}^4 \mathcal P(i_k \mid i_{pa(k)}) \\ & = \mathcal P(i_0) \cdot \mathcal P(i_1 \mid i_0) \cdot \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_3 \mid i_1,i_2) \cdot \mathcal P(i_4 \mid i_3) \end{aligned} P(i0,i1,i2,i3,i4)=i=0∏4P(ik∣ipa(k))=P(i0)⋅P(i1∣i0)⋅P(i2∣i1)⋅P(i3∣i1,i2)⋅P(i4∣i3)
因而, P ( i 4 ) \mathcal P(i_4) P(i4)表示如下:
P ( i 4 ) = ∑ i 0 , i 1 , i 2 , i 3 P ( i 0 , i 1 , i 2 , i 3 , i 4 ) = ∑ i 0 , i 1 , i 2 , i 3 P ( i 0 ) ⋅ P ( i 1 ∣ i 0 ) ⋅ P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 1 , i 2 ) ⋅ P ( i 4 ∣ i 3 ) \mathcal P(i_4) = \sum_{i_0,i_1,i_2,i_3} \mathcal P(i_0,i_1,i_2,i_3,i_4) = \sum_{i_0,i_1,i_2,i_3} \mathcal P(i_0) \cdot \mathcal P(i_1 \mid i_0) \cdot \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_3 \mid i_1,i_2) \cdot \mathcal P(i_4 \mid i_3) P(i4)=i0,i1,i2,i3∑P(i0,i1,i2,i3,i4)=i0,i1,i2,i3∑P(i0)⋅P(i1∣i0)⋅P(i2∣i1)⋅P(i3∣i1,i2)⋅P(i4∣i3)
第一步:消去变量 i 0 i_0 i0:
该步骤没有疑问,正常消除;
P i 0 ( i 1 ) = ∑ i 0 P ( i 0 ) ⋅ P ( i 1 ∣ i 0 ) P ( i 4 ) = ∑ i 1 , i 2 , i 3 P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 1 , i 2 ) ⋅ P ( i 4 ∣ i 3 ) ⋅ P i 0 ( i 1 ) \mathcal P_{i_0}(i_1) = \sum_{i_0} \mathcal P(i_0) \cdot \mathcal P(i_1 \mid i_0) \\ \mathcal P(i_4) = \sum_{i_1,i_2,i_3} \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_3\mid i_1,i_2) \cdot \mathcal P(i_4 \mid i_3) \cdot \mathcal P_{i_0}(i_1) Pi0(i1)=i0∑P(i0)⋅P(i1∣i0)P(i4)=i1,i2,i3∑P(i2∣i1)⋅P(i3∣i1,i2)⋅P(i4∣i3)⋅Pi0(i1)
第二步:消去变量 i 1 i_1 i1:
仔细观察该部分:
在消去 i 1 i_1 i1的过程中,与 i 1 i_1 i1相关的项有: P ( i 3 ∣ i 1 , i 2 ) , P ( i 2 ∣ i 1 ) , P i 0 ( i 1 ) \mathcal P(i_3 \mid i_1,i_2),\mathcal P(i_2 \mid i_1),\mathcal P_{i_0}(i_1) P(i3∣i1,i2),P(i2∣i1),Pi0(i1),基于 V \mathcal V V型结构,将 P ( i 3 ∣ i 1 , i 2 ) \mathcal P(i_3 \mid i_1,i_2) P(i3∣i1,i2)展开,并保留含 i 1 i_1 i1的项:
i 3 i_3 i3未知的条件下,
i 1 ⊥ i 2 ∣ i 3 → P ( i 3 ∣ i 1 , i 2 ) = P ( i 3 ∣ i 1 ) ⋅ P ( i 3 ∣ i 2 ) i_1 \perp i_2 \mid i_3 \to \mathcal P(i_3 \mid i_1,i_2) = \mathcal P(i_3 \mid i_1) \cdot \mathcal P(i_3 \mid i_2) i1⊥i2∣i3→P(i3∣i1,i2)=P(i3∣i1)⋅P(i3∣i2)。
P ( i 4 ) = ∑ i 2 , i 3 P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 3 ) ⋅ ∑ i 1 P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 1 ) ⋅ P i 0 ( i 1 ) \mathcal P(i_4) = \sum_{i_2,i_3} \mathcal P(i_3 \mid i_2) \cdot \mathcal P(i_4 \mid i_3) \cdot \sum_{i_1} \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_3 \mid i_1) \cdot \mathcal P_{i_0}(i_1) P(i4)=i2,i3∑P(i3∣i2)⋅P(i4∣i3)⋅i1∑P(i2∣i1)⋅P(i3∣i1)⋅Pi0(i1)
先观察后半部分的 i 1 i_1 i1积分项,由于同父结构,可以将 i 1 i_1 i1积分项表示为如下形式:
∑ i 1 P ( i 2 , i 3 ∣ i 1 ) ⋅ P i 0 ( i 1 ) = P i 1 ( i 2 , i 3 ) P ( i 4 ) = ∑ i 2 , i 3 P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 3 ) ⋅ P i 1 ( i 2 , i 3 ) \sum_{i_1} \mathcal P(i_2,i_3 \mid i_1) \cdot \mathcal P_{i_0}(i_1) = \mathcal P_{i_1}(i_2,i_3) \\ \mathcal P(i_4) = \sum_{i_2,i_3} \mathcal P(i_3 \mid i_2) \cdot \mathcal P(i_4 \mid i_3) \cdot \mathcal P_{i_1}(i_2,i_3) i1∑P(i2,i3∣i1)⋅Pi0(i1)=Pi1(i2,i3)P(i4)=i2,i3∑P(i3∣i2)⋅P(i4∣i3)⋅Pi1(i2,i3)
问题所在:观察前半部分的 i 2 , i 3 i_2,i_3 i2,i3积分项,基于前面的 P i 1 ( i 2 , i 3 ) \mathcal P_{i_1}(i_2,i_3) Pi1(i2,i3),我们更希望凑出 P ( i 4 ∣ i 2 , i 3 ) \mathcal P(i_4 \mid i_2,i_3) P(i4∣i2,i3),从而得到:
P ( i 4 ) = ∑ i 2 , i 3 P ( i 4 ∣ i 2 , i 3 ) ⋅ P i 1 ( i 2 , i 3 ) = P i 2 , i 3 ( i 4 ) \begin{aligned} \mathcal P(i_4) & = \sum_{i_2,i_3} \mathcal P(i_4 \mid i_2,i_3) \cdot \mathcal P_{i_1}(i_2,i_3) \\ & = \mathcal P_{i_2,i_3}(i_4) \end{aligned} P(i4)=i2,i3∑P(i4∣i2,i3)⋅Pi1(i2,i3)=Pi2,i3(i4)
但实际上,并没有办法证明:
P ( i 4 ∣ i 2 , i 3 ) = P ( i 4 ∣ i 3 ) ⋅ P ( i 3 ∣ i 2 ) \mathcal P(i_4 \mid i_2,i_3) = \mathcal P(i_4 \mid i_3) \cdot \mathcal P(i_3 \mid i_2) P(i4∣i2,i3)=P(i4∣i3)⋅P(i3∣i2)
欢迎小伙伴们一起讨论。指出错误,有正确的推导一起分享,非常感谢。
下一节将介绍信念传播(Belief Propagation,BP)。
相关参考:
机器学习-周志华著
机器学习-概率图模型8-推断Inference-Variable Elimination