【NLP】揭秘马尔可夫模型神秘面纱系列文章(二)
马尔可夫个人简介
安德烈·马尔可夫,俄罗斯人,物理-数学博士,圣彼得堡科学院院士,彼得堡数学学派的代表人物,以数论和概率论方面的工作著称,他的主要著作有《概率演算》等。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】揭秘马尔可夫模型神秘面纱系列文章(二)相关推荐
- 数学之美-隐含马尔可夫模型-笔记
<数学之美>吴军 著 第二版 --读书笔记 原理 通信模型: Created with Raphaël 2.1.2信息.上下文信息.上下文传递的信息传递的信息接收的信息接收的信息(s1,s ...
- 从零开始学NLP(八) 隐马尔科夫模型(超详细)
目录 前言 一.HMM基础 二.HMM定义 三.HMM的三个基本问题 1.概率计算问题 2. 学习问题 3.预测问题 四.HMM中的参数估计 1.前向算法 2.后向算法 五.HMM实例 总结 前言 上 ...
- 马尔可夫模型及隐马尔可夫模型(HMM)
马尔可夫模型 马尔可夫模型是由Andrei A. Markov于1913年提出的 ∙ ∙ 设 S S是一个由有限个状态组成的集合 S={1,2,3,-,n−1,n} S={1,2,3,-,n−1,n ...
- 统计学习方法十:隐马尔科夫模型
一.基本概念 1.马尔科夫假设:当前的状态只与之前的状态有关 2.马尔科夫过程:当前的状态只与前n个状态有关,被称为n阶马尔科夫模型. 3.马尔科夫链:可以理解为带有概率的状态转移链 3.一阶马尔科夫 ...
- 自然语言处理之hmm(隐马尔可夫模型)
自然语言处理 Part 3 hmm(隐马尔可夫模型) 文章目录 自然语言处理 前言 隐马尔科夫模型 一.基本定义 二.两个重要假设 三.主要解决问题 四.维特比算法 1.已知条件 2.初始化局部状态 ...
- 【NLP】用于语音识别、分词的隐马尔科夫模型HMM
大家好,今天介绍自然语言处理中经典的隐马尔科夫模型(HMM).HMM早期在语音识别.分词等序列标注问题中有着广泛的应用. 了解HMM的基础原理以及应用,对于了解NLP处理问题的基本思想和技术发展脉络有 ...
- NLP复习资料(3)-六~七章:马尔科夫模型与条件随机场、词法分析与词性标注
NLP复习资料 1.第六章 马尔科夫模型与条件随机场 2.第七章 词法分析与词性标注 国科大,宗老师<自然语言处理>课程复习笔记,个人整理,仅供参考. 1.第六章 马尔科夫模型与条件随机场 ...
- 一文读懂NLP之隐马尔科夫模型(HMM)详解加python实现
一文读懂NLP之隐马尔科夫模型(HMM)详解加python实现 1 隐马尔科夫模型 1.1 HMM解决的问题 1.2 HMM模型的定义 1.2.1HMM的两个假设 1.2.2 HMM模型 1.3 HM ...
- NLP入门概览(4)—— 序列标注a:隐马尔科夫模型(HMM)
在这一部分中,我们将要介绍NLP领域最常见的一类问题:序列标注. 1. 序列标注 在NLP领域中,有许多的任务可以转化为"将输入的语言序列转化为标注序列"来解决问题.比如, ...
- nlp基础—8.隐马尔科夫模型(HMM)分词实现
文章目录 引言 HMM分词实现 理论部分传送门: nlp基础-7.隐马尔可夫模型(HMM算法) 数据代码链接见:https://gitee.com/lj857335332/hmm-for-word-s ...
最新文章
- 2020癌症大数据分析,哪些癌症最要命?
- 蓝桥杯-代码-数字三角形
- HTML里面Textarea换行总结
- 【经验】GaussDB(for MySQL)性能优化 —— 日志的“快递驿站”
- 74hc595级联c语言程序,74hc595级联程序范例
- js函数提示 vscode_VSCode + JSDoc 完美实现(almost)JavaScript代码提示
- lisp如何绘制梯形_建筑考研 | 如何用数据库思维拓宽设计思路?(以清华考研快题为例)...
- js事件(事件冒泡与事件捕获)
- 《区块链技术与应用》公开课系列笔记——目录导航页
- KEGG COMPOUND 数据库
- 服务器双系统快捷键,mac双系统切换快捷键
- UE4-4.26蓝图功能实现:按键控制物体旋转的“延伸”(点名系统Get all actors of class)
- Azure kinect (五)人体跟踪器报错解决,第一次成功运行(持续更新中)
- 化云为雨,华为云为什么要深入经济的“毛细血管”?
- python 常见日期转换、excel时间转化、日期加N天、减N天等操作
- LabVIEW使用POST调用有道翻译
- java跨域解析json数据_java后台设计简单的json数据接口,设置可跨域访问,前端ajax获取json数据...
- c语言俄罗斯方块下沉的算法,俺用c语言写的一个天下算法最烂的俄罗斯方块程序...
- CK+表情数据库及使用
- Windows下动态链接之二:DLL优化加速
热门文章
- Median of Two Sorted Array leetcode java
- 关于Jquery ajax调用一般处理程序Handler报500 错误(Internal Server Error)解决办法
- Archlinux桌面配置指南
- WinApi学习笔记-内存管理
- Visual C++ 2005 系列课程学习笔记-6
- 玩水——西沙:在海的远处,水是那么蓝那么清
- php vendor 删除,composer update删除第三方库的问题
- 套料排版代码python_XSuperNEST全自动套料解决方案
- 添加mysql.h头文件
- call需要多大带宽 video_从游戏的发展趋势看,未来显存多大能够用?