一直想写点关于数学方面的blog,这对于数据挖掘分析,NLP处理等都有着比较重要的作用,之前在CSDN上想写点HMM方面的文章,一直没写成,最近几天终于抽点时间完成了HMM的文章,加以整理,遂有这个系列文章

  首先是对HMM模型的介绍。

  传统的马尔可夫模型(Markov Model)主要描述了具有马尔可夫性质的一个随机过程。更特殊的来讲,是离散的马尔可夫过程——马尔可夫链(Markov Chain)。马尔可夫性质是指在给定当前和之前已发生事件后,未来发生事件仅依赖当前事件。马尔可夫过程主要具有两个性质:

  1)  有限视野性:即这一刻发生的事件依赖于之前有限的已发生事件,既有

  2)  时间不变性

  现实中很多现象都可以用马尔可夫过程来表示,例如交通红绿灯的转换,每一次灯的状态依赖于上一次的状态(当然,排除了一些外部非正常因素),并且,在可预见时间内,状态的变化规律是不变的,不会说一直是红灯后是黄灯,突然变成红灯后还是红灯。

  对于马尔可夫模型,我们可以建立一个量化模型,简单来说,这个模型包括了一个矩阵——转移矩阵(transmission matrix),和一个初始向量pi向量。转移矩阵用来表述从一个状态转移到另一个状态的发生概率,而pi向量用来表述模型的初始状态。通过这个模型,可以解决马尔可夫过程的一些问题,例如预测等问题。

  当然,现实中更多的相关现象是马尔可夫过程的一个隐式变种,这就是我们今天要讨论的隐马尔可夫模型。顾名思义,在隐马尔可夫模型中,状态发生序列是未知的,只能通过一些观察得到的另一组状态发生序列来获得相关信息。例如,在语音识别中,当然无法直接识别语言,我们实际得到的只是某一个人发出的声音,而这个声音是真正的声音(这里指人类某种语言的所有语调等信息)通过和声带,空气等信息混合表现得到的。再例如一个比较常见的例子——盲人和天气,住在海边山洞中的盲人会通过石头上海藻状态来获知天气状态而无法直接得到天气状态,这里,天气状态就是一个隐藏状态,而海藻状态则是对应的可以观测到且和天气有关的状态。

  隐马尔可夫模型相比马尔可夫模型,需要引入更多描述量,一般来说,HMM模型需要一个三元组来描述,HMM_Model = <pi, A, B>, 这里pi还是初始向量,这里是对隐藏状态的初始概率,A是转移矩阵,描述的隐藏状态之间的转移概率,B则是引入的混淆矩阵(Confusion Matrix),即连接隐藏状态和可观察状态之间的桥梁。如下图一个例子所示:

  关于HMM的模型介绍就这么多,其实HMM模型很简单,就是一个三元组的量化描述,但是针对这个模型,主要有三个问题,而这三个问题,也分别引出了三个HMM不同方面的应用:

  1,  预测。即给定一个HMM和观察状态序列,我们想知道根据这个HMM产生这个观察序列的概率有多大。

  2,  解码。即给定一个HMM和观察状态序列,我们想知道什么样的隐藏状态序列最有可能产生这样的观察序列。

  3,  学习。这里HMM的模型是未知的,给出已知的观察序列和隐藏状态集合,我们想建立最有可能的HMM,这也是三个问题中最难的。

to be continued

数学之美——HMM模型(一)介绍的更多相关文章

  1. 数学之美——HMM模型(二)解码和Forward算法

    上一篇讨论了HMM的基本概念和一些性质,HMM在现实中还是比较常见的,因此也带来一了一系列的HMM应用问题.HMM应用主要面向三个方面:预测.解码和学习.这篇主要讨论预测. 简单来说,预测就是给定HM ...

  2. 图像切割之(五)活动轮廓模型之Snake模型简单介绍

    图像切割之(五)活动轮廓模型之Snake模型简单介绍 zouxy09@qq.com http://blog.csdn.net/zouxy09 在"图像切割之(一)概述"中咱们简单了 ...

  3. HMM模型

    通过前几时断续的学习,发现自己对HMM模型的了解还只停留在皮毛,导致在学习CRF模型并将其与最大熵模型.HMM.MEMM做比较时感觉很吃力,所以又花了两天时间使劲看了遍HMM,发现了解得确实深刻了很多 ...

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

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

  5. HMM模型学习笔记(维特比算法)

    维特比算法(Viterbi) 维特比算法  编辑 维特比算法是一种动态规划算法用于寻找最有可能产生观测事件序列的-维特比路径-隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中.术语“维特比 ...

  6. 代码规范 & 数学之美读后感

    代码规范链接:https://zh-google-styleguide.readthedocs.io/en/latest/contents/ 数学之美读后感 一开始看名字我以为是一本讲数学是怎么发展的 ...

  7. 华为C/C++编码规范+《数学之美》感想

    1.排版 1.1 程序块要采用缩进风格编写, 缩进的空格数为4个.(说明: 对于由开发工具自动生成的代码可以有不一致)1.2 相对独立的程序块之间.变量说明之后必须加空行.1.3 循环.判断等语句中若 ...

  8. 应用HTK搭建语音拨号系统3:创建绑定状态的三音素HMM模型

    选自:http://maotong.blog.hexun.com/6261873_d.html 苏统华 哈尔滨工业大学人工智能研究室 2006年10月30日 声明:版权所有,转载请注明作者和来源 该系 ...

  9. 应用HTK搭建语音拨号系统2:创建单音素HMM模型

    选自:http://maotong.blog.hexun.com/6204849_d.html 苏统华 哈尔滨工业大学人工智能研究室 2006年10月30日 声明:版权所有,转载请注明作者和来源 该系 ...

随机推荐

  1. 【刷题】BZOJ 4945 [Noi2017]游戏

    Description http://www.lydsy.com/JudgeOnline/upload/Noi2017D2.pdf Solution 字符串里的'x'看起来很烦,于是考虑枚举这些'x' ...

  2. Oracle和SQL SERVER在SQL语句上的差别

    Oracle与Sql server都遵循SQL-92标准:http://owen.sj.ca.us/rkowen/howto/sql92F.html,但是也有一些不同之处,差别如下: Oracle中表 ...

  3. 【洛谷P1341】无序字母对

    题目大意:给定 n 个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒).请构造一个有 n+1 个字母的字符串使得每个字母对都在这个字符串中出现. 题解:每个无需字母对可以看成无 ...

  4. Java: 扩大字节缓存区的大小,提升AIO的处理性能(并发性能)

    前些日了,对AIO与NIO的并发性能进行了比较,在低并发的情况下,NIO性能表现比AIO好一些,主要原因是,NIO中可以使用FileChannel.transferTo(long position,  ...

  5. 960CSS框架,之前有用过 了解下框架基本原理

    http://blog.sina.com.cn/s/blog_8173443e010160b8.html CSS框架已经出现很长时间了,关于这些框架的用处也被我们讨论了很多遍了.有人说,CSS框架不够 ...

  6. Java基础-SSM之mybatis快速入门篇

    Java基础-SSM之mybatis快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实你可能会问什么是SSM,简单的说就是spring mvc + Spring + m ...

  7. Linux让git记住账号密码

    Linux让git记住账号密码 ——IT唐伯虎 摘要: Linux让git记住账号密码. 1.进入根目录,指令:cd / 2.创建记录账号密码的文件,指令:touch .git-credentials ...

  8. Jquery自定义滚动条插件

    下载地址:http://files.cnblogs.com/files/LoveOrHate/jquery.nicescroll.min.js <script src="jquery. ...

  9. Spring Mvc 一个接口多个继承; (八)

    在 spring 注解实现里,一个接口一般是不能多继承的! 除非在 bean 配置文件里有 针对这个 实现类的配置: <beans:bean id="icService" c ...

  10. AngularJS入门基础——作用域

    作用域$scope是构成AngularJS应用的核心基础,在整个框架中都被广泛使用,因此了解它是非常重要的. $scope对像是定义应用业务逻辑,控制器方法和视图属性的地方.作用域是视图和控制器之间的 ...