对期望的处理通常是采取近似方法:转化为对一组样本求和(再平均)。 这就要依分布产生这组样本(采样)。
当贝叶斯图络中含有隐变量时,需要使用EM算法对其进行推断,由此可以基于EM算法构造贝叶斯图络。
E \mathbb{E} E的计算
式(7.74)的计算涉及 E \mathbb{E} E,当推导过程中能消去它就最好,如,第9章高斯混合聚类算法中的EM算法。
当不能消除它时,对期望的处理通常是采取近似方法:转化为对一组样本求和(再平均)。 这就要依分布产生这组样本(采样)。
下面以贝叶斯网络为例。
首先,固定 Θ \Theta Θ为 Θ t {\Theta}^{\,t} Θt(初始时,随机设定一个 Θ 0 {\Theta}^{0} Θ0),让 Z \mathbf{Z} Z变化。
考虑 P ( Z ∣ X , Θ t ) P({\mathbf{Z}\,|\,\mathbf{X},{\Theta}^{\,t}}) P(Z∣X,Θt),它是指在已知 ( X , Θ t ) ({\mathbf{X},{\Theta}^{\,t}}) (X,Θt)且以其为条件下, Z \mathbf{Z} Z的分布。
这时模型参数 Θ t {\Theta}^{\,t} Θt已知(如,贝叶斯网络已知),对于子矩阵 X \mathbf{X} X中的任一行 X i \mathbf{X}_i Xi,以其作为证据 e \boldsymbol{e} e,则可以利用吉布斯采样采出一个样本(参见7.7 贝叶斯网络推断),其预测值 q \boldsymbol{q} q作为子矩阵 Z \mathbf{Z} Z的第 i i i行 Z i \mathbf{Z}_i Zi,这就推断出了观测变量取 X i \mathbf{X}_i Xi值时,对应的隐变量的取值 Z i \mathbf{Z}_i Zi,由此对每行都进行推断,则推断出了整个子矩阵 Z \mathbf{Z} Z。 至此,矩阵 ( X , Z ) (\mathbf{X},\mathbf{Z}) (X,Z)值为已知。
上述吉布斯采样是采出一组样本,形成一个子矩阵 Z \mathbf{Z} Z,若重复该采样过程,则可得到多组样本,即有子矩阵集 { Z l } l = 1 L \{\mathbf{Z}^l\}_{l=1}^L {Zl}l=1L。
然后,固定 Z \mathbf{Z} Z的采样 { Z l } l = 1 L \{\mathbf{Z}^l\}_{l=1}^L {Zl}l=1L,让 Θ \Theta Θ为自变量。
这时,有了采样,式(7.74)的数学期望就可用平均数作为估值
Q
(
Θ
∣
Θ
t
)
≈
1
L
∑
Z
∈
{
Z
l
}
l
=
1
L
L
L
(
Θ
∣
X
,
Z
)
=
1
L
∑
l
=
1
L
L
L
(
Θ
∣
X
,
Z
l
)
\begin{align} Q(\Theta\,|\,{\Theta}^{\,t}) & \thickapprox \frac{1}{L}\mathop{\sum }\limits_{\mathbf{Z}\in \{\mathbf{Z}^l\}_{l=1}^L }\mathrm{LL}(\Theta\,|\,\mathbf{X},\mathbf{Z})\notag \\ & = \frac{1}{L}\mathop{\sum }\limits_{l=1}^L \mathrm{LL}(\Theta\,|\,\mathbf{X},\mathbf{Z}^l) \tag{7.78} \end{align}
Q(Θ∣Θt)≈L1Z∈{Zl}l=1L∑LL(Θ∣X,Z)=L1l=1∑LLL(Θ∣X,Zl)(7.78)
其中,对
L
L
(
Θ
∣
X
,
Z
l
)
\mathrm{LL}(\Theta\,|\,\mathbf{X},\mathbf{Z}^l)
LL(Θ∣X,Zl)常作如下分解:
L
L
(
Θ
∣
X
,
Z
l
)
=
ln
P
(
X
,
Z
l
∣
Θ
)
=
ln
∏
i
=
1
m
P
(
X
i
,
Z
i
l
∣
Θ
)
=
∑
i
=
1
m
ln
P
(
X
i
,
Z
i
l
∣
Θ
)
\begin{align} \mathrm{LL}(\Theta\,|\,\mathbf{X},\mathbf{Z}^l) & =\ln P(\mathbf{X},\mathbf{Z}^l\,|\,\Theta)\notag \\ & =\ln \prod_{i=1}^mP(\mathbf{X}_i,\mathbf{Z}_i^l\,|\,\Theta)\notag \\ & =\sum_{i=1}^m\ln P(\mathbf{X}_i,\mathbf{Z}_i^l\,|\,\Theta) \tag{7.79} \end{align}
LL(Θ∣X,Zl)=lnP(X,Zl∣Θ)=lni=1∏mP(Xi,Zil∣Θ)=i=1∑mlnP(Xi,Zil∣Θ)(7.79)
其中,
P
(
X
i
,
Z
i
l
∣
Θ
)
P(\mathbf{X}_i,\mathbf{Z}_i^l\,|\,\Theta)
P(Xi,Zil∣Θ)即为样本
(
X
i
,
Z
i
l
)
(\mathbf{X}_i,\mathbf{Z}_i^l)
(Xi,Zil)以
Θ
\Theta
Θ为条件的条件概率。
上述过程都是在E步中,至此, Q Q Q中消除了 E \mathbb{E} E, Q Q Q变为以 Θ \Theta Θ为变量的普通函数。 再转入M步中求 Q Q Q的最大值:式(7.79)代入式(7.78),找到对应的 Θ t + 1 {\Theta}^{\,t+1} Θt+1。
再谈贝叶斯图络学习
当贝叶斯图络中含有隐变量时,需要使用EM算法对其进行推断,由此可以基于EM算法构造贝叶斯图络。
(1)子程序1:若已知贝叶斯网络结构 B B B,则依EM算法步骤(7.10 EM算法的使用场景及步骤)可求得该网络的参数 Θ \Theta Θ。
(2)子程序2:在 B = ⟨ G , Θ ⟩ B=\langle G,\Theta \rangle B=⟨G,Θ⟩上计算 s ( B ∣ D ) s(B\,|\,D) s(B∣D)时,用到【西瓜书式(7.29)】,此时, L L ( B ∣ D ) \mathrm{LL}(B\,|\,D) LL(B∣D)由于有隐变量,故应调整为 L L ( Θ ∣ X , z ) \mathrm{LL}(\Theta \,|\,{X},\mathbf{z}) LL(Θ∣X,z),以式(7.74)即【西瓜书式(7.36)】近似,也就是说它在(1)中顺便得到了。
(3)主程序(总框架):对求贝叶斯网络的“两级搜索”进行改造。
- 第一级(不变):同7.6 贝叶斯网结构、贝叶斯图络学习(两级搜索法)中的第一级搜索,找一个网络结构 G G G。
- 第二级(改造):在这个网络结构中,试不同的 π k {\pi }^k πk来调整网络。 采用贪心法:每次调整一条边(增边,减边,调边的方向),形成一个新的贝叶斯网络结构,用上述(子程序1)求其参数 Θ \Theta Θ,用上述(子程序2)计算 B = ⟨ G , Θ ⟩ B=\langle G,\Theta \rangle B=⟨G,Θ⟩的得分 s ( B ∣ D ) s(B\,|\,D) s(B∣D),若降低了得分则保留此次调整,继续调整直到 s ( B ∣ D ) s(B\,|\,D) s(B∣D)不再降低或搜索完为止。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权