概念

隐马尔可夫模型描述的是两个时序序列联合分布p(x,y)的概率模型,其中包含了两个序列:

x序列外界可见(外界指的是观测者),称为观测序列(obsevation seuence)

y序列外界不可见,称为状态序列( state sequence)

如观测x为单词,状态y为词性,我们需要根据单词序列去猜测它们的词性。

隐马尔可夫模型之所以称为“隐”, 是因为从外界来看,状态序列(例如词性)隐藏不可见,是待求的因变量。

从这个角度来讲,人们也称状态为隐状态(hidden state ),而称观测为显状态( visible state )

为什么叫“马尔可夫模型”?是因为它满足马尔可夫假设

马尔可夫假设认为:每件事情的发生概率仅与前一件事有关

当有多个满足上述假设的事件形成串联时,就构成了马尔可夫链,在NLP的领域中就称为一个二元语法模型

注:

一元语法模型:
我考上大学只与考试当天的我有关,与前一天模拟考的我没有半毛钱关系 二元语法模型:
我考上大学与我前一天模拟考的我有关

书接上回

我们先做一些约定:

Qhidden为所有隐藏状态种类的合集,有N种

例如我们之前定义了七个标签(https://www.cnblogs.com/DAYceng/p/14923065.html),那么N = 7

Vobs表示可观测的序列的合集(这里由汉字组成)

其中,V为单个的字,M为已知字的个数

有一串自然语言文本O,共T个字,则观测合集可表示为

而观测到的实体对应的实体标记就是隐状态合集I

I与O一一对应并且长度一致

注:常称T为时刻,如上式中共有T个时刻(T个字)

HMM的假设

图片出处:https://github.com/aespresso/a_journey_into_math_of_ml

假设一:

当前第个隐状态(实体标签)只跟前一时刻的隐状态(实体标签)有关,连续多个状态构成隐马尔可夫链I(隐状态合集),与除此之外的其他隐状态无关。

例如,上图中:蓝色的部分指的是只与有关,而与蓝色区域之外的所有内容都无关,而指的是隐状态时刻转向t时刻的概率。

假设二:

观测独立的假设,我们上面说过,HMM模型中是由隐状态序列(实体标记)生成可观测状态(可读文本)的过程,观测独立假设是指在任意时刻观测只依赖于当前时刻的隐状态i,与其他时刻的隐状态无关。

例如上图中:粉红色的部分指的是只与有关,跟粉红色区域之外的所有内容都无关。

至此,我们确定了状态与观测之间的关系。

接下来将介绍HMM用于模拟时序序列生成过程的三个要素(即HMM模型的三个参数):

  • 初始状态概率向量
  • 状态转移概率矩阵
  • 发射概率矩阵

初始状态概率向量

初始隐状态概率通常用π表示(不是圆周率!!

该表达式的含义:

自然语言序列的第一个字的实体标签是的概率,即初始隐状态概率

而初始状态可表示如下:p(y1丨π),给定π,初始状态y1的取值分布就确定了

状态转移概率矩阵

初始状态确定之后,如何转移到初始状态的下一个状态呢?

还记得马尔可夫假设第一条吗?t+1时刻的状态只取决于t时刻状态

我们上面提到了指的是隐状态时刻转向时刻的概率

比如说我们现在实体标签一共有种, 也就是(注意是所有可能的实体标签种类的集合), 也就是

(注意我们实体标签编号从算起)。

假设在时刻任何一种实体标签都可以在时刻转换为任何一种其他类型的实体标签

由排列组合不难得出以下结论:总共可能的转换的路径有, 所以我们可以做一个的矩阵来表示所有可能的隐状态转移概率.

图片出处:https://github.com/aespresso/a_journey_into_math_of_ml

如图所示即为状态转移概率矩阵,设矩阵为矩阵, 则表示矩阵中第i行第j列:

该表达式的含义:

某时刻实体具有一个标签,而下一时刻该标签转换到某标签的概率,即时刻实体标签为, 而在时刻实体标签转换到的概率

发射概率矩阵

回到最初的问题,有了(隐)状态yt之后,如何确定观测xt的概率分布呢?

根据尔可夫假设第二条,任意时刻观测只依赖于当前时刻的隐状态, 也叫做发射概率,描述了隐状态生成观测结果的过程

设我们的字典里有个字,

(注意这里下标从0算起, 所以最后的下标是, 一共有种观测), 则每种实体标签(隐状态)可以生成种不同的汉字(也就是观测), 这一过程可以用一个发射概率矩阵来表示, 它的维度是

图片出处:https://github.com/aespresso/a_journey_into_math_of_ml

设这个矩阵为矩阵, 则表示矩阵中第行第列:

该表达式的含义:

时刻由实体标签(隐状态)生成汉字(观测结果)的概率.

至此,HMM的概念部分基本介绍完毕

【NLP学习其二】什么是隐马尔可夫模型HMM?的更多相关文章

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

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

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

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

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

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

  4. 隐马尔科夫模型HMM

    崔晓源 翻译 我们通常都习惯寻找一个事物在一段时间里的变化规律.在很多领域我们都希望找到这个规律,比如计算机中的指令顺序,句子中的词顺序和语音中的词顺序等等.一个最适用的例子就是天气的预测. 首先,本 ...

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

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

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

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

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

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

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

  9. 隐马尔可夫模型HMM与维特比Veterbi算法(二)

    隐马尔可夫模型HMM与维特比Veterbi算法(二) 主要内容: 前向算法(Forward Algorithm) 穷举搜索( Exhaustive search for solution) 使用递归降 ...

  10. 隐马尔可夫模型HMM与维特比Veterbi算法(一)

    隐马尔可夫模型HMM与维特比Veterbi算法(一) 主要内容: 1.一个简单的例子 2.生成模式(Generating Patterns) 3.隐藏模式(Hidden Patterns) 4.隐马尔 ...

随机推荐

  1. Java中如何保证线程顺序执行

    只要了解过多线程,我们就知道线程开始的顺序跟执行的顺序是不一样的.如果只是创建三个线程然后执行,最后的执行顺序是不可预期的.这是因为在创建完线程之后,线程执行的开始时间取决于CPU何时分配时间片,线程 ...

  2. 基于 el-form 封装一个依赖 json 动态渲染的表单控件

    nf-form 表单控件的功能 基于 el-form 封装了一个表单控件,包括表单的子控件. 既然要封装,那么就要完善一些,把能想到的功能都要实现出来,不想留遗憾. 毕竟UI库提供的功能都很强大了,不 ...

  3. 日常Bug排查-系统失去响应-Redis使用不当

    日常Bug排查-系统失去响应-Redis使用不当 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. Bug现场 开发反应线上系统出现失去响 ...

  4. MSSQL·备份数据库中的单表

    阅文时长 | 0.11分钟 字数统计 | 237.6字符 主要内容 | 1.引言&背景 2.声明与参考资料 『MSSQL·备份数据库中的单表』 编写人 | SCscHero 编写时间 | 20 ...

  5. too much recursion

    今天在火狐浏览器上调试swagger接口遇到一个浏览器报错: too much recursion 刚开始以为接口出问题了,但是调试之后发现,后台有数据返回,往下一拉,看到了差不多两千多条数据,一下子 ...

  6. 探索专有领域的端到端ASR解决之道

    摘要:本文从<Shallow-Fusion End-to-End Contextual Biasing>入手,探索解决专有领域的端到端ASR. 本文分享自华为云社区<语境偏移如何解决 ...

  7. Zabbix 自动发现并监控磁盘IO、报警 引言

    引言 Zabbix并没有提供模板来监控磁盘的IO性能,所以我们需要自己来创建一个,由于一台服务器中磁盘众多,如果只有一两台可以手动添加,但服务集群达到几十那就非常麻烦,因此需要利用自动发现这个功能,自 ...

  8. Git工作中的使用

    Git工作中的使用 2019-01-16 14:29:31 雯雯木 阅读数 207更多 分类专栏: 自动化测试   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...

  9. Hive 配置项详解

    hive.ddl.output.format: hive的ddl语句的输出格式, 默认是text,纯文本,还有json格式,这个是0.90以后才出的新配置: hive.exec.script.wrap ...

  10. 云计算OpenStack---创建实例(11)

    创建实例时,需要先创建网络及实例类型等其它配置: 一.创建虚拟网络(Self-service network) 网络概述图: 网络连接图: 1.创建self-service网络 (1)加载系统变量: ...