Advertisement

隐马尔可夫模型HMM学习笔记

阅读量:

参考:

https://www.cnblogs.com/pinard/p/6945257.html

https://www.cnblogs.com/pinard/p/6991852.html

https://www.hankcs.com/ml/hidden-markov-model.html

例子详细计算过程:

Q是所有可能的隐藏状态的集合,V是所有可能的观测状态的集合,则

Q=q_{1},q_{2},q_{3}

,分别表示盒子1、盒子2、盒子3,此时N=3;

V=v_{1}, v_{2}

,分别表示红色、白色,此时N=2;

对于一个长度为3的序列,** I** 是对应的状态序列, O 是对应的观察序列

设想我们拥有三个盒子,在每一个盒子里都放置了红球与白球,并列指出这三个盒子中的球的数量分别为:

盒子 1 2 3
红球数 5 4 7
白球数 5 6 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={红,白,红}

初始状态分布为:

rod =^{T}

状态转移概率分布矩阵为:

p = 0.5; p = 0.2; p = 0.3
p = 0.3; p = 0.5; p = 0.2
p = 0.2; p = 0.3; p = 0.5
A = eft

观测状态概率矩阵为:

b_1 = P = 0.5; b_2 = P = 0.4;b_3 = P = 0.7
b_1 = P = 0.5;b_2 = P = 0.6; b_3 = P = 0.3;
B = eft

HMM最可能隐藏状态序列求解概述

在HMM模型的解码问题中,给定模型

ambda =

和观测序列

O =o_1,o_2,...o_T

,求给定观测序列O条件下,最可能出现的对应的状态序列

I^= i_1*,i_2,...i_T^*

,即

P

要最大化。

维特比算法流程总结

输入:HMM模型

ambda =

,观测序列

O=

输出:最有可能的隐藏状态序列

I^= i_1*,i_2,...i_T^*

1)初始化局部状态:

elta_1 = i_ib_i,i=1,2...N
si_1=0,i=1,2...N
  1. 进行动态规划递推时刻
t=2,3,...T

时刻的局部状态:
elta_{t} = ax_{1 eq j eq N}b_i,i=1,2...N
si_t = arg  ax_{1 eq j eq N},i=1,2...N

  1. 计算时刻T最大的
elta_{T}

,即为最可能隐藏状态序列出现的概率。计算时刻T最大的

si_t

,即为时刻T最可能的隐藏状态。

P* = ax_{1 eq j eq N}elta_{T}
i_T^* = arg  ax_{1 eq j eq N}
  1. 利用局部状态
si

开始回溯。对于

t=T-1,T-2,...,1
i_t^* = si_{t+1}

最终得到最有可能的隐藏状态序列

I^= i_1*,i_2,...i_T^*

HMM维特比算法求解上述实例

为了实现每个时刻对应着各自的两个局部状态这一目标,在时刻1时观测到的状态值设定为1(其中**o1**表示红色)。

elta_1 = i_1b_1 = 0.2 imes 0.5 = 0.1
elta_1 = i_2b_2 = 0.4 imes 0.4 = 0.16
elta_1 = i_3b_3 = 0.4 imes 0.7 = 0.28
si_1=si_1 =si_1 =0

(2) 现在开始递推三个隐藏状态在时刻2时对应的各自两个局部状态,此时观测状态为2(o2 指白色):
elta_2 = ax_{1eq j eq 3}b_1 = ax_{1eq j eq 3} imes 0.5 = 0.028

si_2=3
elta_2 = ax_{1eq j eq 3}b_2 = ax_{1eq j eq 3} imes 0.6 = 0.0504
si_2=3
elta_2 = ax_{1eq j eq 3}b_3 = ax_{1eq j eq 3} imes 0.3 = 0.042
si_2=3

(3) 继续递推三个隐藏状态在时刻3时对应的各自两个局部状态,此时观测状态为1(o1 指红色):
elta_3 = ax_{1eq j eq 3}b_1 = ax_{1eq j eq 3} imes 0.5 = 0.00756

si_3=2
elta_3 = ax_{1eq j eq 3}b_2 = ax_{1eq j eq 3} imes 0.4 = 0.01008
si_3=2
elta_3 = ax_{1eq j eq 3}b_3 = ax_{1eq j eq 3} imes 0.7 = 0.0147
si_3=3

此时已经到最后的时刻,我们开始准备回溯。此时最大概率为

elta_3

,从而得到

i_3^* =3

由于

si_3=3

,所以

i_2^* =3

,而又由于

si_2=3

,所以

i_1^* =3

从而得到最终的最可能的隐藏状态序列为:(3,3,3)。

全部评论 (0)

还没有任何评论哟~