隐马尔可夫(HMM)模型

  隐马尔可夫模型,是一种概率图模型,一种著名的有向图模型,一种判别式模型。主要用于时许数据建模,在语音识别、自然语言处理等领域广泛应用。

  概率图模型分为两类,一类:使用有向无环图表示变量间的依赖关系,称为有向图模型或者贝叶斯网;第二类:使用无向图表示变量间的依赖关系,称为无向图模型或者马尔可夫网。

  判别式模型:考虑条件分布P(Y, R | O),生成式模型:考虑联合分布P(Y, R, O)

HMM三个假设

  • 当前观测值只由当前隐藏状态决定
  • 当前隐藏状态由前一个隐藏状态决定
  • 隐藏状态之间转移概率不随时间改变

随机过程中某一时刻的状态st的概率分布为:

p(st|st-1,st-2,...,s0)=p(st|st-1)

即:t 时刻的状态仅依赖于 t-1 时刻的状态,与其余状态无关,这就是所谓的“马尔可夫链”

在马尔可夫链中,每一圆圈代表相应时刻的状态,有向边代表可能的状态转移,权重表示状态转移的概率

HMM模型结构图

HMM模型五元组

HMM模型可以用五元组(O, S, A, B, π)表示。其中

  • O: {o0, o1, ..., on} 表示观测系列,是系统的外在可观测变量。
  • S: {s0, s1, ..., sn} 表示隐状态序列,是导致系统外在表现变化的内因。
  • A: {aij = p(s| si)} 表示状态转移概率。
  • B: {bij = p(o| si)} 表示输出概率,又称发射概率
  • π: {π0, π1, ..., πm} 表示初始状态概率。

HMM三类问题

根据以上HMM模型五元组表示,我们可以归纳出HMM模型解决的三类主要问题。

一、评估问题

已知:状态转移矩阵 A, 初始状态概率 π,输出矩阵 B,观测序列

求:求该观测序列的可能性

解决算法:向前(forward)算法或者向后(backward)算法

二、解码问题

已知:状态转移矩阵A,初始状态概率 π,输出矩阵B,观测序列

求:最有可能产生该观测序列的隐藏状态序列

解决算法:维特比(Viterbi)算法,一种动态规划算法

三、学习问题

已知:很多观测序列

求:估计HMM模型参数的可能取值

解决算法:鲍姆韦尔奇(Baum-Welch)算法

隐马尔可夫(HMM)模型的更多相关文章

  1. 深入理解隐马尔可夫(HMM)模型

    1.安装依赖包hmmlearn 直接pip install hmmlearn可能会报错(安装这个模块需要使用C环境编译) 可以尝试用 conda install -c omnia hmmlearn安装 ...

  2. 隐马尔可夫(HMM)/感知机/条件随机场(CRF)----词性标注

    笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 7. 词性标注 7.1 词性标注概述 什么是词性 在语言学上,词性(Par-Of- ...

  3. 隐马尔可夫(HMM)、前/后向算法、Viterbi算法

    HMM的模型  图1 如上图所示,白色那一行描述由一个隐藏的马尔科夫链生成不可观测的状态随机序列,蓝紫色那一行是各个状态生成可观测的随机序列 话说,上面也是个贝叶斯网络,而贝叶斯网络中有这么一种,如下 ...

  4. [转] 隐马尔可夫(HMM)、前/后向算法、Viterbi算法 再次总结

    最近工作需要优化LSTM-CRF经典模型中的维特比解码部分,发现对维特比一直是个模糊概念,没有get到本质,搜了一圈,发现一篇好文,mark 博主不让转载,mark个地址吧: https://blog ...

  5. 机器学习(九)隐马尔可夫模型HMM

    1.隐马尔可夫HMM模型 一个隐马尔可夫模型可以表示为\[\lambda=\{A,B,\pi\}\]具体就不说了,比较基本. 2.HMM模型的三个基本问题 1.概率计算问题:给定\(\lambda\) ...

  6. Python实现HMM(隐马尔可夫模型)

    1. 前言 隐马尔科夫HMM模型是一类重要的机器学习方法,其主要用于序列数据的分析,广泛应用于语音识别.文本翻译.序列预测.中文分词等多个领域.虽然近年来,由于RNN等深度学习方法的发展,HMM模型逐 ...

  7. 一文搞懂HMM(隐马尔可夫模型)

    什么是熵(Entropy) 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度.熵越大,系统越无序,意味着系统结构和运动的不确定和无规则:反之,,熵越小,系统越有序,意味着具有确定和有 ...

  8. HMM基本原理及其实现(隐马尔科夫模型)

    HMM(隐马尔科夫模型)基本原理及其实现 HMM基本原理 Markov链:如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程.马尔可夫链是时间和状态 ...

  9. 转:隐马尔可夫模型(HMM)攻略

    隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价 ...

  10. [综]隐马尔可夫模型Hidden Markov Model (HMM)

    http://www.zhihu.com/question/20962240 Yang Eninala杜克大学 生物化学博士 线性代数 收录于 编辑推荐 •2216 人赞同 ×××××11月22日已更 ...

随机推荐

  1. 啰里吧嗦jvm

    一.为什么要了解jvm 有次做项目的时候,程序run起来的时候,总是报OutOfMemoryError,有老司机教我们用jconsole.exe看内存溢出问题 就是这货启动jconsole后,发现一个 ...

  2. java 数据脱敏

    所谓数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护.在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份 ...

  3. tcpcopy简介

    本文内容是整理自 王斌的博客(http://blog.csdn.net/wangbin579)和郑钧的博客(http://www.cnblogs.com/zhengyun_ustc),以便让自己可以有 ...

  4. CodeForces765B

    B. Code obfuscation time limit per test:2 seconds memory limit per test:512 megabytes input:standard ...

  5. android studio 加载libs

    eclipse 项目转 android studio libs  不能加载 导致不能导入 记录下:libs 放在和src 同路径 dependencies:增加 compile files('libs ...

  6. eventbus3-intellij-plugin插件搜不到

    一.eventbus3-intellij-plugin插件搜不到

  7. oracle 分组取第一行数据 ,查询sql语句

    oracle  分组取第一行数据 SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, t.* FR ...

  8. oracle exp dmp

    exp help=yconn scott/tiger;select * from tab;create table student(sno int, sname varchar2(10), sage ...

  9. 【Python】Java程序员学习Python(三)— 基础入门

    一闪一闪亮晶晶,满天都是小星星,挂在天上放光明,好像许多小眼睛.不要问我为什么喜欢这首歌,我不会告诉你是因为有人用口琴吹给我听. 一.Python学习文档与资料 一般来说文档的资料总是最权威,最全面的 ...

  10. eclipse安装lua

    单击Eclipse->Help->Install New Software… 在Work with中输入网址 Kepler - http://download.eclipse.org/re ...