【机器学习】隐马尔可夫模型及其三个基本问题(一)

  • HMM模型
    • 1、HMM模型概述
    • 2、HMM的三个基本问题
    • 3、HMM问题实例
  • 参考资料

隐马尔可夫模型(Hidden Markov Model,HMM)是一种重要的有向图模型,使用隐马尔可夫模型的问题一般需要两个特征( 参考资料1):(1)问题是基于时间序列或状态序列的。(2)问题中有两种数据,一种是观测序列,即我们能够观测到的序列;一种是状态序列,即隐藏的、不可被观测的但决定对应的观测值的序列。

HMM模型

1、HMM模型概述

假设系统在NNN个状态之间切换,状态空间为Q={q1,q2,⋯ ,qN}Q = \left\{ {{q_1},{q_2}, \cdots ,{q_N}} \right\}Q={q1​,q2​,⋯,qN​}。
观测值的可能取值有MMM个,其集合为V={v1,v2,⋯ ,vM}V = \left\{ {{v_1},{v_2}, \cdots ,{v_M}} \right\}V={v1​,v2​,⋯,vM​}。
目前有一组长度为nnn的状态序列Y={y1,y2,⋯ ,yn}Y = \left\{ {{y_1},{y_2}, \cdots ,{y_n}} \right\}Y={y1​,y2​,⋯,yn​}。
对应的观测序列为X={x1,x2,⋯ ,xn}X = \left\{ {{x_1},{x_2}, \cdots ,{x_n}} \right\}X={x1​,x2​,⋯,xn​}。
其中任意一个观测值xt∈V{x_t} \in Vxt​∈V,任意一个状态值yt∈Q{y_t} \in Qyt​∈Q。为了简化模型,HMM做出两个假设:一个是观测值xtx_txt​由对应的状态值yty_tyt​确定,另一个是ttt时刻的状态值yty_tyt​仅依赖于t−1t-1t−1时刻的状态值yt−1y_{t-1}yt−1​(参考资料2)。HMM模型的图结构为:

三个重要概率概率:
(1)状态转移概率
ttt时刻的隐含状态为yt=qi{y_t} = {q_i}yt​=qi​的前提下,t+1t+1t+1时刻的隐含状态为yt+1=qj{y_{t+1}} = {q_j}yt+1​=qj​,其中i,j∈[0,N]i,j \in \left[ {0,N} \right]i,j∈[0,N]。则从时刻ttt到时刻t+1t+1t+1的状态转移概率aija_{ij}aij​为:aij=P(yt+1=qj∣yt=qi){a_{ij}} = P\left( {{y_{t + 1}} = {q_j}\left| {{y_t} = {q_i}} \right.} \right)aij​=P(yt+1​=qj​∣yt​=qi​)。
(2)输出观测概率
ttt时刻的隐含状态为yt=qi{y_t} = {q_i}yt​=qi​的前提下,对应的观测值为xt=vj{x_t} = {v_j}xt​=vj​,其中i∈[0,N]i\in \left[ {0,N} \right]i∈[0,N],j∈[0,M]j \in \left[ {0,M} \right]j∈[0,M]。则此刻观测值vjv_jvj​在隐含状态qiq_iqi​生成的概率bijb_{ij}bij​为:bij=P(xt=vj∣yt=qi){b_{ij}} = P\left( {{x_t} = {v_j}\left| {{y_t} = {q_i}} \right.} \right)bij​=P(xt​=vj​∣yt​=qi​)。
(3)初始状态概率:初始隐含状态为状态空间中第iii个状态的概率πi{\pi _i}πi​为:πi=P(y1=qi){\pi _i} = P\left( {{y_1} = {q_i}} \right)πi​=P(y1​=qi​)。其中i∈[0,N]i\in \left[ {0,N} \right]i∈[0,N]。

三个重要的矩阵:
(1)状态转移矩阵:A=[aij]N×NA = {\left[ {{a_{ij}}} \right]_{N \times N}}A=[aij​]N×N​
(2)输出观测矩阵:B=[bij]N×MB = {\left[ {{b_{ij}}} \right]_{N \times M}}B=[bij​]N×M​
(3)初始状态概率分布矩阵:∏=[πi]N×1\prod = {\left[ {{\pi _i}} \right]_{N \times 1}}∏=[πi​]N×1​

HMM模型由状态空间,观测值集合与上述三个矩阵确定,通常表示为:λ=[A,B,∏]\lambda = \left[ {A,B,\prod } \right]λ=[A,B,∏]。

2、HMM的三个基本问题

(1)评估观测序列概率
给定模型λ=[A,B,∏]\lambda = \left[ {A,B,\prod } \right]λ=[A,B,∏]和观测序列X={x1,x2,⋯ ,xn}X = \left\{ {{x_1},{x_2}, \cdots ,{x_n}} \right\}X={x1​,x2​,⋯,xn​},计算模型λ\lambdaλ下观测序列XXX出现的概率P(X∣λ)P\left( {X\left| \lambda \right.} \right)P(X∣λ)。

(2)模型参数学习问题
给定观测序列X={x1,x2,⋯ ,xn}X = \left\{ {{x_1},{x_2}, \cdots ,{x_n}} \right\}X={x1​,x2​,⋯,xn​},估计模型λ=[A,B,∏]\lambda = \left[ {A,B,\prod } \right]λ=[A,B,∏],使得该模型下观测序列的条件概率P(X∣λ)P\left( {X\left| \lambda \right.} \right)P(X∣λ)最大。

(3)解码问题(预测问题)
给定模型λ=[A,B,∏]\lambda = \left[ {A,B,\prod } \right]λ=[A,B,∏]和观测序列X={x1,x2,⋯ ,xn}X = \left\{ {{x_1},{x_2}, \cdots ,{x_n}} \right\}X={x1​,x2​,⋯,xn​},求最可能出现的对应状态序列max⁡Q{P(Q∣X,λ)}{\max _Q}\left\{ {P\left( {Q\left| {X,\lambda } \right.} \right)} \right\}maxQ​{P(Q∣X,λ)}

3、HMM问题实例

盒子与球模型(参考资料3):假设有4个盒子,每个盒子内都装有红色和白色两种球若干个,盒子内的红白球数如下:

盒子 1 2 3 4
红球数 5 3 6 8
白球数 5 7 4 2

开始,从4个盒子中等概率地选取一个盒子,从这个盒子中随机抽取一个球,记录颜色后放回,然后转移到下一个盒子,规则是:当前盒子为盒子1时,那么下一个盒子一定是盒子2,当前盒子为2或3时,分别以0.4和0.6的概率转移到左边或右边的盒子,当前盒子为盒子4时,这以0.5的概率留在盒子4或转移到盒子3.。
由上述问题可知:
隐含状态集合为:Q=[box1,box2,box3,box4]Q = [{\rm{box1,box2,box3,box4}}]Q=[box1,box2,box3,box4]

观测值集合为:V=[red,white]V = \left[ {red,white} \right]V=[red,white]

状态转移矩阵为:A=[00.400100.4000.600.5000.60.5]A = \left[ {\begin{matrix} {\begin{matrix} {\begin{matrix} {\begin{matrix} 0\\ {0.4}\\ 0\\ 0 \end{matrix}}&{\begin{matrix} 1\\ 0\\ {0.4}\\ 0 \end{matrix}} \end{matrix}}&{\begin{matrix} 0\\ {0.6}\\ 0\\ {0.5} \end{matrix}} \end{matrix}}&{\begin{matrix} 0\\ 0\\ {0.6}\\ {0.5} \end{matrix}} \end{matrix}} \right]A=⎣⎢⎢⎡​00.400​​100.40​​​00.600.5​​​000.60.5​​⎦⎥⎥⎤​

输出观测矩阵为:B=[0.50.30.60.80.50.70.40.2]B = \left[ {\begin{matrix} {\begin{matrix} {0.5}\\ {0.3}\\ {0.6}\\ {0.8} \end{matrix}}&{\begin{matrix} {0.5}\\ {0.7}\\ {0.4}\\ {0.2} \end{matrix}} \end{matrix}} \right]B=⎣⎢⎢⎡​0.50.30.60.8​​0.50.70.40.2​​⎦⎥⎥⎤​

初始状态概率分布矩阵为:∏=[0.25,0.25,0.25,0.25]T\prod = {\left[ {0.25,0.25,0.25,0.25} \right]^T}∏=[0.25,0.25,0.25,0.25]T

参考资料

1、https://www.cnblogs.com/pinard/p/6945257.html
2、《机器学习》周志华
3、《统计学习方法》李航

【机器学习】隐马尔可夫模型及其三个基本问题(一)相关推荐

  1. 【机器学习】隐马尔可夫模型及其三个基本问题(四)状态序列预测算法及python实现

    [机器学习]隐马尔可夫模型及其三个基本问题(四)状态序列预测算法及python实现 一.维特比算法 二.python实现 参考资料 隐马尔可夫模型状态序列预测问题是指给定模型 λ=[A,B,∏]\la ...

  2. 【机器学习】隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现

    [机器学习]隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现 一.一些概率与期望值的计算 二.非监督学习方法(Baum-Welch算法) 三.python实现 隐马尔可夫模型参数 ...

  3. 【机器学习】隐马尔可夫模型及其三个基本问题(二)观测序列概率计算算法及python实现

    [机器学习]隐马尔可夫模型及其三个基本问题(二)观测序列概率计算算法及python实现 一.前向算法 二.后向算法 三.前向-后向算法的python实现 参考资料 隐马尔可夫(HMM)模型的第一个基本 ...

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

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

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

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

  6. 隐马尔科夫模型,三个基本问题及相应算法

    隐马尔科夫模型基本问题及其相应的算法: 1.评估问题:概率计算问题:给定模型和观测序列,计算在模型下观测序列出现的概率. 前向.后向算法解决的是一个评估问题,即给定一个模型,求某特定观测序列的概率,用 ...

  7. 隐马尔可夫模型的三个基本问题(例子说明)

    例子:有放回的从N个盒子拿红白球的问题. 模型参数λ(A,B,π),观测序列表示为O(o1,o2,-,oT) A表示状态转移矩阵 B表示观测矩阵 π表示初始状态概率 假设目前的观测序列为(红,红,白) ...

  8. 机器学习笔记之隐马尔可夫模型(六)解码问题

    机器学习笔记之隐马尔可夫模型--解码问题 引言 解码问题介绍 解码问题分析 引言 上一节介绍了使用狭义EM算法对模型参数λ\lambdaλ.本节将介绍使用维特比算法(Viterbi)处理解码问题(De ...

  9. 机器学习算法总结(七)——隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)...

    概率图模型是一类用图来表达变量相关关系的概率模型.它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的变表是变量间的概率相关关系.根据边的性质不同,可以将概率图模型分为两类:一类是 ...

最新文章

  1. RHEL5中YUM命令解决RPM包依赖性
  2. c语言万年历闹钟程序,c语言编写的万年历 有平年闰年 有闹钟功能.docx
  3. easyVMAF:在自然环境下运行VMAF
  4. 数学--数论--HDU 12151七夕节
  5. 商品pid是什么意思_0基础搞懂自动驾驶传统算法与深度学习的鸿沟-PID控制算法与MLP优化方法...
  6. Java PushbackInputStream markSupported()方法与示例
  7. 注解java_Java注解教程及自定义注解
  8. 在手语世界里,健听人、数字人与听障人的交织
  9. 用java网络编程中的TCP方式上传文本文件及出现的小问题
  10. Uber如何使用Mesos的?答曰:和Cassandra一起用
  11. android开发我的新浪微博客户端-载入页面UI篇(1.1)
  12. zbbz加载成功用不了_cad怎么加载zbbz插件(CAD坐标插件ZBBZ自定义怎么用?)
  13. 荣耀盒子显示服务器繁忙错误码7,【沙发管家】华为荣耀盒子的三种解决方式...
  14. (鬼刀)记一次异步加载Python爬虫分析
  15. IconFont图标库
  16. MPEG4视频压缩编码技术详解
  17. 史上最全的大数据学习资源(Awesome Big Data)
  18. sqlserver 企业版下载地址
  19. HTTP Live Streaming直播(iOS直播)技术分析与实现
  20. ubuntu录制屏幕及视频处理

热门文章

  1. 海西小霸王TD-299Z厂家10芯(密码 2.F2.4.蓝键.下.8)
  2. 【WPF】WPF 命令
  3. IT人的爱情生活散记
  4. 大数据分析具备哪些特点
  5. 物联卡可以持续使用的时间有多久?
  6. 基于CSS实现的尖角提示符
  7. 数据结构之广义表的相关知识点
  8. [运维笔记] - (命令).Windows server常用网络相关命令
  9. 判断素数的java程序_Java代码实例 判断这个数是否是素数
  10. 智乃的01串打乱(思维+暴力)