第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 人工智能里的数学修炼 | 隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数

人工智能里的数学修炼 | 隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数

时间:2020-03-29 21:15:13

相关推荐

人工智能里的数学修炼 |  隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数

人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型

人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法

人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态序列

人工智能里的数学修炼 | 隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数

隐马尔可夫模型的参数为λ={A,B,π}\lambda=\{A,B,\pi\}λ={A,B,π}, 对余其参数的求解,可以分为两种情况。

第一种情况较为简单,就是我们已知长度为TTT的观测序列和对应的隐藏状态序列,即{(O,I)}\{(O,I)\}{(O,I)}是已知的,此时我们可以很容易的用最大似然来求解模型参数。

第二种情况较为复杂,很多时候,我们无法得到隐马尔可夫模型观察序列对应的隐藏序列,即只有{O}\{O\}{O}是已知的,此时,我们就需要采用到鲍姆-韦尔奇算法,其实本质上也就是就是EM算法

目录

一、鲍姆-韦尔奇算法原理二、鲍姆-韦尔奇算法的推导三、鲍姆-韦尔奇算法的流程四、更多资源下载

一、鲍姆-韦尔奇算法原理

鲍姆-韦尔奇算法在每一次迭代中,都分为E和M两步,在E步,我们需要基于联合分布P(O,I∣λ)P(O,I|\lambda)P(O,I∣λ)和条件概率P(I∣O,λˉ)P(I|O,\bar{\lambda})P(I∣O,λˉ)的算出期望QQQ(其中λˉ\bar{\lambda}λˉ为当前迭代中模型参数),然后在M步中极大化这个期望,获得更新的模型参数λ\lambdaλ。通过不停的EM迭代,使得模型参数收敛

E步的期望表达式为:

Q=∑IP(I∣O,λˉ)logP(O,I∣λ)Q=\sum_{I}P(I|O,\bar{\lambda})logP(O,I|\lambda)Q=I∑​P(I∣O,λˉ)logP(O,I∣λ)在M步我们极大化上式,然后得到更新后的模型参数如下:

λˉ=argmaxλˉ∑IP(I∣O,λˉ)logP(O,I∣λ)\bar{\lambda}=argmax_{\bar{\lambda}}\sum_{I}P(I|O,\bar{\lambda})logP(O,I|\lambda)λˉ=argmaxλˉ​I∑​P(I∣O,λˉ)logP(O,I∣λ)通过,E步和M步不断的迭代,我们可以得到收敛的参数λˉ\bar{\lambda}λˉ。

上面的式子可能有些地方不知道该如何计算,接下来讲解,具体的推导和计算方法

二、鲍姆-韦尔奇算法的推导

输入:长度为TTT的观测序列O={(o1),(o2),...,(oT)}O=\{(o_{1}),(o_{2}),...,(o_{T})\}O={(o1​),(o2​),...,(oT​)},所有的可能的状态集合q1,q2,...,qN{q_{1},q_{2},...,q_{N}}q1​,q2​,...,qN​, 所有可能的观测集合v1,v2,...,vM{v_{1},v_{2},...,v_{M}}v1​,v2​,...,vM​

未知:隐藏的状态序列I={(i1),(i2),...,(iT)}I=\{(i_{1}),(i_{2}),...,(i_{T})\}I={(i1​),(i2​),...,(iT​)}

目标: λ={A,B,π}\lambda=\{A,B,\pi\}λ={A,B,π}

对于鲍姆-韦尔奇算法的E步,我们需要首先计算联合分布P(O,I∣λ)P(O,I|\lambda)P(O,I∣λ)如下:

P(O,I∣λ)=πi1bi1(o1)ai1i2bi2(o2)ai2i3...bi(T−1)(oT−1)ai(T−1)i(T)biT(oT)P(O,I|\lambda)=\pi_{i1}b_{i1}(o_{1})a_{i1i2}b_{i2}(o_{2})a_{i2i3}...b_{i(T-1)}(o_{T-1})a_{i(T-1)i(T)}b_{iT}(o_{T})P(O,I∣λ)=πi1​bi1​(o1​)ai1i2​bi2​(o2​)ai2i3​...bi(T−1)​(oT−1​)ai(T−1)i(T)​biT​(oT​)因为条件概率P(I∣O,λˉ)=P(O,I∣λ)P(O,λ)P(I|O,\bar{\lambda})=\frac{P(O,I|\lambda)}{P(O,\lambda)}P(I∣O,λˉ)=P(O,λ)P(O,I∣λ)​且P(O,λ)P(O,\lambda)P(O,λ)是一个参数, 期望Q可以简化为

Q=∑IP(O,I∣λˉ)logP(O,I∣λ)Q=\sum_{I}P(O,I|\bar{\lambda})logP(O,I|\lambda)Q=I∑​P(O,I∣λˉ)logP(O,I∣λ)将P(O,I∣λ)P(O,I|\lambda)P(O,I∣λ)带入上式,我们有

Q=∑IP(O,I∣λˉ)logπi+∑I(∑tTlogbit(ot))P(O,I∣λˉ)+∑I(∑tT−1logaiti(t+1))P(O,I∣λˉ)Q=\sum_{I}P(O,I|\bar{\lambda})log\pi_{i}+\sum_{I}(\sum_{t}^{T}logb_{it}(o_{t}))P(O,I|\bar{\lambda})+\sum_{I}(\sum_{t}^{T-1}loga_{iti(t+1)})P(O,I|\bar{\lambda})Q=I∑​P(O,I∣λˉ)logπi​+I∑​(t∑T​logbit​(ot​))P(O,I∣λˉ)+I∑​(t∑T−1​logaiti(t+1)​)P(O,I∣λˉ)

接下来对于对于鲍姆-韦尔奇算法的M步,我们需要极大化Q,这要求对Q的三个子式子分别求导,可以得到

πˉi=γ1(i)\bar{\pi}_{i}=\gamma_{1}(i)πˉi​=γ1​(i)其中γt(i)=P(it=qi∣O,λ)=P(it=qi,O∣λ)P(O∣λ))\gamma_{t}(i)=P(i_{t}=q_{i}|O,\lambda)=\frac{P(i_{t}=q_{i},O|\lambda)}{P(O|\lambda))}γt​(i)=P(it​=qi​∣O,λ)=P(O∣λ))P(it​=qi​,O∣λ)​表示在观测序列OOO给定的条件下,时刻ttt处于状态qiq_{i}qi​的概率。

aˉij=∑t=1T−1ξt(i,j)∑t=1Tγt(i)\bar{a}_{ij}=\frac{\sum_{t=1}^{T-1}\xi_{t}(i,j)}{\sum_{t=1}^{T}\gamma_{t}(i)}aˉij​=∑t=1T​γt​(i)∑t=1T−1​ξt​(i,j)​这里ξt(i,j)=P(it=qi,it+1=qj∣O,λ)\xi_{t}{(i,j)}=P(i_{t}=q_{i},i_{t+1}=q_{j}|O,\lambda)ξt​(i,j)=P(it​=qi​,it+1​=qj​∣O,λ)表示在观测序列OOO给定的条件下,时刻ttt处于状态qiq_{i}qi​且时刻t+1t+1t+1处于qjq_{j}qj​的概率。

bˉj(k)=∑t−1Tγt(j)I(ot=vk)∑t=1Tγt(j)\bar{b}_{j}(k)=\frac{\sum_{t-1}^{T}\gamma_{t}(j)I(o_{t}=v_{k})}{\sum_{t=1}^{T}\gamma_{t}(j)}bˉj​(k)=∑t=1T​γt​(j)∑t−1T​γt​(j)I(ot​=vk​)​

三、鲍姆-韦尔奇算法的流程

初始化参数λˉ={A,B,π}\bar{\lambda}=\{A,B,\pi\}λˉ={A,B,π}更新迭代参数

πˉi=γ1(i)\bar{\pi}_{i}=\gamma_{1}(i)πˉi​=γ1​(i)

aˉij=∑t=1T−1ξt(i,j)∑t=1Tγt(i)\bar{a}_{ij}=\frac{\sum_{t=1}^{T-1}\xi_{t}(i,j)}{\sum_{t=1}^{T}\gamma_{t}(i)}aˉij​=∑t=1T​γt​(i)∑t=1T−1​ξt​(i,j)​

bˉj(k)=∑t−1Tγt(j)I(ot=vk)∑t=1Tγt(j)\bar{b}_{j}(k)=\frac{\sum_{t-1}^{T}\gamma_{t}(j)I(o_{t}=v_{k})}{\sum_{t=1}^{T}\gamma_{t}(j)}bˉj​(k)=∑t=1T​γt​(j)∑t−1T​γt​(j)I(ot​=vk​)​模型收敛,停止迭代

四、更多资源下载

微信搜索“老和山算法指南”获取更多下载链接与技术交流群

有问题可以私信博主,点赞关注的一般都会回复,一起努力,谢谢支持。

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