【NLP】揭秘马尔可夫模型神秘面纱系列文章(二)
马尔可夫模型与隐马尔可夫模型
作者:白宁超
2016年7月11日15:31:11
摘要:最早接触马尔可夫模型的定义源于吴军先生《数学之美》一书,起初觉得深奥难懂且无什么用场。直到学习自然语言处理时,才真正使用到隐马尔可夫模型,并体会到此模型的妙用之处。马尔可夫模型在处理序列分类时具体强大的功能,诸如解决:词类标注、语音识别、句子切分、字素音位转换、局部句法剖析、语块分析、命名实体识别、信息抽取等。另外广泛应用于自然科学、工程技术、生物科技、公用事业、信道编码等多个领域。本文写作思路如下:第一篇对马尔可夫个人简介和马尔科夫链的介绍;第二篇介绍马尔可夫链(显马尔可夫模型)和隐马尔可夫模型以及隐马尔可夫模型的三大问题(似然度、编码、参数学习);第三至五篇逐一介绍三大问题相关算法:(向前算法、维特比算法、向前向后算法);最后非常得益于冯志伟先生自然语言处理教程一书,冯老研究自然语言几十余载,在此领域别有建树。(本文原创,转载注明出处:马尔可夫模型与隐马尔可夫模型 )
目录
【自然语言处理:马尔可夫模型(一)】:初识马尔可夫和马尔可夫链
【自然语言处理:马尔可夫模型(二)】:马尔可夫模型与隐马尔可夫模型
【自然语言处理:马尔可夫模型(三)】:向前算法解决隐马尔可夫模型似然度问题
【自然语言处理:马尔可夫模型(四)】:维特比算法解决隐马尔可夫模型解码问题(中文句法标注)
【自然语言处理:马尔可夫模型(五)】:向前向后算法解决隐马尔可夫模型机器学习问题
马尔可夫个人简介
安德烈·马尔可夫,俄罗斯人,物理-数学博士,圣彼得堡科学院院士,彼得堡数学学派的代表人物,以数论和概率论方面的工作著称,他的主要著作有《概率演算》等。1878年,荣获金质奖章,1905年被授予功勋教授称号。马尔可夫是彼得堡数学学派的代表人物。以数论和概率论方面的工作著称。他的主要著作有《概率演算》等。在数论方面,他研究了连分数和二次不定式理论 ,解决了许多难题 。在概率论中,他发展了矩阵法,扩大了大数律和中心极限定理的应用范围。马尔可夫最重要的工作是在1906~1912年间,提出并研究了一种能用数学分析方法研究自然过程的一般图式——马尔可夫链。同时开创了对一种无后效性的随机过程——马尔可夫过程的研究。马尔可夫经多次观察试验发现,一个系统的状态转换过程中第n次转换获得的状态常取决于前一次(第(n-1)次)试验的结果。马尔可夫进行深入研究后指出:对于一个系统,由一个状态转至另一个状态的转换过程中,存在着转移概率,并且这种转移概率可以依据其紧接的前一种状态推算出来,与该系统的原始状态和此次转移前的马尔可夫过程无关。马尔可夫链理论与方法在现代已经被广泛应用于自然科学、工程技术和公用事业中。
1 引言
当需要计算现实世界上可以直接观察到的时间序列的概率时,(如上面天气事件),马尔可夫链很有用。但是,当我们处理的事件是现实世界不能观察到的,而是隐含在观察背后,诸如词类标注(根据具体的一个个的词,我们实现看到的词的序列去标注出正确的词类,此事词类的标注是隐藏的)、语音识别(声学事件下,推断出隐藏在其背后的单词)等。类似这样的事件马尔可夫链是不能直接解决的,此处隐马尔可夫模型便派到用场。
隐马尔科夫模型:由被观察到的事件(如:此类标记时我们输入中看到的词序列),又涉及到隐藏事件(对词的标注),这些隐藏事件在概率模型中被我们认为是引导因素。
2 隐马尔可夫模型
2.1 爱依斯讷(Jason Eisner)对隐马尔可夫模型的描述
隐马尔可夫模型在现实问题中应用:
隐马尔可夫模型在现实事件中的使用,假设从2016年之后的一千年(3016年),我们想了解2016年某段时间中国*成都天气状况(假设简单的热冷表示即H|C),恰巧又没有2016年成都天气关于热冷的记录,唯一的线索便是小明日记本中夏天的一段记录,记录的是每天小明吃冰淇淋的数量(观察状态),我们可以利用隐马尔可夫模型根据小明夏天吃冰淇淋数量的记录推断中国成都天气(热=0.8|冷=0.2,即隐含状态),究竟该如何做?
(1)具有初始状态和终结状态的隐马尔科夫链描述如下:

(2)没有初始状态和终结状态的隐马尔科夫链描述如下:

(3)一阶隐马尔可夫的两个假设

2.2 拉宾纳(Rabiner)对隐马尔可夫模型思想的三个问题
问题1(似然度问题):给一个HMM λ=(A,B) 和一个观察序列O,确定观察序列的似然度问题 P(O|λ) 。
问题2(解码问题):给定一个观察序列O和一个HMM λ=(A,B),找出最好的隐藏状态序列Q。
问题3(学习问题):给定一个观察序列O和一个HMM中的状态集合,自动学习HMM的参数A和B。
如上的冰淇淋事件是典型的问题1,似然度问题,对应向前算法解决。词类标注是典型问题2解码问题,对应维特比算法解决。问题3是机器学习问题,对应向前向后算法解决。此三个问题稍后篇章会一一介绍。
3 案例解析隐马尔可夫模型
下图描述小明吃冰淇淋的数量(观察值)与天气热冷情况(隐藏值H或C)之间的隐马尔可夫模型

其中hot1的转移概率是:
P(1|hot)=0.2 夏天某天天气热吃1根冰淇淋的概率
P(2|hot)=0.4 夏天某天天气热吃2根冰淇淋的概率
P(3|hot)=0.4 夏天某天天气热吃3根冰淇淋的概率
其中cold2的转移概率是:
P(1|hot)=0.5 夏天某天天气冷吃1根冰淇淋的概率
P(1|hot)=0.4 夏天某天天气冷吃2根冰淇淋的概率
P(1|hot)=0.1 夏天某天天气冷吃3根冰淇淋的概率
其中观察值(吃的数量):
O={1,2,3}
隐藏值(天气的状态):
S={H,C}
全连通HMM:任何两个状态之间的转移一个非零概率。
非全连通HMM:从左到右的单向序列,如对语音进程建模。
通过小明吃冰淇淋的观察值推断天气状态的问题,留着下节采用隐含马尔可夫模型解决。此处采用一个短小简明的例子,旨在让读者明白原理,后续会拿到现实应用中深入讲解。
4 参考文献
【1】统计自然语言处理基础 Christopher.Manning等 著 宛春法等 译
【2】自然语言处理简明教程 冯志伟 著
【3】数学之美 吴军 著
【4】Viterbi算法分析文章 王亚强
声明:关于此文各个篇章,本人采取梳理扼要,顺畅通明的写作手法。一则参照相关资料二则根据自己理解进行梳理。避免冗杂不清,每篇文章读者可理清核心知识,再找相关文献系统阅读。另外,要学会举一反三,不要死盯着定义或者某个例子不放。诸如:此文章例子冰淇淋数量(观察值)与天气冷热(隐藏值)例子,读者不免问道此有何用?我们将冰淇淋数量换成中文文本或者语音(观察序列),将天气冷热换成英文文本或者语音文字(隐藏序列)。把这个问题解决了不就是解决了文本翻译、语音识别、自然语言理解等等。解决了自然语言的识别和理解,再应用到现在机器人或者其他设备中,不就达到实用和联系现实生活的目的了?本文原创,转载注明出处:马尔可夫模型与隐马尔可夫模型
【NLP】揭秘马尔可夫模型神秘面纱系列文章(二)的更多相关文章
- 【NLP】揭秘马尔可夫模型神秘面纱系列文章(一)
		
初识马尔可夫和马尔可夫链 作者:白宁超 2016年7月10日20:34:20 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场.直到学习自然语言处 ...
 - 【NLP】揭秘马尔可夫模型神秘面纱系列文章(三)
		
向前算法解决隐马尔可夫模型似然度问题 作者:白宁超 2016年7月11日22:54:57 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场.直到学 ...
 - 【NLP】揭秘马尔可夫模型神秘面纱系列文章(四)
		
维特比算法解决隐马尔可夫模型解码问题(中文句法标注) 作者:白宁超 2016年7月12日14:08:28 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无 ...
 - 【NLP】揭秘马尔可夫模型神秘面纱系列文章(五)
		
向前向后算法解决隐马尔可夫模型机器学习问题 作者:白宁超 2016年7月12日14:28:10 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场. ...
 - 【NLP学习其二】什么是隐马尔可夫模型HMM?
		
概念 隐马尔可夫模型描述的是两个时序序列联合分布p(x,y)的概率模型,其中包含了两个序列: x序列外界可见(外界指的是观测者),称为观测序列(obsevation seuence) y序列外界不可见 ...
 - NLP | 自然语言处理 - 标注问题与隐马尔科夫模型(Tagging Problems, and Hidden Markov Models)
		
什么是标注? 在自然语言处理中有一个常见的任务,即标注.常见的有:1)词性标注(Part-Of-Speech Tagging),将句子中的每一个词标注词性,比如名词.动词等:2)实体标注(Name E ...
 - NLP —— 图模型(一)隐马尔可夫模型(Hidden Markov model,HMM)
		
本文简单整理了以下内容: (一)贝叶斯网(Bayesian networks,有向图模型)简单回顾 (二)隐马尔可夫模型(Hidden Markov model,HMM) 写着写着还是写成了很规整的样 ...
 - HMM:隐马尔可夫模型HMM
		
http://blog.csdn.net/pipisorry/article/details/50722178 隐马尔可夫模型 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模 ...
 - 猪猪的机器学习笔记(十七)隐马尔科夫模型HMM
		
隐马尔科夫模型HMM 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第十七次课在线笔记.隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来 ...
 
随机推荐
- XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法
			
在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...
 - ES6模块import细节
			
写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...
 - Security Policy:行级安全(Row-Level Security)
			
行级安全RLS(Row-Level Security)是在数据行级别上控制用户的访问,控制用户只能访问数据库表的特定数据行.断言是逻辑表达式,在SQL Server 2016中,RLS是基于安全断言( ...
 - SQL Server 2014 新特性——内存数据库
			
SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...
 - 关于python的bottle框架跨域请求报错问题的处理
			
在用python的bottle框架开发时,前端使用ajax跨域访问时,js代码老是进入不了success,而是进入了error,而返回的状态却是200.url直接在浏览器访问也是正常的,浏览器按F12 ...
 - C++随笔:.NET CoreCLR之GC探索(4)
			
今天继续来 带大家讲解CoreCLR之GC,首先我们继续看这个GCSample,这篇文章是上一篇文章的继续,如果有不清楚的,还请翻到我写的上一篇随笔.下面我们继续: // Initialize fre ...
 - 原生js+css3实现图片自动切换,图片轮播
			
运用CSS3transition及opacity属性 制作图片轮播动画 自己这两天根据用js来控制触发CSS3中transition属性,从而写出来的以CSS3动画为基础,js控制过程的图片轮播 运用 ...
 - [原]分享一下我和MongoDB与Redis那些事
			
缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...
 - Java定时任务的常用实现
			
Java的定时任务有以下几种常用的实现方式: 1)Timer 2)ScheduledThreadPoolExecutor 3)Spring中集成Cron Quartz 接下来依次介绍这几类具体实现的方 ...
 - 在 Windows7 上按照 MySQL5.7
			
在 Windows7 上按照 MySQL5.7 1.从官网下载最新版本的 MySQL,这里下载的是 mysql-5.7.17-win32: 2.将下载的 mysql-5.7.17-win32.zip ...