人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型
人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型
人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法
人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态序列
人工智能里的数学修炼 | 隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数
目录
- 一、隐马尔可夫模型
- 二、隐马尔可夫模型的三组参数
- 三、 隐马尔可夫模型的三个基本问题
- 四、资源下载
概率图模型(probabilistic graphical model)是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即“变量关系图”。根据边的性质不同,概率图模型可大致分为两类:
第一类是使用有向无环图表示变量间的依赖关系,称为有向图模型或贝叶斯网(Bayesian network);
第二类是使用无向图表示变量间的相关关系,称为无向图模型或马尔可夫网(Markov network)
隐马尔可夫(hidden markov model, HMM)是结构最简单的动态贝叶斯网,这是一种著名的有向图模型,主要用于时序建模,在语音识别、自然语言处理等领域有着广泛的应用
一、隐马尔可夫模型
隐马尔可夫模型中的变量可以分为两组。
第一组是状态变量 y 1 , y 2 , . . . , y n {y_{1},y_{2},...,y_{n}} y1,y2,...,yn, 其中 y i ϵ Y y_{i}\epsilon Y yiϵY表示第 i i i个时刻系统的状态。通常假定状态变量是隐藏的、不可被观测的,因此状态变量又被称为隐变量。在隐马尔可夫模型中,系统通常在多个状态 s 1 , s 2 , . . . , s N {s_{1},s_{2},...,s_{N}} s1,s2,...,sN之间转换,因此状态变量 y i y_{i} yi的取值范围是有 N N N个可能取值的离散空间。
第二组是观测变量 x 1 , x 2 , . . . , x n {x_{1},x_{2},...,x_{n}} x1,x2,...,xn, 其中 x i ϵ X x_{i}\epsilon X xiϵX表示第 i i i时刻的观测值。观测变量通常是可以是连续型也可以是离散型,这里仅考虑离散型观测变量,并假定其取值范围为 X X X为 o 1 , o 2 , . . . , o M {o_{1},o_{2},...,o_{M}} o1,o2,...,oM。
隐马尔可夫模型的状态变量与观测变量的基本结构如下图所示
上图中的箭头表示了变量间的依赖关系,同时也解释了隐马尔可夫模型的两个重要假设
- 齐次马尔可夫链假设: t t t时刻的状态 y t y_{t} yt 仅依赖于 t − 1 {t-1} t−1时刻的状态 y t − 1 y_{t-1} yt−1,与其余状态无关,即系统下一时刻的状态仅由当前状态决定,不依赖于以往的任何状态
- 观测独立性假设: 在任一时刻,观测变量的取值仅依赖于状态变量,即 x t {x_{t}} xt由 y t {y_{t}} yt确定,与其他状态变量和观测变量无关
这两个假设大大简化了隐马尔可夫模型的复杂度,使其得到广泛应用
二、隐马尔可夫模型的三组参数
第一小节介绍了隐马尔可夫模型的基本图结构,但确定一个隐马尔可夫模型还需要三组参数
状态转移概率:模型在各个状态之间转移的概率,记为矩阵 A = [ a i j ] N × N A=[a_{ij}]_{N \times N} A=[aij]N×N, 其中
a i j = P ( y t + 1 = s j ∣ y t = s i ) , 1 ⩽ i , j ⩽ N a_{ij}=P(y_{t+1}=s_{j}|y_{t}=s_{i}), 1 \leqslant i,j \leqslant N aij=P(yt+1=sj∣yt=si),1⩽i,j⩽N 表示在任一时刻 t t t,若当前状态为 s i s_{i} si,下一时刻状态为 s j s_{j} sj的概率输出观测概率:模型根据当前状态获得各个观测值的概率,记为矩阵 B = [ b i j ] N × M B=[b_{ij}]_{N \times M} B=[bij]N×M, 其中
b i j = P ( x t = o j ∣ y t = s i ) , 1 ⩽ i ⩽ N , 1 ⩽ j ⩽ M b_{ij}=P(x_{t}=o_{j}|y_{t}=s_{i}), 1 \leqslant i \leqslant N, 1 \leqslant j \leqslant M bij=P(xt=oj∣yt=si),1⩽i⩽N,1⩽j⩽M表示在任一时刻 t t t,若状态为 s i {s_{i}} si,则观测值 o j {o_{j}} oj被获取的概率初始状态概率:模型在初始时刻各状态出现的概率,通常记为 π = ( π 1 , π 2 , . . . , π N ) \pi=(\pi_{1},\pi_{2},...,\pi_{N}) π=(π1,π2,...,πN), 其中
π i = P ( y 1 = s i ) \pi_{i}=P(y_{1}=s_{i}) πi=P(y1=si)即模型的初始状态为 s i s_{i} si的概率
通过指定上述三组参数 λ = { A , B , π } \lambda=\{A,B,\pi\} λ={A,B,π},就能确定一个隐马尔可夫模型,它按照如下过程产生观测序列 x 1 , x 2 , . . , x n {x_{1},x_{2},..,x_{n}} x1,x2,..,xn:
- 设置 t = 1 t=1 t=1,并根据初始状态概率 π \pi π选择初始状态 y 1 y_{1} y1;
- 根据状态 y t y_{t} yt和输出观测概率 B B B选择观测变量取值 x t x_{t} xt;
- 根据 y t y_{t} yt和状态转移矩阵 A A A转移模型状态,确定 y t + 1 y_{t+1} yt+1;
- 若 t < n t<n t<n,设置 t = t + 1 t=t+1 t=t+1, 并转到第2步,否则停止
三、 隐马尔可夫模型的三个基本问题
在实际应用中,人们常关注隐马尔可夫模型的三个基本问题:
- 生成观察序列概率:给定模型 λ = { A , B , π } \lambda=\{A,B,\pi\} λ={A,B,π}, 如何有效计算其产生观测序列 x = x 1 , x 2 , . . , x n x={x_{1},x_{2},..,x_{n}} x=x1,x2,..,xn的概率 P ( x ∣ λ ) P(x|\lambda) P(x∣λ)?换而言之,如何评估模型与观测序列之间的匹配程度。这个问题的求解需要用到前向后向算法,是HMM模型三个问题中最简单的
- 预测问题:给定模型 λ = { A , B , π } \lambda=\{A,B,\pi\} λ={A,B,π}和观测序列,如何找到与此观测序列最匹配的状态序列 y = y 1 , y 2 , . . . , y n y={y_{1},y_{2},...,y_{n}} y=y1,y2,...,yn?换言之,如何根据观测序列推断出隐藏的模型状态?这个问题的求解需要用到基于动态规划的维特比算法,这个问题是HMM模型三个问题中复杂度居中的算法
- 模型参数学习问题:给定观测序列 x = x 1 , x 2 , . . . , x n x={x_{1},x_{2},...,x_{n}} x=x1,x2,...,xn, 如何调整模型参数 λ = { A , B , π } \lambda=\{A,B,\pi\} λ={A,B,π}使得该序列出现的概率 P ( X ∣ λ ) P(X| \lambda) P(X∣λ)最大?即如何训练模型使得其能最好的描述观测数据?这个问题的求解需要用到基于EM算法的鲍姆-韦尔奇算法, 这个问题是HMM模型三个问题中最复杂的。
上述三个问题在实际应用中都有重要意义。例如许多任务需根据以往的观测序列 x = x 1 , x 2 , . . . , x n − 1 x={x_{1},x_{2},...,x_{n-1}} x=x1,x2,...,xn−1来推测当前时刻最有可能的观测值 x n x_{n} xn,这显然可以转化为求取概率 P ( x ∣ λ ) P(x|\lambda) P(x∣λ), 即上述第一个问题;在语音识别等任务中,观测值为语音信号,隐藏状态为文字,目标就是根据观测信号来推断最有可能的状态序列,即对应上述的第二个问题;至于第三个问题,则是对应于绝大多数机器学习模型所存在的训练模型参数的问题。
reference
[1] 机器学习,周志华
四、资源下载
微信搜索“老和山算法指南”获取下载链接与技术交流群
有问题可以私信博主,点赞关注的一般都会回复,一起努力,谢谢支持。
人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型相关推荐
- 《统计学习方法》——隐马尔可夫模型(上)
引言 这是<统计学习方法>第二版的读书笔记,由于包含书上所有公式的推导和大量的图示,因此文章较长,正文分成三篇,以及课后习题解答,在习题解答中用Numpy实现了维特比算法和前向后向算法. ...
- 【深度】从朴素贝叶斯到维特比算法:详解隐马尔科夫模型
详解隐马尔科夫模型 作者:David S. Batista 选自:机器之心 本文首先简要介绍朴素贝叶斯,再将其扩展到隐马尔科夫模型.我们不仅会讨论隐马尔科夫模型的基本原理,同时还从朴素贝叶斯的角度讨论 ...
- 10_隐马尔科夫模型HMM1_统计学习方法
文章目录 一.几个基本概念 1.隐马尔可夫模型 2.马尔科夫链 3.随机过程 4.马尔科夫性质 二.隐马尔科夫模型 1.隐马尔科夫模型的引入 2.隐马尔科夫模型定义 3.隐马尔科夫模型的两个假设 4. ...
- 隐马尔可夫模型HMM
目录 1. 隐马尔可夫模型 1.1 什么样的问题需要HMM模型 1.2 HMM模型的数学定义 1.3 一个HMM模型实例 1. 隐马尔可夫模型 隐马尔可夫模型(Hidden Markov Model) ...
- 深度学习:隐马尔科夫模型
概率图 隐马尔科夫模型属于概率图范畴,简单介绍一下概率图模型,概率图模型(probabilistic graphical model)是一类用图的形式表示随机变量之间条件依赖关系的概率模型,是概率论与 ...
- 隐马尔可夫模型(背景介绍)
1.隐马尔科夫模型(HMM)用来描述一个含有隐变量的马尔可夫过程 2.HMM可以看成GMM在时间序列上的推广 3.HMM可以用1-2-3表达:一个模型,两个假设,三个问题 4.HMM模型假设是齐次马尔 ...
- 一文读懂NLP之隐马尔科夫模型(HMM)详解加python实现
一文读懂NLP之隐马尔科夫模型(HMM)详解加python实现 1 隐马尔科夫模型 1.1 HMM解决的问题 1.2 HMM模型的定义 1.2.1HMM的两个假设 1.2.2 HMM模型 1.3 HM ...
- 语音识别与隐马尔可夫模型(HMM)
目录 一.语音识别 二.隐马尔可夫模型 三.前向-后向算法 四.Baum-Welch算法 五.孤立词识别 公元2035年,机器人在人类社会中充当着十分重要的角色,它们可以送快递,为人类提供家政服务,甚 ...
- 隐马尔科夫模型matlab工具箱说明
转自 http://blog.csdn.net/whiteinblue/article/details/40625291 隐马尔可夫模型(HiddenMarkov Model,HMM)是统计模型,它用 ...
最新文章
- springboot 项目将本地引用打进jar包
- MySQL的datetime日期格式化,和Oracle的datetime日期格式化
- Nginx vs Apache--reference
- 王道计算机考研 数据结构 (树与二叉树)
- java默认xmx修改,Java 8中的默认Xmxsize
- 《软件工程》实验报告——软件测试
- 华为发布开发者召集令,等你来战!
- [简单分页]C#+JQUERY+ORACLE分页效果 ----转载
- Android Native内存泄露检测(针对Android7.0)
- 录屏软件电脑_电脑录屏用什么软件?电脑录屏软件集锦
- ida 反编译 php,飘云阁安全论坛在IDA pro中的这样一段反编译代码能够改写成易语言吗 - Powered by Discuz!...
- android友盟分享最新,Android 友盟分享+第三方登录
- 园林景观cad_景观广场及绿化设计(附CAD平面图)
- Win11用户好消息 影响win11性能运行的竟是它,关闭可提升性能
- 华胜天成-容灾流程管理平台解决方案
- 【产业互联网周报】阿里云栖大会、百度世界大会召开:阿里重推“云端一体”、百度AI全面升级...
- Namesilo转出域名到US Domain Center美国域名注册商
- (转)ARCGIS中坐标转换及地理坐标、投影坐标的定义
- APP测试的主要内容
- 【物联网毕设基础】单片机:NEC 协议红外遥控器