HMM学习最佳范例七:前向-后向算法4
2017-11-20 本文已影响4人
04282aba96e3
七、前向-后向算法(Forward-backward algorithm)
隐马尔科夫模型(HMM)的三个基本问题中,第三个HMM参数学习的问题是最难的,因为对于给定的观察序列O,没有任何一种方法可以精确地找到一组最优的隐马尔科夫模型参数(A、B、pi)使P(O|lamda)最大。因而,学者们退而求其次,不能使P(O|lamda)全局最优,就寻求使其局部最优(最大化)的解决方法,而前向-后向算法(又称之为Baum-Welch算法)就成了隐马尔科夫模型学习问题的一种替代(近似)解决方法。
我们首先定义两个变量。给定观察序列O及隐马尔科夫模型lamda,定义t时刻位于隐藏状态Si的概率变量为:
![](https://img.haomeiwen.com/i1718515/6d942ba63d9adefe.png)
回顾一下第二节中关于前向变量at(i)及后向变量Bt(i)的定义,我们可以很容易地将上式用前向、后向变量表示为:
![](https://img.haomeiwen.com/i1718515/725d27c10bffd08c.png)
其中分母的作用是确保:
![](https://img.haomeiwen.com/i1718515/2089f32a6b1a9028.png)
给定观察序列O及隐马尔科夫模型lamda,定义t时刻位于隐藏状态Si及t+1时刻位于隐藏状态Sj的概率变量为:
![](https://img.haomeiwen.com/i1718515/d0078831bfc6c38e.png)
该变量在网格中所代表的关系如下图所示:
![](https://img.haomeiwen.com/i1718515/1c4f3a9511255c18.png)
同样,该变量也可以由前向、后向变量表示:
![](https://img.haomeiwen.com/i1718515/810156401e844b13.png)
而上述定义的两个变量间也存在着如下关系:
![](https://img.haomeiwen.com/i1718515/7591e51b88ecee93.png)
如果对于时间轴t上的所有
![](https://img.haomeiwen.com/i1718515/dfa38f25fe5c6548.png)
相加,我们可以得到一个总和,它可以被解释为从其他隐藏状态访问Si的期望值(网格中的所有时间的期望),或者,如果我们求和时不包括时间轴上的t=T时刻,那么它可以被解释为从隐藏状态Si出发的状态转移期望值。相似地,如果对
![](https://img.haomeiwen.com/i1718515/267371dee7b12d99.png)
在时间轴t上求和(从t=1到t=T-1),那么该和可以被解释为从状态Si到状态Sj的状态转移期望值。即:
![](https://img.haomeiwen.com/i1718515/3405289df076a410.png)
![](https://img.haomeiwen.com/i1718515/d119d7955f248b4b.png)