摘要:

  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.实现和具体例子

  实现HMM

  

6.适用场合

  

7.与CRF比较:

  1.CRF是一种判别式模型,CRF是一种无向图;HMM相反

  2.CRF是在全局范围内统计归一化的概率,是全局最优的解;HMM相反

  3.CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活;;HMM相反

  

隐马尔可夫模型(HMM)总结的更多相关文章

  1. 基于隐马尔科夫模型(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 ...

  2. 隐马尔科夫模型HMM学习最佳范例

    谷歌路过这个专门介绍HMM及其相关算法的主页:http://rrurl.cn/vAgKhh 里面图文并茂动感十足,写得通俗易懂,可以说是介绍HMM很好的范例了.一个名为52nlp的博主(google ...

  3. 猪猪的机器学习笔记(十七)隐马尔科夫模型HMM

    隐马尔科夫模型HMM 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第十七次课在线笔记.隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来 ...

  4. 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率

    隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法 ...

  5. 隐马尔科夫模型HMM(一)HMM模型

    隐马尔科夫模型HMM(一)HMM模型基础 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比 ...

  6. 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数

    隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法 ...

  7. 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列

    隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态 ...

  8. 用hmmlearn学习隐马尔科夫模型HMM

    在之前的HMM系列中,我们对隐马尔科夫模型HMM的原理以及三个问题的求解方法做了总结.本文我们就从实践的角度用Python的hmmlearn库来学习HMM的使用.关于hmmlearn的更多资料在官方文 ...

  9. HMM:隐马尔可夫模型HMM

    http://blog.csdn.net/pipisorry/article/details/50722178 隐马尔可夫模型 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模 ...

  10. 机器学习之隐马尔科夫模型HMM(六)

    摘要 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔科夫过程.其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步 ...

随机推荐

  1. 关闭ipv6的方法

    公司研发反应,几台机器开了一些端口,但是访问一直不通. 检查后发现,发现服务开启的是ipv6的端口,所有首先想到的办法就是关闭ipv6. 关闭ipv6的方法有两种: 第一个是在内核配置文件修改配置(p ...

  2. vue中get和post请求

    import axios from 'axios'; import router from '@/router'; import {     setSessionStorage,     getSes ...

  3. 微服务架构的基础框架选择:Spring Cloud还是Dubbo?

    最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构.近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spr ...

  4. Yii2数据接口

    写接口之前先确认那你已经安装了Yii2的basic版或者advanced版,如果还没有,赶快去看这篇文章:composer安装Yii2. 现在默认你已经安装了basic版或者advanced版了,并且 ...

  5. Oracle知识梳理(三)操作篇:SQL基础操作汇总

    Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:       CREATE TABLE  table_name ( col_ ...

  6. 团队项目第二阶段个人进展——Day10

    一.昨天工作总结 冲刺第十天,做程序的测试,并修复一些小的bug 二.遇到的问题 无 三.今日工作规划 继续对程序进行测试优化

  7. FineReport启动后访问404

    近期将FineReport以嵌入式方式部署在Tomcat8上,启动服务后,点击导出下载出现HTTP ERROR 404情况: 百思不得其解啊,纠结了好几天: 后查看原部署Tomcat6服务器的cata ...

  8. webpack bug及解决方案

    1.webpack打包后z-index失效 解决方案:z-index设置成行内样式,例如:root.style.cssText = 'z-index:100000 !important;';

  9. Unix系统的常用信号

    编号为1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号).不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信 ...

  10. 深入理解SpringBoot之装配条件

    我们知道自动装配是SpringBoot微服务化的核心,它会把META-INF/spring.factoires里配置的EnableAutoConfiguration注册到IOC容器里.但是,请大家考虑 ...