参考:
/pinard/p/6945257.html
/pinard/p/6991852.html
/ml/hidden-markov-model.html
例子详细计算过程:
Q是所有可能的隐藏状态的集合,V是所有可能的观测状态的集合,则
,分别表示盒子1、盒子2、盒子3,此时N=3;
,分别表示红色、白色,此时N=2;
对于一个长度为3的序列,I是对应的状态序列,O是对应的观察序列
假设我们有3个盒子,每个盒子里都有红色和白色两种球,这三个盒子里球的数量分别是:
按照下面的方法从盒子里抽球,开始的时候,从第一个盒子抽球的概率是0.2,从第二个盒子抽球的概率是0.4,从第三个盒子抽球的概率是0.4。以这个概率抽一次球后,将球放回。然后从当前盒子转移到下一个盒子进行抽球。规则是:如果当前抽球的盒子是第一个盒子,则以0.5的概率仍然留在第一个盒子继续抽球,以0.2的概率去第二个盒子抽球,以0.3的概率去第三个盒子抽球。如果当前抽球的盒子是第二个盒子,则以0.5的概率仍然留在第二个盒子继续抽球,以0.3的概率去第一个盒子抽球,以0.2的概率去第三个盒子抽球。如果当前抽球的盒子是第三个盒子,则以0.5的概率仍然留在第三个盒子继续抽球,以0.2的概率去第一个盒子抽球,以0.3的概率去第二个盒子抽球。如此下去,直到重复三次,得到一个球的颜色的观测序列:
O={红,白,红}
初始状态分布为:
状态转移概率分布矩阵为:
观测状态概率矩阵为:
HMM最可能隐藏状态序列求解概述
在HMM模型的解码问题中,给定模型和观测序列,求给定观测序列O条件下,最可能出现的对应的状态序列,即要最大化。
维特比算法流程总结
输入:HMM模型 ,观测序列
输出:最有可能的隐藏状态序列
1)初始化局部状态:
2) 进行动态规划递推时刻时刻的局部状态:
3) 计算时刻T最大的,即为最可能隐藏状态序列出现的概率。计算时刻T最大的,即为时刻T最可能的隐藏状态。
4) 利用局部状态 开始回溯。对于
最终得到最有可能的隐藏状态序列
HMM维特比算法求解上述实例
(1)首先需要得到三个隐藏状态在时刻1时对应的各自两个局部状态,此时观测状态为1(o1指红色).
(2) 现在开始递推三个隐藏状态在时刻2时对应的各自两个局部状态,此时观测状态为2(o2指白色):
(3) 继续递推三个隐藏状态在时刻3时对应的各自两个局部状态,此时观测状态为1(o1指红色):
此时已经到最后的时刻,我们开始准备回溯。此时最大概率为 ,从而得到
由于,所以,而又由于,所以,
从而得到最终的最可能的隐藏状态序列为:(3,3,3)。