700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > HMM隐马尔可夫模型解决的问题及推导过程

HMM隐马尔可夫模型解决的问题及推导过程

时间:2023-10-30 20:16:56

相关推荐

HMM隐马尔可夫模型解决的问题及推导过程

文章目录

前言一、模型参数及意义:二、两个假设:三、三个问题:四、三个问题的对应求解过程:① Evaluation评估问题② Decoding解码问题:③ Learning学习问题:

前言

首先HMM解决的问题是基于序列的。

其中:

状态序列 I=i1,i2,...,iTI=i_1,i_2,...,i_TI=i1​,i2​,...,iT​ ,满足 iT∈Qi_T \in QiT​∈Q ,QQQ 是状态序列的可能取值集合 Q={q1,q2,...,qN}Q=\{q_1,q_2,...,q_N\}Q={q1​,q2​,...,qN​} ;观测序列 O=o1,o2,...,oTO=o_1,o_2,...,o_TO=o1​,o2​,...,oT​ ,满足 oT∈Vo_T \in VoT​∈V , VVV 是观测序列的可能取值集合 V={v1,v2,...,vM}V=\{v_1,v_2,...,v_M\}V={v1​,v2​,...,vM​} 。

要点:

一、模型参数及意义:

一个HMM模型,可以由隐藏状态初始概率分布 π\piπ 、状态转移概率矩阵 AAA 和观测状态概率矩阵 BBB 决定

可由如下三元组表示:

λ=(π,A,B)\lambda = (\pi,\;A,\;B) λ=(π,A,B)

其中:

π\piπ :表示初始概率分布;AAA :转移矩阵 [aij][a_{ij}][aij​] , aij=P(it+1=qj∣it=qi)a_{ij}=P(i_{t+1}=q_j|i_t=q_i)aij​=P(it+1​=qj​∣it​=qi​) ,表示隐藏状态从 ttt 时刻的 qiq_iqi​ 转变为 t+1t+1t+1 时刻的 qjq_jqj​ 时的概率;BBB :发射矩阵 [bj(k)][b_j(k)][bj​(k)] , bj(k)=P(ot=vk∣it=qj)b_j(k)=P(o_t=v_k|i_t=q_j)bj​(k)=P(ot​=vk​∣it​=qj​) ,表示时刻 ttt 时的隐藏状态为 qjq_jqj​ 时产生观测值为 vkv_kvk​ 的概率。

二、两个假设:

齐次Markov假设:任意时刻的隐藏状态只依赖于它前一时刻的隐藏状态。

即:

P(it+1∣i1,i2,...,it,o1,o2,...,ot)=P(it+1∣it)P(i_{t+1}|i_1,i_2,...,i_t,\;o_1,o_2,...,o_t)=P(i_{t+1}|i_t) P(it+1​∣i1​,i2​,...,it​,o1​,o2​,...,ot​)=P(it+1​∣it​)

观测独立性假设:任意时刻的观测状态只依赖于当前时刻的隐藏状态。

即:

P(ot∣i1,i2,...,it,o1,o2,...,ot)=P(ot∣it)P(o_t|i_1,i_2,...,i_t,\;o_1,o_2,...,o_t)=P(o_t|i_t) P(ot​∣i1​,i2​,...,it​,o1​,o2​,...,ot​)=P(ot​∣it​)

三、三个问题:

HMM解决的三个经典的问题:

① Evaluation评估问题:已知HMM模型 λ=(π,A,B)\lambda = (\pi,\;A,\;B)λ=(π,A,B) ,求给定观测序列 OOO 出现的可能性大小 P(O∣λ)P(O|\lambda)P(O∣λ) ,可使用(Forward-Backword)前向后向算法进行求解;

② Decoding解码问题:已知HMM模型 λ=(π,A,B)\lambda = (\pi,\;A,\;B)λ=(π,A,B) 和观测序列 OOO ,求解隐藏状态序列 I^\hat{I}I^ ,使得当前条件下出现该隐藏状态序列的可能性最大,即:

I^=argmax⏟IP(I∣O,λ)\hat{I}=\underbrace{arg\;max}_I\;P(I|O,\lambda) I^=Iargmax​​P(I∣O,λ)

可使用(Viterbi)维特比算法进行求解;

③ Learning学习问题:已知观测序列 OOO ,估计模型 λ=(π,A,B)\lambda = (\pi,\;A,\;B)λ=(π,A,B) 的参数,使得产生该观测序列的可能性最大,即:

λMLE=argmax⏟λP(O∣λ)\lambda_{MLE} = \underbrace{arg\;max}_{\lambda}\;P(O|\lambda) λMLE​=λargmax​​P(O∣λ)

可使用(Baum-Welch)鲍姆-韦尔奇算法进行求解。

四、三个问题的对应求解过程:

① Evaluation评估问题

已知HMM模型 λ=(π,A,B)\lambda = (\pi,\;A,\;B)λ=(π,A,B) ,求给定观测序列 OOO 出现的可能性大小 P(O∣λ)P(O|\lambda)P(O∣λ) :

暴力求解法

P(O∣λ)=∑IP(I,O∣λ)=∑IP(O∣I,λ)⋅P(I∣λ)P(O|\lambda) = \sum_I P(I,O|\lambda) = \sum_I P(O|I,\lambda)\cdot P(I|\lambda) P(O∣λ)=I∑​P(I,O∣λ)=I∑​P(O∣I,λ)⋅P(I∣λ)

而:

P(I∣λ)=P(i1,i2,...,iT∣λ)=P(iT∣i1,i2,...,λ)⋅P(i1,i2,...,iT−1∣λ)P(I|\lambda)=P(i_1,i_2,...,i_T|\lambda)=P(i_T|i_1,i_2,...,\lambda)\cdot P(i_1,i_2,...,i_{T-1}|\lambda) P(I∣λ)=P(i1​,i2​,...,iT​∣λ)=P(iT​∣i1​,i2​,...,λ)⋅P(i1​,i2​,...,iT−1​∣λ)

=P(iT∣iT−1)⋅P(i1,i2,...,iT−1∣λ)= P(i_T|i_{T-1})\cdot P(i_1,i_2,...,i_{T-1}|\lambda) =P(iT​∣iT−1​)⋅P(i1​,i2​,...,iT−1​∣λ)

=aT−1,T⋅P(i1,i2,...,iT−1∣λ)= a_{T-1,T}\cdot P(i_1,i_2,...,i_{T-1}|\lambda) =aT−1,T​⋅P(i1​,i2​,...,iT−1​∣λ)

=aT−1,T⋅aT−2,T−1⋅P(i1,i2,...,iT−2∣λ)=a_{T-1,T}\cdot a_{T-2,T-1}\cdot P(i_1,i_2,...,i_{T-2}|\lambda) =aT−1,T​⋅aT−2,T−1​⋅P(i1​,i2​,...,iT−2​∣λ)

=π(ai1)⋅∏t=2Tait−1,it= \pi(a_{i_1})\cdot \prod_{t=2}^T a_{i_{t-1},i_t} =π(ai1​​)⋅t=2∏T​ait−1​,it​​

P(O∣I,λ)=∏t=1Tbit(ot)P(O|I,\lambda)=\prod_{t=1}^T b_{i_t}(o_t) P(O∣I,λ)=t=1∏T​bit​​(ot​)

所以:

P(O∣λ)=∑Iπ(ai1)⋅∏t=2Tait−1,it∏t=1Tbit(ot)P(O|\lambda)=\sum_I \pi(a_{i_1})\cdot \prod_{t=2}^T a_{i_{t-1},i_t} \prod_{t=1}^T b_{i_t}(o_t) P(O∣λ)=I∑​π(ai1​​)⋅t=2∏T​ait−1​,it​​t=1∏T​bit​​(ot​)

=∑i1∑i2⋯∑iT⏞O(NT)π(ai1)⋅∏t=2Tait−1,it∏t=1Tbit(ot)= \overbrace{\sum_{i_1} \sum_{i_2} \cdots \sum_{i_T}}^{O(N^T)} \pi(a_{i_1})\cdot \prod_{t=2}^T a_{i_{t-1},i_t} \prod_{t=1}^T b_{i_t}(o_t) =i1​∑​i2​∑​⋯iT​∑​​O(NT)​π(ai1​​)⋅t=2∏T​ait−1​,it​​t=1∏T​bit​​(ot​)

看的出来时间复杂度很高,为 O(TNT)O(TN^T)O(TNT) 。

(Forword)前向算法

我们将 ttt 时刻的观测序列 O=o1,o2,...,otO=o_1,o_2,...,o_tO=o1​,o2​,...,ot​ 与隐藏状态 iti_tit​ 的联合概率记为 αt(i)\alpha_t(i)αt​(i) :

即:

αt(i)=P(o1,o2,...,ot,it=qi∣λ)\alpha_t(i) = P(o_1,o_2,...,o_t,\;i_t=q_i|\lambda) αt​(i)=P(o1​,o2​,...,ot​,it​=qi​∣λ)

αT(i)=P(O,it=qi∣λ)\alpha_T(i) = P(O,\;i_t=q_i|\lambda) αT​(i)=P(O,it​=qi​∣λ)

而:

P(O∣λ)=∑i=1NP(O,it=qi∣λ)=∑i=1NαT(i)P(O|\lambda)= \sum_{i=1}^N P(O,\;i_t=q_i|\lambda)=\sum_{i=1}^N \alpha_T(i) P(O∣λ)=i=1∑N​P(O,it​=qi​∣λ)=i=1∑N​αT​(i)

所以,知道了 αT(i)\alpha_T(i)αT​(i) 的递推公式,P(O∣λ)P(O|\lambda)P(O∣λ) 便可求解得出。

αt+1(j)=P(o1,o2,...,ot+1,it+1=qj∣λ)\alpha_{t+1}(j)=P(o_1,o_2,...,o_{t+1},\;i_{t+1}=q_j|\lambda) αt+1​(j)=P(o1​,o2​,...,ot+1​,it+1​=qj​∣λ)

=∑i=1NP(o1,o2,...,ot+1,it+1=qj,it=qi∣λ)=\sum_{i=1}^N P(o_1,o_2,...,o_{t+1},\;i_{t+1}=q_j,\;i_t=q_i|\lambda) =i=1∑N​P(o1​,o2​,...,ot+1​,it+1​=qj​,it​=qi​∣λ)

=P(ot+1∣o1,o2,...,ot,it=qi,it+1=qj,λ)⋅P(o1,o2,...,ot,it+1=qj,it=qi∣λ)=P(o_{t+1}|o_1,o_2,...,o_t,\;i_t=q_i,\;i_{t+1}=q_j,\;\lambda)\cdot P(o_1,o_2,...,o_t,\;i_{t+1}=q_j,\;i_t=q_i|\lambda) =P(ot+1​∣o1​,o2​,...,ot​,it​=qi​,it+1​=qj​,λ)⋅P(o1​,o2​,...,ot​,it+1​=qj​,it​=qi​∣λ)

=∑i=1NP(ot+1∣it+1=qj)⋅P(o1,o2,...,ot,it+1=qj,it=qi∣λ)=\sum_{i=1}^N P(o_{t+1}|i_{t+1}=q_j)\cdot P(o_1,o_2,...,o_t,\;i_{t+1}=q_j,\;i_t=q_i|\lambda) =i=1∑N​P(ot+1​∣it+1​=qj​)⋅P(o1​,o2​,...,ot​,it+1​=qj​,it​=qi​∣λ)

=∑i=1NP(ot+1∣it+1=qj)⋅P(it+1=qj∣o1,o2,...,ot,it=qi,λ)⋅P(o1,o2,...,ot,it=qi∣λ)=\sum_{i=1}^N P(o_{t+1}|i_{t+1}=q_j)\cdot P(i_{t+1}=q_j|o_1,o_2,...,o_t,\;i_t=q_i,\;\lambda)\cdot P(o_1,o_2,...,o_t,\;i_t=q_i|\lambda) =i=1∑N​P(ot+1​∣it+1​=qj​)⋅P(it+1​=qj​∣o1​,o2​,...,ot​,it​=qi​,λ)⋅P(o1​,o2​,...,ot​,it​=qi​∣λ)

=∑i=1NP(ot+1∣it+1=qj)⋅P(it+1=qj∣it=qi)⋅P(o1,o2,...,ot,it=qi∣λ)=\sum_{i=1}^N P(o_{t+1}|i_{t+1}=q_j)\cdot P(i_{t+1}=q_j|i_t=q_i)\cdot P(o_1,o_2,...,o_t,\;i_t=q_i|\lambda) =i=1∑N​P(ot+1​∣it+1​=qj​)⋅P(it+1​=qj​∣it​=qi​)⋅P(o1​,o2​,...,ot​,it​=qi​∣λ)

=∑i=1Nbj(ot+1)⋅aij⋅αt(i)=\sum_{i=1}^N b_j(o_{t+1})\cdot a_{ij}\cdot \alpha_t(i) =i=1∑N​bj​(ot+1​)⋅aij​⋅αt​(i)

(Backword)后向算法

我们把在时刻 ttt 隐藏状态为 qiq_iqi​ 时产生观测序列 O=ot+1,ot+2,...,oTO=o_{t+1},o_{t+2},...,o_TO=ot+1​,ot+2​,...,oT​ 的条件概率记为 βt(i)=P(ot+1,ot+2,...,oT∣it=qi,λ)\beta_t(i)=P(o_{t+1},o_{t+2},...,o_T|i_t=q_i,\;\lambda)βt​(i)=P(ot+1​,ot+2​,...,oT​∣it​=qi​,λ) 。

那么根据定义可知:β1(i)=P(o2,o3,...,oT∣i1=qi,λ)\beta_1(i)=P(o_2,o_3,...,o_T|i_1=q_i,\;\lambda)β1​(i)=P(o2​,o3​,...,oT​∣i1​=qi​,λ) 。

此时:

P(O∣λ)=P(o1,o2,...,oT∣λ)P(O|\lambda)=P(o_1,o_2,...,o_T|\lambda) P(O∣λ)=P(o1​,o2​,...,oT​∣λ)

=∑i=1NP(o1,o2,...,oT,i1=qi∣λ)= \sum_{i=1}^N P(o_1,o_2,...,o_T,\;i_1=q_i|\lambda) =i=1∑N​P(o1​,o2​,...,oT​,i1​=qi​∣λ)

=∑i=1NP(o1,o2,...,oT∣i1=qi,λ)⋅P(i1=qi∣λ)=\sum_{i=1}^N P(o_1,o_2,...,o_T|i_1=q_i,\;\lambda)\cdot P(i_1=q_i|\lambda) =i=1∑N​P(o1​,o2​,...,oT​∣i1​=qi​,λ)⋅P(i1​=qi​∣λ)

=∑i=1NP(o1∣o2,...,oT,i1=qi,λ)⋅P(o2,...,oT∣i1=qi,λ)⋅πi= \sum_{i=1}^N P(o_1|o_2,...,o_T,\;i_1=q_i,\;\lambda)\cdot P(o_2,...,o_T|i_1=q_i,\;\lambda)\cdot \pi_i =i=1∑N​P(o1​∣o2​,...,oT​,i1​=qi​,λ)⋅P(o2​,...,oT​∣i1​=qi​,λ)⋅πi​

=∑i=1NP(o1∣i1=qi)⋅β1(i)⋅πi=\sum_{i=1}^N P(o_1|i_1=q_i)\cdot \beta_1(i) \cdot \pi_i =i=1∑N​P(o1​∣i1​=qi​)⋅β1​(i)⋅πi​

=∑i=1Nπibi(o1)β1(i)= \sum_{i=1}^N \pi_i b_i(o_1)\beta_1(i) =i=1∑N​πi​bi​(o1​)β1​(i)

​ 所以求出了 β1(i)\beta_1(i)β1​(i) ,则相应的 P(O∣λ)P(O|\lambda)P(O∣λ) 也就求出来了。

​ 而:

βt(i)=P(ot+1,ot+2,...,oT∣it=qi,λ)\beta_t(i) =P(o_{t+1},o_{t+2},...,o_T|i_t=q_i,\;\lambda) βt​(i)=P(ot+1​,ot+2​,...,oT​∣it​=qi​,λ)

=∑j=1NP(ot+1,ot+2,...,oT,it+1=qj∣it=qi,λ)= \sum_{j=1}^N P(o_{t+1},o_{t+2},...,o_T,\;i_{t+1}=q_j|i_t=q_i,\;\lambda) =j=1∑N​P(ot+1​,ot+2​,...,oT​,it+1​=qj​∣it​=qi​,λ)

=∑j=1NP(ot+1,ot+2,...,oT∣it+1=qj,it=qi,λ)⋅P(it+1=qj∣ot+1,ot+2,...,oT,it=qi,λ)=\sum_{j=1}^N P(o_{t+1},o_{t+2},...,o_T|i_{t+1}=q_j,\;i_t=q_i,\;\lambda)\cdot P(i_{t+1}=q_j|o_{t+1},o_{t+2},...,o_T,\;i_t=q_i,\;\lambda) =j=1∑N​P(ot+1​,ot+2​,...,oT​∣it+1​=qj​,it​=qi​,λ)⋅P(it+1​=qj​∣ot+1​,ot+2​,...,oT​,it​=qi​,λ)

=∑j=1NP(ot+1,ot+2,...,oT∣it+1=qj)⋅aij=\sum_{j=1}^N P(o_{t+1},o_{t+2},...,o_T|i_{t+1}=q_j)\cdot a_{ij} =j=1∑N​P(ot+1​,ot+2​,...,oT​∣it+1​=qj​)⋅aij​

=∑j=1NP(ot+1∣ot+2,...,oT,it+1=qj)⋅P(ot+2,...,oT∣it+1=qj)⋅aij=\sum_{j=1}^N P(o_{t+1}|o_{t+2},...,o_T,\;i_{t+1}=q_j)\cdot P(o_{t+2},...,o_T|i_{t+1}=q_j)\cdot a_{ij} =j=1∑N​P(ot+1​∣ot+2​,...,oT​,it+1​=qj​)⋅P(ot+2​,...,oT​∣it+1​=qj​)⋅aij​

=∑j=1NP(ot+1∣it+1=qj)⋅βt+1(j)⋅aij= \sum_{j=1}^N P(o_{t+1}|i_{t+1}=q_j)\cdot \beta_{t+1}(j)\cdot a_{ij} =j=1∑N​P(ot+1​∣it+1​=qj​)⋅βt+1​(j)⋅aij​

=∑j=1Nbj(ot+1)aijβt+1(j)= \sum_{j=1}^N b_j(o_{t+1})a_{ij}\beta_{t+1}(j) =j=1∑N​bj​(ot+1​)aij​βt+1​(j)

​ 至此,我们就可以根据 βT(i)\beta_T(i)βT​(i) 递推出 βT−1(i),...,β1(i)\beta_{T-1}(i),...,\beta_1(i)βT−1​(i),...,β1​(i) 。

② Decoding解码问题:

已知HMM模型 λ=(π,A,B)\lambda = (\pi,\;A,\;B)λ=(π,A,B) 和观测序列 OOO ,求解隐藏状态序列 I^\hat{I}I^ ,使得当前条件下出现该隐藏状态序列的可能性最大。

使用(Viterbi)维特比算法进行求解:

本质上就是基于动态规划求解最短路径(最大概率)的问题。

这里我们将在时刻 ttt 隐藏状态为 iii 的所有可能的状态转移路径 i1,i2,...iti_1,i_2,...i_ti1​,i2​,...it​ 中的概率最大值记为 δt(i)\delta_t(i)δt​(i) ,则有:

δt(i)=max⏟i1,i2,...,it−1P(it=i,i1,i2,...,it−1,o1,o2,...,ot∣λ),i=1,2,...,N\delta_t(i) = \underbrace{max}_{i_1,i_2,...,i_{t-1}} P(i_t=i,\;i_1,i_2,...,i_{t-1},\;o_1,o_2,...,o_{t}|\lambda),\;i=1,2,...,N δt​(i)=i1​,i2​,...,it−1​max​​P(it​=i,i1​,i2​,...,it−1​,o1​,o2​,...,ot​∣λ),i=1,2,...,N

由 δt(i)\delta_t(i)δt​(i) 的定义可以得到 δ\deltaδ 的递推表达式:

δt+1(j)=max⏟i1,i2,...,itP(it+1=i,i1,i2,...,it,o1,o2,...,ot+1∣λ)\delta_{t+1}(j)=\underbrace{max}_{i_1,i_2,...,i_{t}} P(i_{t+1}=i,\;i_1,i_2,...,i_{t},\;o_1,o_2,...,o_{t+1}|\lambda) δt+1​(j)=i1​,i2​,...,it​max​​P(it+1​=i,i1​,i2​,...,it​,o1​,o2​,...,ot+1​∣λ)

=max⏟1≤i≤Nδt(i)aijbj(ot+1)=\underbrace{max}_{1 \le i \le N} \delta_t(i)a_{ij}b_j(o_{t+1}) =1≤i≤Nmax​​δt​(i)aij​bj​(ot+1​)

但是 δt+1(j)\delta_{t+1}(j)δt+1​(j) 表示的是最大的概率值,而不是状态转移路径,所以我们要在每次获取到最大概率值之后标记出此时的状态转移路径,即隐藏状态 iii 的取值。

我们定义在时刻 t+1t+1t+1 隐藏状态为 jjj 的所有单个状态转移路径 (i1,i2,...,it−1,it,jt+1)(i_1,i_2,...,i_{t-1},i_t,j_{t+1})(i1​,i2​,...,it−1​,it​,jt+1​) 中概率最大的转移路径中时刻为 ttt 的节点的隐藏状态为 ψt+1(j)\psi_{t+1}(j)ψt+1​(j) 。

那么:

ψt+1(j)=argmax⏟1≤i≤Nδt(i)aij\psi_{t+1}(j) = \underbrace{arg\;max}_{1\le i\le N}\;\delta_t(i)a_{ij} ψt+1​(j)=1≤i≤Nargmax​​δt​(i)aij​

现在,我们可以根据 δt+1(i)\delta_{t+1}(i)δt+1​(i) 递推得到 δt(i),δt−1(i),...,δ1(j)\delta_{t}(i),\delta_{t-1}(i),...,\delta_{1}(j)δt​(i),δt−1​(i),...,δ1​(j) ,那么根据上式,我们可以得到使得 δt(i)\delta_{t}(i)δt​(i) 最大的状态转移路径 I^=ψ1(i),ψ2(i),...,ψt(i)\hat{I} =\psi_{1}(i),\psi_{2}(i),...,\psi_{t}(i)I^=ψ1​(i),ψ2​(i),...,ψt​(i) 。

③ Learning学习问题:

已知观测序列 OOO ,估计模型 λ=(π,A,B)\lambda = (\pi,\;A,\;B)λ=(π,A,B) 的参数,使得产生该观测序列的可能性最大。

这样的学习问题我们可以使用(Baum-Welch)鲍姆-韦尔奇算法进行求解。

首先我们给出算法的求解公式:

θ(t+1)=argmax⏟θ∫ZlogP(X,Z∣Q)⋅P(Z∣X,θ(t))dZ\theta^{(t+1)}=\underbrace{arg\;max}_{\theta} \int_{Z} log\;P(X,Z|Q)\cdot P(Z|X,\theta^{(t)})dZ θ(t+1)=θargmax​​∫Z​logP(X,Z∣Q)⋅P(Z∣X,θ(t))dZ

其中:

XXX 表示观测值,等价于前面的观测序列 OOO ;ZZZ 表示隐变量,等价于前面的隐藏状态序列 III (离散的);θ\thetaθ 表示模型参数,等价于前面的 λ\lambdaλ 。

那么上式可以改写为:

λ(t+1)=argmax⏟λ∑IlogP(O,I∣λ)⋅P(I∣O,λ(t))\lambda^{(t+1)}=\underbrace{arg\;max}_{\lambda}\;\sum_I log\;P(O,I|\lambda)\cdot P(I|O,\;\lambda^{(t)}) λ(t+1)=λargmax​​I∑​logP(O,I∣λ)⋅P(I∣O,λ(t))

=λ(t+1)=argmax⏟λ∑IlogP(O,I∣λ)⋅P(O,I∣λ(t))P(O∣λ(t))=\lambda^{(t+1)}=\underbrace{arg\;max}_{\lambda}\;\sum_I log\;P(O,I|\lambda)\cdot \frac{P(O,I|\lambda^{(t)})}{P(O|\lambda^{(t)})} =λ(t+1)=λargmax​​I∑​logP(O,I∣λ)⋅P(O∣λ(t))P(O,I∣λ(t))​

上式中分母 P(O∣λ(t))P(O|\lambda^{(t)})P(O∣λ(t)) 是已知的常量,对结果不会产生影响,这里我们可以省略掉,即:

=λ(t+1)=argmax⏟λ∑IlogP(O,I∣λ)⋅P(O,I∣λ(t))=\lambda^{(t+1)}=\underbrace{arg\;max}_{\lambda}\;\sum_I log\;P(O,I|\lambda)\cdot P(O,I|\lambda^{(t)}) =λ(t+1)=λargmax​​I∑​logP(O,I∣λ)⋅P(O,I∣λ(t))

现在是要找到 λ(t+1)\lambda^{(t+1)}λ(t+1) 和 λ(t)\lambda^{(t)}λ(t) 之间的关系式进行迭代更新, λ(t)\lambda^{(t)}λ(t) 可以这样表示:

λ(t)=(π(t),A(t),B(t))\lambda^{(t)}=(\pi^{(t)},\; A^{(t)},\; B^{(t)}) λ(t)=(π(t),A(t),B(t))

由于模型的三个参数的迭代过程都是使用类似的思想,而且关于 AAA 和 BBB 的推导相对比较麻烦,所以这里只演示 π\piπ 的推导求解过程:

可令:

Q(λ,λ(t))=∑IlogP(O,I∣λ)⋅P(O,I∣λ(t))Q(\lambda,\lambda^{(t)})=\sum_I log\;P(O,I|\lambda)\cdot P(O,I|\lambda^{(t)}) Q(λ,λ(t))=I∑​logP(O,I∣λ)⋅P(O,I∣λ(t))

=∑I[logπ(ai1)⋅∏t=2Tait−1,it⋅∏t=1Tbit(ot)⋅P(O,I∣λ(t))]=\sum_I \big[log\;\pi(a_{i_1})\cdot \prod_{t=2}^T a_{i_{t-1},i_t}\cdot \prod_{t=1}^T b_{i_t}(o_t) \cdot P(O,I|\lambda^{(t)})\big] =I∑​[logπ(ai1​​)⋅t=2∏T​ait−1​,it​​⋅t=1∏T​bit​​(ot​)⋅P(O,I∣λ(t))]

=∑I[(logπ(ai1)+∑t=2Tlogait−1,it+∑t=1Tlogbit(ot))⋅P(O,I∣λ(t))]=\sum_I \big[\big(log\;\pi(a_{i_1}) + \sum_{t=2}^T log\;a_{i_{t-1},i_t} + \sum_{t=1}^T log\;b_{i_t}(o_t)\big) \cdot P(O,I|\lambda^{(t)})\big] =I∑​[(logπ(ai1​​)+t=2∑T​logait−1​,it​​+t=1∑T​logbit​​(ot​))⋅P(O,I∣λ(t))]

由于小括号中的第二、三项与 π\piπ 没有关系,所以上式可以进一步简化:

π(t+1)=argmax⏟πQ(λ,λ(t))\pi^{(t+1)}=\underbrace{arg\;max}_{\pi}\;Q(\lambda,\lambda^{(t)}) π(t+1)=πargmax​​Q(λ,λ(t))

=argmax⏟π∑I[logπi1⋅P(O,I∣λ(t))]=\underbrace{arg\;max}_{\pi}\;\sum_I \big[log\;\pi_{i_1}\cdot P(O,I|\lambda^{(t)})\big] =πargmax​​I∑​[logπi1​​⋅P(O,I∣λ(t))]

=argmax⏟π∑i1⋯∑iT[logπi1⋅P(O,i1,i2,...,iT∣λ(t))]=\underbrace{arg\;max}_{\pi}\;\sum_{i_1} \cdots \sum_{i_T} \big[log\;\pi_{i_1}\cdot P(O,\;i_1,i_2,...,i_T|\lambda^{(t)})\big] =πargmax​​i1​∑​⋯iT​∑​[logπi1​​⋅P(O,i1​,i2​,...,iT​∣λ(t))]

我们发现前面的连续积分从 i2i_2i2​ 到 iTi_TiT​ 与 logπi1log\;\pi_{i_1}logπi1​​ 无关,与第二项连续积分的结果是一个边缘概率,即:

=argmax⏟π∑i1[logπi1⋅P(O,i1∣λ(t))]=\underbrace{arg\;max}_{\pi}\;\sum_{i_1} \big[log\;\pi_{i_1}\cdot P(O,\;i_1|\lambda^{(t)})\big] =πargmax​​i1​∑​[logπi1​​⋅P(O,i1​∣λ(t))]

到这里则变成了有约束条件下的求极值问题,由前面的条件可知,初始概率分布满足如下条件:

∑i=1Nπi=1\sum_{i=1}^N \pi_i = 1 i=1∑N​πi​=1

此时,我们使用拉格朗日乘子法来求解它,引入 η≥0\eta \ge 0η≥0 使得:

L(π,η)=∑i=1Nlogπi⋅P(O,i1=qi∣λ(t))+η(∑i=1Nπi−1)L(\pi, \eta) = \sum_{i=1}^N log\;\pi_i \cdot P(O,\;i_1=q_i|\lambda^{(t)}) + \eta \big(\sum_{i=1}^N \pi_i -1\big) L(π,η)=i=1∑N​logπi​⋅P(O,i1​=qi​∣λ(t))+η(i=1∑N​πi​−1)

对拉格朗日函数求关于 πi\pi_iπi​ 的偏导,并令其为0:

∂L(π,η)∂πi=1πi⋅P(O,i1=qi∣λ(t))+η=0⋯①\frac{\partial L(\pi, \eta)}{\partial \pi_i} = \frac{1}{\pi_i}\cdot P(O,\;i_1=q_i|\lambda^{(t)}) + \eta = 0 \quad \cdots \text{①} ∂πi​∂L(π,η)​=πi​1​⋅P(O,i1​=qi​∣λ(t))+η=0⋯①

⇒πi=−P(O,i1=qi∣λ(t))η⋯②\Rightarrow \pi_i = -\frac{P(O,\;i_1=q_i|\lambda^{(t)})}{\eta} \quad \cdots \text{②} ⇒πi​=−ηP(O,i1​=qi​∣λ(t))​⋯②

我们对式①等号两边的式子对 iii 在 1,2,...,N1,2,...,N1,2,...,N 上求和,即得:

∑i=1N[1πi⋅P(O,i1=qi∣λ(t))+η]=0\sum_{i=1}^N \big[\frac{1}{\pi_i}\cdot P(O,\;i_1=q_i|\lambda^{(t)}) + \eta\big] = 0 i=1∑N​[πi​1​⋅P(O,i1​=qi​∣λ(t))+η]=0

⇒∑i=1N[P(O,i1=qi∣λ(t))+πiη]=0\Rightarrow \sum_{i=1}^N \big[P(O,\;i_1=q_i|\lambda^{(t)}) + \pi_i \eta\big] = 0 ⇒i=1∑N​[P(O,i1​=qi​∣λ(t))+πi​η]=0

⇒P(O∣λ(t))+η=0\Rightarrow P(O|\lambda^{(t)}) + \eta = 0 ⇒P(O∣λ(t))+η=0

⇒η=−P(O∣λ(t))⋯③\Rightarrow \eta = -P(O|\lambda^{(t)}) \quad \cdots \text{③} ⇒η=−P(O∣λ(t))⋯③

将式③代入到式②中,可得:

πi(t+1)=P(O,i1=qi∣λ(t))P(O∣λ(t))\pi_i^{(t+1)} = \frac{P(O,\;i_1=q_i|\lambda^{(t)})}{P(O|\lambda^{(t)})} πi(t+1)​=P(O∣λ(t))P(O,i1​=qi​∣λ(t))​

这样我们就得到了 t+1t+1t+1 时刻的参数 πi\pi_iπi​ 由时刻 ttt 的模型参数更新的表达式。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。