统计学习方法十:隐马尔科夫模型
2016-07-25 18:22
253 查看
一、基本概念
二、什么是隐马尔科夫模型
三、概率计算问题
1、马尔科夫假设:当前的状态只与之前的状态有关 2、马尔科夫过程:当前的状态只与前n个状态有关,被称为n阶马尔科夫模型。 3、马尔科夫链:可以理解为带有概率的状态转移链 3、一阶马尔科夫模型:当前的状态只与前一状态有关 (1)若有M个状态,则共有M*M个状态转移 (2)转移概率:每一个状态转移都有一定的概率,称为~,所有的转移概率用一个M*M的矩阵表示 (3)每一个系统开始的时候,需要一个初始概率,称为π向量,表示每种状态作为初始状态出现的概率 4、隐马尔科夫模型 可能存在这样一种情况,我们想要的状态并不能直接观察得到,但是呢这个状态和其他某种可观测的状态之间存在一定的概率关系,也就是说可以通过那种可观测的状态(观测状态),来求解我们想要得到的状态(隐状态),这就是隐马尔科夫模型的主要思想。
二、什么是隐马尔科夫模型
1、隐马尔科夫模型定义 隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。 简单理解: (1)首先有一个状态序列,这个序列是不可被观测的 —— 状态序列 (2)状态序列的每个状态可以按照一定的概率生成一个观测 (3)这些观测组合成一个观测序列,显而易见是可被观测的 —— 观测序列 另外:序列的每一个位置又可以被看作一个时刻 隐马尔科夫模型主要用来解决标注问题,需要注意的是,对应着标记的是状态而非观测。也就是说在标注问题中,观测序列是输入,状态序列是输出,根据观测序列预测状态序列。 隐马尔科夫模型是一个生成模型。 2、隐马尔科夫模型的两个假设 (1)观测值之间严格独立 (2)一阶马尔科夫模型:状态的转移过程中当前状态只与前一状态有关 注:这也是其和条件随机场(CRF)的主要区别:CRF去除了这两个假设 另,条件随机场是一个判别模型 3、隐马尔科夫模型的三要素 假设有N个状态,M个观测 (1)状态转移矩阵:一个N*N阶矩阵,描述了各状态间相互转移的概率,记为A (2)观测概率矩阵:一个N*M阶矩阵,描述了每个状态生成每个观测的概率,记为B (3)初始状态概率向量:一个N阶向量,描述了初始时刻处于每个状态的概率,记为π 4、隐马尔科夫模型的三个基本问题: (1)概率计算问题:给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),计算观测序列O出现的概率P(O|r) (2)学习问题:已知观测序列O(o1,o2,...oT),估计模型r的参数,使的观测序列O出现的概率P(O|r)最大 (3)预测问题(解码问题):给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),求最有可能的对应的状态序列。
三、概率计算问题
给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),计算观测序列O出现的概率P(O|r) 主要是两种算法:前向算法和后向算法。 为了对比,同时给出两种算法。 1、前向概率和后向概率 (1)前向概率:给定隐马尔科夫模型r,定义到时刻t,部分观测序列为O1,O2,...Ot且t时刻状态为qi的概率为前向概率 (2)后向概率:给定隐马尔科夫模型r,定义在时刻t状态为qi的条件下,从t+1到T的部分观测序列为Ot+1,Ot+1,...OT的概率为后向概率。
2、前向算法与后向算法 输入:隐马尔科夫模型r,观测序列O 输出:观测序列概率P(O|r) (1)前向算法
(2)后向算法
3、算法解析
相关文章推荐
- Java:应用Observer接口实践Observer模式
- Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/rmi/extensions/DisconnectListene
- Android进阶处理图片之压缩图片大小、Lru内存解决方案
- 前端组件收集整理列表
- 整数串问题
- 【那些遇到的坑】—hadoop完全分布式集群搭建执行jps报错:Error occurred during initialization of VM
- 常用的shell命令汇总
- tomcat 工作原理
- Hibernate的事务处理机制和flush方法的用法
- Python 遍历目录
- 监控工具netdata在CentOS上部署
- activity和软键盘遮挡问题
- 毕业后第一份工作 即 华为工作 心得体会
- Android MVPBuilder第一篇
- javascript权威指南--运算符
- springmvc与struts2使用总结
- ddd
- java系统性能调优--tomcat
- map 之 get null
- PSA分区达到最大报错(表RSTSODS很有用)