本文中部分内容来自于李航《统计学习方法》。

目录

1.什么是HMM

 2.基于HMM的三种问题,三种方法

3.关于解码问题的维特比算法 

3.1HMM可以解决什么问题

3.2维特比算法求解最短路径问题思路

3.3实例说明


1.什么是HMM

马尔可夫模型马尔可夫链的一种,它的状态不能直接观察到,但能通过观测向量序列观察到,每个观测向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一个具有相应概率密度分布的状态序列产生。所以,隐马尔可夫模型是一个双重随机过程----具有一定状态数的隐马尔可夫链和显示随机函数集。自20世纪80年代以来,HMM被应用于语音识别,取得重大成功。到了90年代,HMM还被引入计算机文字识别和移动通信核心技术“多用户的检测”。HMM在生物信息科学、故障诊断等领域也开始得到应用。

 2.基于HMM的三种问题,三种方法

  1. 评估问题:前向、后向算法
  2. 解码问题:维特比算法
  3. 学习问题(参数估计):鲍姆-韦尔奇算法

3.关于解码问题的维特比算法 

3.1HMM可以解决什么问题

使用HMM模型时我们的问题一般有这两个特征:1)我们的问题是基于序列的,比如时间序列,或者状态序列。2)我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。例如路网匹配方法,给定一系列GPS轨迹点样本,给一张完整路网地图,求解这些GPS轨迹点走的是这张路网图的哪一条路。此类的问题非常多,最近在研究路网识别,因此看到较多文献用到此经典方法,故拜读一番,收获颇丰,在这里分享一点学习经验,若有解释不当或失误,请指正。

3.2维特比算法求解最短路径问题思路

现在我们来总结下维特比算法的流程:

输入:HMM模型\lambda =\left ( A,B,\Pi \right ),观测序列O=\left (o _{1} ,o _{2} ,...o _{T} ,\right )

输出:最有可能的隐藏状态序列^{^I{*}}=\left \{i _{1}^{*},i _{2}^{*},...i _{T}^{*} \right \}

    1)初始化局部状态:

 2) 进行动态规划递推时刻t=2,3,...T时刻的局部状态:

 3) 计算时刻T最大的^{\delta _{T}^{}}\left ( i \right ),即为最可能隐藏状态序列出现的概率。计算时刻TT最大的\Psi _{T}\left ( i \right ),即为时刻T最可能的隐藏状态。

 4) 利用局部状态\Psi \left ( i \right )开始回溯。对于t=T−1,T−2,...,1:

  最终得到最有可能的隐藏状态序列^{^I{*}}=\left \{i _{1}^{*},i _{2}^{*},...i _{T}^{*} \right \}

3.3实例说明

举个栗子:已知有三个盒子是隐藏状态,每个盒子中有一个球,球的颜色分别为红色和白色,观测序列是(红、白)

那么观察集合是:

V={红,白},M=2

状态集合是:

Q={盒子1,盒子2,盒子3},N=3

而观察序列和状态序列的长度为3.

初始状态分布为:

 

 

 

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

观测状态概率矩阵为:

球的颜色的观测序列:

O={红,白,红}

按照我们上一节的维特比算法,首先需要得到三个隐藏状态在时刻1时对应的各自两个局部状态,此时观测状态为1:

现在开始递推三个隐藏状态在时刻2时对应的各自两个局部状态,此时观测状态为2:

继续递推三个隐藏状态在时刻3时对应的各自两个局部状态,此时观测状态为1:

此时已经到最后的时刻,我们开始准备回溯。此时最大概率为δ3(3),从而得到i_{3}^{*}=3

由于\Psi _{3}\left ( 3 \right )=3,所以i_{2}^{*}=3, 而又由于\Psi _{2}\left ( 3 \right )=3,所以i_{1}^{*}=3。从而得到最终的最可能的隐藏状态序列为:(3,3,3)

 

ps:文章部分内容参考大佬的博客,感谢大佬分享,链接:https://www.cnblogs.com/pinard/p/6991852.html

整理不易,欢迎点赞,感谢关注!!!

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐