1 向前算法原理描述


向前算法解决:问题1(似然度问题):给一个HMM λ=(A,B) 和一个观察序列O,确定观察序列的似然度问题 P=(O|λ) 。

对于马尔可夫链,表面观察和实际隐藏是相同的,只需要标记吃冰淇淋数目“3 1 3”的状态,把加权(弧上)的对应概率相乘即可。而隐马尔可夫模型就不是那么简单了,因为状态是隐藏的,我们并不知道隐藏的状态序列是什么?

简化下问题:假如我们知道天气热冷状况,并且知道小明吃冰淇淋的数量,我们去观察序列似然度。如:对于给定的隐藏状态序列“hot hot cold”我们来计算观察序列“3 1 3”的输出似然度。

如何进行计算?首先,隐马尔可夫模型中,每个隐藏状态只产生一个单独的观察即一一映射,隐藏状态序列与观察序列长度相同,即:给定这种一对一的映射以及马尔可夫假设,对于一个特定隐藏状态序列  以及一个观察序列  观察序列的似然度为:

故从隐藏状态“hot hot cold”到所吃冰淇淋观察序列“3 1 3”的向前概率为:

P(3 1 3|hot hot cold)=P(3|hot)*P(1|hot)*P(3|cold)=0.4*0.2*0.1=0.008

实际上,隐藏状态序列“hot hot cold”是我们的假设,并不知道隐藏状态序列,我们要考虑所有可能的天气序列,如此一来,我们将计算所有可能的联合概率,计算将会变得特别复杂。

我们来计算天气序列Q生产一个特定的冰淇淋事件序列O的联合概率:

如果隐藏序列只有一个是“hot hot cold”,那么我们的冰淇淋观察“3 1 3”和一个可能的隐藏状态“hot hot cold”的联合概率为:

P(313|hothotcold)=P(hot|start)*P(hot|hot)*P(hot|cold)*P(3|hot)*P(1|hot)*P(3|cold)=0.8*0.7*0.30.4*0.2*0.1=0.001344

P(3 1 3)= P(313| cold cold cold)+ P(313| cold cold hot) + P(313| hot hot cold ) + P(313| cold hot cold) + P(313|hot cold cold) + P(313| hot hot hot) + P(313| hot cold hot) + P(313| cold hot hot)

对于具有N个隐藏状态和T个观察序列,将会有  个可能隐藏序列,在实际中T往往很大,比如文本处理中可能有数万几十万个词汇,计算量将是指数上升。在隐含马尔可夫模型中有种向前的算法有效代替这种指数增长的复杂算法,大大降低了复杂度。实验证明向前算法的复杂度是  。

2 向前算法的实例解析


向前算法是一种动态规划算法,当得到观察序列的概率时候,它使用一个表来存储中间值。向前算法也使用对于生成观察序列的所有可能的隐藏状态的路径上的概率求和的方法计算观察概率。在向前算法中横向表示观察序列,纵向表示状态序列。

下图是对于给定的隐藏状态序列“hot hot cold”计算观察序列“3 13 ”的似然度的向前网格的例子。其中:

1
2
3
4
5
横向:时间上的观察序列,纵向:空间上的状态序列
方框:观察状态         圆框:隐藏状态
续框:不合法转移       实线上值:加权概率

每个单元 表示对于给定的自动机λ,在前面t个观察之后,在状态j的概率:  ,其中 表示第t个状态是状态j的概率。如: 表示状态1即数3时,q1的概率。

上面公式的3个因素:

向前网格如下:

在时间1和状态1的向前概率:

(从状态cold开始吃3根冰淇淋的似然度0.02)

在时间1和状态2的向前概率:

(从状态hot始吃3根冰淇淋的似然度0.32)

在时间2和状态1的向前概率:

(从开始到cold再到cold以及从开始到hot再到cold的天气状态,吃冰淇淋3 1 的观察似然度0.54)

在时间2和状态2的向前概率:

(从开始到cold再到hot以及从开始到hot再到hot的天气状态,吃冰淇淋3 1 的观察似然度0.0464)

用同样方法,我们可以计算时间步3和状态步1的向前概率以及时间步3和状态步2的概率等等,以此类推,直到结束。显而易见,使用向前算法来计算观察似然度可以表示局部观察似然度。这种局部观察似然度比使用联合概率表示的全局观察似然度更有用。

3 向前算法定义

向前算法的递归定义:

【NLP】揭秘马尔可夫模型神秘面纱系列文章(三)相关推荐

  1. 数学之美-隐含马尔可夫模型-笔记

    <数学之美>吴军 著 第二版 --读书笔记 原理 通信模型: Created with Raphaël 2.1.2信息.上下文信息.上下文传递的信息传递的信息接收的信息接收的信息(s1,s ...

  2. 从零开始学NLP(八) 隐马尔科夫模型(超详细)

    目录 前言 一.HMM基础 二.HMM定义 三.HMM的三个基本问题 1.概率计算问题 2. 学习问题 3.预测问题 四.HMM中的参数估计 1.前向算法 2.后向算法 五.HMM实例 总结 前言 上 ...

  3. 隐马尔可夫模型的三个基本问题

    目录 写在前面的话 隐马尔可夫模型(HMM) 隐马尔可夫模型的三个基本问题 写在前面的话 隐马尔可夫模型(HMM)的三个基本问题,我查阅相关资料有一些自己的理解,如有错误请多指正~ 参考资料: 如何用 ...

  4. 10_隐马尔科夫模型HMM1_统计学习方法

    文章目录 一.几个基本概念 1.隐马尔可夫模型 2.马尔科夫链 3.随机过程 4.马尔科夫性质 二.隐马尔科夫模型 1.隐马尔科夫模型的引入 2.隐马尔科夫模型定义 3.隐马尔科夫模型的两个假设 4. ...

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

    隐马尔科夫模型,Hidden Marcov Model,是可用于标注问题的统计学习模型,描述由隐藏的马尔科夫链随机生成观测序列的过程,属于生成模型,是一种比较重要的机器学习方法,在语音识别等领域有重要 ...

  6. 学习笔记:马尔可夫模型

    马尔可夫模型 马尔可夫 安德雷·马尔可夫(Andrey Markov),俄国数学家,在概率论.数理统计和随机过程等领域做出了重要贡献,20世纪初期提出了一种数学模型,即马尔可夫过程Markov Pro ...

  7. 隐马尔科夫模型、三个基本问题、三个训练算法

    参考一篇"机器学习研究会"的文章与宗庆后的<统计自然语言模型>,督促自己回顾一下HMM模型知识为面试做准备. 这次学习会讲了隐马尔科夫链,这是一个特别常见的模型,在自然 ...

  8. HMM学习笔记2 隐马尔科夫模型与前向算法

    一 序 本系列文章摘自 52nlp(我爱自然语言处理: http://www.52nlp.cn/),原文链接在 HMM 学习最佳范例,有大佬做了二次整理,参见:https://blog.csdn.ne ...

  9. 【NLP】用于语音识别、分词的隐马尔科夫模型HMM

    大家好,今天介绍自然语言处理中经典的隐马尔科夫模型(HMM).HMM早期在语音识别.分词等序列标注问题中有着广泛的应用. 了解HMM的基础原理以及应用,对于了解NLP处理问题的基本思想和技术发展脉络有 ...

  10. NLP复习资料(3)-六~七章:马尔科夫模型与条件随机场、词法分析与词性标注

    NLP复习资料 1.第六章 马尔科夫模型与条件随机场 2.第七章 词法分析与词性标注 国科大,宗老师<自然语言处理>课程复习笔记,个人整理,仅供参考. 1.第六章 马尔科夫模型与条件随机场 ...

最新文章

  1. 中奖名单,老读者请看过来!
  2. UA MATH567 高维统计II 随机向量6 亚高斯随机向量的应用: 半正定规划
  3. micropython开发idethonny_ESP32 Micropython开发利器Thonny IDE介绍
  4. 阻击恶意软件--清除和保护你的网站的小技巧
  5. 基于matlab地球物理,基于MATLAB的《地球物理资料处理和解释》教学研究
  6. 电商系统的商品流水记录
  7. WordPress 主题教程 #3:开始 Index.php
  8. Kinect v1在windows上的使用教程
  9. 多进程服务器(python 版)
  10. php fatal error 500,PHP在Linux下出现HTTP ERROR 500解决方法
  11. 由a标签的onclick影出来的问题
  12. python中不同进制的整数之间可以直接运算_python学习第三天总结(进制与位运算,)...
  13. 计算机机房中使用ups的作用是什么,机房监控UPS的作用是什么?你可知道?
  14. 互联网大厂数据分析面试常见问题及解法,建议收藏
  15. 2021年饶州中学高考成绩查询,2019鄱阳饶州中学录取分数线
  16. 360浏览器强制使用极速模式
  17. ... ...WOW S4套装
  18. 如何用cmd链接linux,如何在Windows cmd 下使用linux的命令
  19. 家·谱——人脸识别家谱系统
  20. 技术与市场脱钩?90%的程序员都错了!

热门文章

  1. Linux 异步IO
  2. Eclipse Java注释模板设置详解以及版权声明
  3. 集合框架(数据结构之栈和队列)
  4. thinkphp对数据库操作有哪些内置函数
  5. 程序员的恶性循环:加班-没空学习-老是写同等水平代码-无法提升代码质量-老是出BUG-老是需要修改-加班-......
  6. 生成一定范围内的互不相同的随机数的方法比较
  7. 交出20分钟后就得到面试通知的一份答卷
  8. python在同一行输入n个数转义符_python:转义符\
  9. android ajax chrome,chrome浏览器ajax请求状态200,response为空的探索
  10. eplan窗口宏与符号宏是什么_如何使用EPLAN里的宏值集?