隐马尔可夫模型(HMM)总结
摘要:
1.算法概述
2.算法推导
3.算法特性及优缺点
4.注意事项(算法过程,调参等注意事项)
5.实现和具体例子
6.适用场合
内容:
1.算法概述
隐马尔科夫模型(Hidden Markov Model)是关于时序的概率模型,描述由一个隐含的马尔科夫链生成不可观测的状态序列,再由状态序列生成观测序列的过程。这种通过观测序列预测隐含的标记序列的问题叫做标注。
下图来自维基百科:

并且本文有如下符号表示:

其中
就是我们需要求得的一个三元组;拿中文分词的例子来说,分词中的状态序列是{ Begin,Middle,End,Single },对应单个字成词的就是Single,双连词就是{Begin,End},三联词就是{Begin,Middle,End}。而我们观测到的就是一个句子;通过HMM实现的分词算法可以通过
求得初始{ Begin,Middle,End,Single }这四个状态的分布,以及各个状态间相互转移的条件概率矩阵,当前状态对应一个中文词(Unicode编码)的条件概率矩阵。另一个直观的例子来自《统计学习方法》,是给定4个盒子(4个状态),每个盒子有若干红,白小球,给定一个观测序列,求对应盒子的序列。
最后马尔科夫模型的两个基本假设:
1.齐次马尔科夫假设:马尔科夫链的当前状态之和其前一刻的状态有关,与其它状态无关;对应的概率语言是:
2.观测独立性假设:当前的观测只与该时刻的马尔科夫链相关,与其它观测及状态无关;对应的概率语言是:
2.算法推导
以下可以看作是HMM算法的一步步拆分,并且依次加深理解:
1.在模型给定下求观测序列的概率,即
前向算法(动态规划算法):求观测序列为y1,y2,...,yt,并且t时间点对应状态
的概率


后向算法(动态规划算法):已知t时间点对应状态
,求观测序列y(t+1),y(t+2),...,y(T)的概率

2.求解模型参数,使用对数极大似然估计,
,得到三元组
1)建立目标函数: 2)拆分三项:

由概率加和为1,建立拉格朗日函数,求得三个最大化的

更详细的介绍和例子请参考维基百科:Baum–Welch_algorithm
3.求最可能的状态序列,即
:维特比算法

3.算法特性及优缺点
1.按照HMM 的假设,HMM模型是无记忆性的,不能利用上下文的信息。因为它只与其前一个状态有
关,如果想利用更多的已知信息,必须建立高阶的HMM 模型。
2.HMM学到的是状态和观察序列的联合分布P(Y,X),而预测问题中,我们需要的是条件概率P(Y|X)。
4.注意事项(算法过程,调参等注意事项)
确定隐含变量个数
5.实现和具体例子
6.适用场合
7.与CRF比较:
1.CRF是一种判别式模型,CRF是一种无向图;HMM相反
2.CRF是在全局范围内统计归一化的概率,是全局最优的解;HMM相反
3.CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活;;HMM相反
隐马尔可夫模型(HMM)总结的更多相关文章
- 基于隐马尔科夫模型(HMM)的地图匹配(Map-Matching)算法
文章目录 1. 1. 摘要 2. 2. Map-Matching(MM)问题 3. 3. 隐马尔科夫模型(HMM) 3.1. 3.1. HMM简述 3.2. 3.2. 基于HMM的Map-Matchi ...
- 隐马尔科夫模型HMM学习最佳范例
谷歌路过这个专门介绍HMM及其相关算法的主页:http://rrurl.cn/vAgKhh 里面图文并茂动感十足,写得通俗易懂,可以说是介绍HMM很好的范例了.一个名为52nlp的博主(google ...
- 猪猪的机器学习笔记(十七)隐马尔科夫模型HMM
隐马尔科夫模型HMM 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第十七次课在线笔记.隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来 ...
- 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率
隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法 ...
- 隐马尔科夫模型HMM(一)HMM模型
隐马尔科夫模型HMM(一)HMM模型基础 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比 ...
- 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数
隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法 ...
- 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列
隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态 ...
- 用hmmlearn学习隐马尔科夫模型HMM
在之前的HMM系列中,我们对隐马尔科夫模型HMM的原理以及三个问题的求解方法做了总结.本文我们就从实践的角度用Python的hmmlearn库来学习HMM的使用.关于hmmlearn的更多资料在官方文 ...
- HMM:隐马尔可夫模型HMM
http://blog.csdn.net/pipisorry/article/details/50722178 隐马尔可夫模型 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模 ...
- 机器学习之隐马尔科夫模型HMM(六)
摘要 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔科夫过程.其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步 ...
随机推荐
- Linux常用资源(不断改进中)
Linux常用命令全集: http://linux.chinaitlab.com/special/linuxcom/Index.html ubuntu 12.04 配置指南: http://www. ...
- Python函数式实现单例特性
传统的单例一般是基于类的特性实现,Python模块是天生的单例,下面来个简单的借助模块和函数实现单例特性: gdb = None def get_gdb(): global gdb if gdb is ...
- 蚂蚁 RPC 框架 SOFA-RPC 初体验
前言 最近蚂蚁金服开源了分布式框架 SOFA,楼主写了一个 demo,体验了一下 SOFA 的功能,SOFA 完全兼容 SpringBoot(当然 Dubbo 也是可以兼容的). 项目地址:Alipa ...
- Kafka安装之 Zookeeper
一 . Zookeeper 概述 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它 ...
- Leetcode_删除排序数组中的重复项
Leetcode 删除排序数组中的重复项 题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用 额外的数组空间,你必须在原地修改输入数 ...
- Web开发环境搭建 Eclipse-Java EE 篇
Web开发环境搭建 Eclipse-Java EE 篇 [原创内容,转载注名出处] 1. 下载和安装 1.1 下载JDK 在Java官方网站下载最新版本的 Java SE: http://www.o ...
- [ 搭建Redis本地服务器实践系列 ] :序言
说起来,是在一个气候适宜的下午,虽然临近下班,不过办公室里还是充满了忙碌的身影,不时的还会从办公区传来小伙伴们为了一个需求而激烈争论的声音,自从入了互联网这个行业,说实话,也就很少休息了,当然了也不全 ...
- 【转】Fundebug上线微信小游戏错误监控!支持自动截屏!
摘要: Fundebug竭诚为你的小游戏保驾护航. 想必大家都玩过"跳一跳"吧?刷排行榜的感觉是不是很好啊!还有"知乎答题王"呢,在智力上碾压老铁简直太棒了! ...
- Linux时间子系统之(十四):tick broadcast framework
专题文档汇总目录 Notes:BroadcastTick作为cpuidle的waker,硬件基础.BroadcastTick嵌入在当前系统Tick框架中.BroadcastTick设备初始化:周期性T ...
- 在Windows下同时安装Python2.x和Python3.x
前言: Python现在是两个版本共存,Python2.x和Python3.x都同时在更新.但是Python2.x和Python3.x的区别还是很多的(以后我可能会写一篇文章列举一下Python2.x ...