隐马尔可夫(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. lombok入门

    pom.xml加入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lo ...

  2. php5.6+apache2.4+linux搭建php环境

    前言 最近突然想搭建个人博客,尽管笔者擅长java-web,但综合各种原因,于是选择了大众化的php+mysql搭建个人博客.对于php,只闻其大名,但从未学过,于是,笔者将从php环境搭建开始,到服 ...

  3. oracle网页客户端工具

    Oracle数据库的管理相较于其他数据库,是比较麻烦的,客户端工具的安装都要花一些时间,目前有一款treesoft软件,通过网页的方式管理Oracle. 功能包括:数据库的展示,库表的展示,表字段结构 ...

  4. Android DiskLruCache完全解析,硬盘缓存的最佳方案

    Android DiskLruCache完全解析,硬盘缓存的最佳方案 概述   记得在很早之前,我有写过一篇文章Android高效加载大图.多图解决方案,有效避免程序OOM,这篇文章是翻译自Andro ...

  5. 弹窗中使用jquery ui的autocomplete自动完成插件无效果 实际是被遮挡了

    在普通页面上使用jquery ui的autocomplete自动完成插件时正常显示提供选择的下拉框,但是放到弹窗中的时候就无法显示这个选择的下拉框,其它效果正常: 估计是被弹出窗遮挡了,网络搜索了jq ...

  6. CefSharp F12打开DevTools查看console

    winform嵌入chrome浏览器,修改项目属性 生成 平台为x86 1.nuget安装cefsharp 2.实例化浏览器 private void Form1_Load(object sender ...

  7. freecodecamp 基础算法题笔记

    数组与字符串的转化 字符串转化成数组 reverse方法翻转数组顺序 数组转化成字符串. function reverseString(str) { a= str.split("" ...

  8. DOM节点树和元素树--深度遍历

    我们在阅读JS高级程序设计的时候,提到了节点树的概念.比如说: elem.parentNode---找elem的父节点: elem.childNodes---找elem的所有的直接子节点: elem. ...

  9. cocos2d-x学习网站

    非常好的学习cocos2d-x网站 强烈推荐!---游戏蛮牛

  10. Android布局属性

    LinearLayout布局: 线性版面配置,在这个标签中,所有元件都是按由上到下的排队排成的.在这个界面中,我们应用了一个 LinearLayout的布局,它是垂直向下扩展的 ,所以创建的布局XML ...