您的位置:首页 > 编程语言 > Go语言

EM算法(Exception Maximization Algorithm)介绍

2017-08-30 11:50 274 查看

算法介绍

本文以隐马尔可夫链的学习问题为例来简单介绍下EM算法。假设隐马尔可夫模型的观测序列已知(记Y为观测变量),需要求得模型的初始状态π,隐状态转移矩阵A和观测状态转移矩阵B,上述参数合记为θ=(π,A,B)。所求参数θ可以表述为最大化似然函数L(θ):

(式1)argmax θ L(θ)=logP(Y|θ)

然而logP<
20000
/span>(Y|θ) 并不能直接求得,我们记P(Y,Z|θ)P(Z|Y,θ i ) =δ i (θ) , 则有δ i (θ i )=P(Y|θ i ) 。

(式2)E Z|Y,θ i [logδ i (θ)]=∑ Z P(Z|Y,θ i )logP(Z,Y|θ)P(Z|Y,θ i )

注意P(Z|Y,θ i )=P(Z,Y|θ i )/P(Y|θ i ) , 上式可写为:

(式3)E Z|Y,θ i [logδ i (θ)]=∑ Z P(Z|Y,θ i )logP(Z,Y|θ)P(Z,Y|θ i ) +∑ Z P(Z|Y,θ i )logP(Y|θ i )

把E Z|Y,θ i [logδ i (θ)] 看作是关于θ的函数,则上式后一部分的值为∑ Z P(Z|Y,θ i )logP(Y|θ i )=logP(Y|θ i )=L(θ i ) 与变量θ无关,可看作是常数。

迭代法求取式1的EM算法可表述为

随机选取初始化的θ=θ 0

Exception步: 求Q(θ,θ i )=E Z|Y,θ i [logδ i (θ)]−L(θ i )=∑ Z P(Z|Y,θ i )logP(Z,Y|θ)P(Z,Y|θ i )

Maximization步:θ i+1 =argmax θ Q(θ,θ i )

不断重复E步和M步直到θ收敛。

收敛性简单证明

由Jensen’s inequality有:

E Z|Y,θ i [logδ i (θ)]≤logE Z|Y,θ i [δ i (θ)]

注意到

logE Z|Y,θ i [δ i (θ)]=log∑ Z P(Z|Y,θ i )P(Z,Y|θ)P(Z|Y,θ i ) =log∑ Z P(Z,Y|θ)=logP(Y|θ)=L(θ)

Q(θ i ,θ i )=E Z|Y,θ i [logδ i (θ i )]−L(θ i )=∑ Z P(Z|Y,θ i )logP(Z,Y|θ i )P(Z,Y|θ i ) =0

则有

L(θ i+1 )=logE Z|Y,θ i [δ i (θ i+1 )]≥E Z|Y,θ i [logδ i (θ i+1 )]=Q(θ i+1 ,θ i )+L(θ i )

而θ i+1 =argmax θ Q(θ,θ i ) , 故Q(θ i+1 ,θ i )≥Q(θ i ,θ i )=0

因此始终有L(θ i+1 )≥L(θ i ) 成立。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: