HMM模型
来源:互联网 发布:const javascript 编辑:程序博客网 时间:2024/04/30 19:50
(一)基本概念
1.隐马尔科夫模型(Hidden Markov Model,HMM):关于时序的概率模型;描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程;
(1)状态序列:HMM生成的状态的序列,称为状态序列;
(2)观测序列:每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列;
(3)序列的每一个位置又可以看作是一个时刻;
2.例子:
(1)假设有4个盒子,每个盒子里都装有红白两种颜色的球,盒子里的红白求数由下表列出:
(2)按照下面的方法抽球,产生一个球的颜色的观测序列:开始从4个盒子里以等概率随机选取1个盒子,从这个盒子里随机抽出1个球,记录其颜色后,放回;然后,从当前盒子随机转移到下一个盒子,转移的规则是:
如果当前盒子是盒子1,那么下一个盒子一定是盒子2;
如果当前盒子是2或者3,那么分别以概率0.4和0.6转移到左边或右边的盒子;
如果当前盒子是4,那么各以0.5的概率停留在盒子4或转移到盒子3;
(3)确定转移的盒子后,再从这个盒子里随机抽出1个球,记录其颜色,放回;如此下去,重复5次,得到一个球的颜色的观测序列:
O = {红,红,白,白,红}
(4)在这个过程中,观察者只能观测得到球的颜色的序列,观测不到球是从哪个盒子取出的,即观测不到盒子的序列;
(5)在这个例子中,有两个随机序列,一个是盒子的序列(状态序列),一个是球的颜色的观测序列(观测序列);前者是隐藏的,只有后者是可观测的,这是一个HMM模型的例子;
3.HMM的表示
(1)假设Q是所有可能状态的集合,V是所有可能观测的集合,I是状态序列,O是观测序列
(2)状态转移概率矩阵
PS:对于上述例子中:
(3)观测概率矩阵
PS:对于上述例子中:
(4)初始状态概率向量
PS:对于上述例子中:
4.HMM模型的2个基本假设
(1)齐次马尔科夫性假设:假设隐藏的马尔科夫链在任意时刻 t 的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻 t 无关;
(2)观测独立性假设:假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测及状态无关;
5.HMM模型的3个基本问题
(1)概率计算问题:给定HMM模型下,求观测序列的概率;
(2)学习问题:给定观测序列,估计HMM模型参数;
(3)预测问题:给定HMM模型跟观测序列,求状态序列;
(二)概率计算问题
1.前向算法
(1)前向概率:给定HMM模型,定义到时刻 t 部分观测序列为o1,o2,...,ot 且时刻 t 的状态为 qi 的概率为前向概率
(2)算法流程:
1)初始化前向概率:
2)递归计算前向概率:
3)概率累加:
2.后向算法
(1)后向概率:给定HMM模型,已知时刻 t 的状态为 qi ,定义时刻 t+1 到时刻T的观测序列为ot+1,ot+2,...,oT的概率为后向概率
(2)算法流程:
1)初始化后向概率:
2)递归计算后向概率:
3)概率累加:
(三)学习问题
1.监督算法——极大似然估计
(1)训练数据:包含S个长度相同的观测序列和对应的状态序列:
(2)算法流程:
1)转移概率矩阵的估计:其中Aij表示样本中从状态 i 转移到状态 j 的频数
2)观测概率矩阵的估计:其中Bjk表示样本中从状态 j 生成观测 k 的频数
3)初始状态概率的估计:直接从样本中算
2.非监督算法(Baum-Welch算法)——EM算法估计
(1)训练数据:只包含S个长度为T的观测序列而没有对应的状态序列:
(2)算法流程:
1)确定完全数据的对数似然函数:
2)E步:求Q函数
3)M步:极大化Q函数,求得
(四)预测问题
1.近似算法
2.维特比算法
(1)维特比算法是一种动态规划的算法
(2)定义两个变量
1)在时刻 t 状态为 i 的之前所有可能路径中,概率值最大为:
其递推公式为:
2)在时刻 t 状态为 i 的之前最大概率路径中,第 t - 1 个结点为:
(3)算法流程:
1)初始化:
2)递推:
3)终止:
4)最优路径回溯:
得到的最优路径为:
(4)算法思想:记录每个时刻的每个可能状态的之前最优路径的概率值;同时也记录最优路径的前一个状态;不断向后迭代,最后找出最后一个时间点的最大概率值对应的状态,不断往前回溯,从而得到最优路径
从图中可以看出,每个时刻的每个状态都记录了之前最优路径的最后一个状态,因此通过回溯,很容易得到最优路径,比如时间3取状态3,之前的最优路径的最后一个状态也是3,如此回溯,最终得到的最优路径为3-3-3;
PS:
- HMM:隐马尔可夫模型HMM
- HMM模型
- HMM模型
- HMM 模型
- HMM模型
- 隐马尔科夫模型HMM
- 隐马尔可夫模型( HMM )
- 隐马尔科夫模型HMM
- 隐马尔科夫模型HMM(1)
- 隐马尔科夫模型HMM(2)
- [转]隐马尔科夫模型HMM
- 隐马尔可夫模型(HMM)
- 隐马尔科夫模型HMM
- 隐马尔可夫模型(HMM)简介
- 隐马尔可夫(HMM)模型
- HMM模型经典教程
- 隐马尔可夫模型(HMM)简介
- 隐马尔科夫模型HMM自学
- css3中div的水平,垂直居中
- sql的分组排序
- 弹性运动——学习笔记
- android 开源项目集锦 (转载)
- 分享 C++命名空间的解释 http://blog.chinaunix.net/uid-26874138-id-3215266.html
- HMM模型
- Redis总结笔记(一):安装和常用命令
- JSP中的EL表达式详细介绍
- 解决pdflatex文档目录乱码的解决方法
- 第二讲:我的第一个驱动
- 类型转换二:Type casting
- Android Broadcast 做的简单封装:
- 文章标题
- Java设计模式透析之 —— 单例(Singleton)