隐马尔可夫模型(HMM)

概率图模型

概率图模型是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即“变量关系图”。根据边的性质不同,概率图模型可大致分为两类:第一类是使用有向无环图表示变量间的依赖关系,称为有向图模型贝叶斯网;第二类是使用无向图表示变量间的相关关系,称为无向图模型马尔可夫网
在这里插入图片描述

隐马尔可夫模型

隐马尔可夫模型是结构最简单的动态贝叶斯网,是一种最著名的有向图模型,主要用于时序数据建模,在语音识别、自然语言处理等领域有广泛应用。
在这里插入图片描述

1.变量

如上图所示,隐马尔可夫模型中的变量分为两组:

  • 第一组是状态变量 { y 1 , y 2 , ⋯   , y n } \{y_1,y_2,\cdots,y_n\} {y1,y2,,yn},其中 y i ∈ Y y_i\in\mathcal{Y} yiY表示第 i i i时刻的系统状态。通常假定状态变量是隐藏的、不可被观测的,因此状态变量也称为隐变量。
  • 第二组是观测变量 { x 1 , x 2 , ⋯   , x n } \{x_1,x_2,\cdots,x_n\} {x1,x2,,xn},其中 x i ∈ X x_i\in\mathcal{X} xiX表示第 i i i时刻的观测值。
  • 在隐马尔可夫模型中,系统通常在多个状态 { s 1 , s 2 , ⋯   , s N } \{s_1,s_2,\cdots,s_N\} {s1,s2,,sN}之间转换,因此状态变量 y i y_i yi的取值范围 Y \mathcal{Y} Y通常是有 N N N个可能取值的离散空间。
  • 观测变量 x i x_i xi可以是离散型也可以是连续型,为了便于讨论,我们仅考虑离散型观测变量,并假定其取值范围 X \mathcal{X} X { o 1 , o 2 , ⋯   , o M } \{o_1,o_2,\cdots,o_M\} {o1,o2,,oM}
2.依赖

上图中的箭头表示变量间的依赖关系:

  • 在任一时刻,观测变量的取值仅依赖于状态变量,即 x t x_t xt y t y_t yt确定,与其他状态变量以及观测变量的取值无关。
  • 同时, t t t时刻的状态 y t y_t yt仅依赖于 t − 1 t-1 t1时刻的状态 y t − 1 y_{t-1} yt1,与其余 n − 2 n-2 n2个状态无关。这就是所谓的“马尔科夫链”,即:系统下一个时刻的状态仅由当前状态决定,不依赖与以往的任何状态。
  • 基于以上依赖关系,所有变量的联合概率分布为
    P ( x 1 , y 1 , ⋯   , x n , y n ) = P ( y 1 ) P ( x 1 ∣ y 1 ) ∏ i = 2 n P ( y i ∣ y i − 1 ) P ( x i ∣ y i ) P(x_1,y_1,\cdots,x_n,y_n)=P(y_1)P(x_1|y_1)\prod^{n}_{i=2}P(y_i|y_{i-1})P(x_i|y_i) P(x1,y1,,xn,yn)=P(y1)P(x1y1)i=2nP(yiyi1)P(xiyi)
3.参数

除了结构信息,欲确定一个隐马尔可夫模型还需要三组参数:

  • 状态转移概率:模型在各个状态间转换的概率,通常记为矩阵 A = [ a i j ] N × N \boldsymbol{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),\quad1\leq i,j\leq N, aij=P(yt+1=sjyt=si),1i,jN,
    表示在任意时刻 t t t,若状态为 s i s_i si,则在下一时刻状态为 s j s_j sj的概率。
  • 输出观测概率:模型根据当前状态获得各个观测值的概率,通常记为矩阵 B = [ b i j ] N × M \boldsymbol{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),\quad1\leq i\leq N,1\leq j\leq M bij=P(xt=ojyt=si),1iN,1jM
    表示在任意时刻 t t t,若状态为 s i s_i si,则观测值 o j o_j oj被获取的概率。
  • 初始状态概率:模型在初始时刻各状态出现的概率,通常记为 π = ( π 1 , π 2 , ⋯   , π N ) \boldsymbol{\pi}=(\pi_1,\pi_2,\cdots,\pi_N) π=(π1,π2,,πN),其中
    π i = P ( y 1 = s i ) , 1 ≤ i ≤ N , \pi_i=P(y_1=s_i),\quad1\leq i\leq N, πi=P(y1=si),1iN,
    表示模型的初始状态为 s i s_i si的概率。

综上,通过指定状态空间 Y \mathcal{Y} Y、观测空间 X \mathcal{X} X和上述三组参数,就能确定一个隐马尔可夫模型,通常用其参数 λ = [ A , B , π ] \lambda=[\boldsymbol{A},\boldsymbol{B},\boldsymbol{\pi}] λ=[A,B,π]来指代。
方便理解实例可参考https://blog.csdn.net/mingzai624/article/details/52399235

隐马尔可夫模型的三个基本问题和解法

在实际应用中,人们常关注隐马尔科夫模型的三个基本问题:

  • 给定模型参数 λ = [ A , B , π ] \lambda=[\boldsymbol{A},\boldsymbol{B},\boldsymbol{\pi}] λ=[A,B,π],如何有效计算其产生观测序列 x = { x 1 , x 2 , ⋯   , x n } \boldsymbol{x}=\{x_1,x_2,\cdots,x_n\} x={x1,x2,,xn}的概率 P ( x ∣ λ ) P(\boldsymbol{x}|\lambda) P(xλ)?换言之,如何评估模型与观测序列之间的匹配程度?
    估计问题,一般使用前向算法,参考https://blog.csdn.net/ppn029012/article/details/8923501
  • 给定模型参数 λ = [ A , B , π ] \lambda=[\boldsymbol{A},\boldsymbol{B},\boldsymbol{\pi}] λ=[A,B,π]和观测序列 x = { x 1 , x 2 , ⋯   , x n } \boldsymbol{x}=\{x_1,x_2,\cdots,x_n\} x={x1,x2,,xn},如何找到与此观测序列最匹配的状态序列 y = { y 1 , y 2 , ⋯   , y n } \boldsymbol{y}=\{y_1,y_2,\cdots,y_n\} y={y1,y2,,yn}?换言之,如何根据观测序列推断出隐藏的模型状态?
    解码问题,一般使用维特比算法,参考https://www.zhihu.com/question/20136144
  • 给定观测序列 x = { x 1 , x 2 , ⋯   , x n } \boldsymbol{x}=\{x_1,x_2,\cdots,x_n\} x={x1,x2,,xn},如何调整模型参数 λ = [ A , B , π ] \lambda=[\boldsymbol{A},\boldsymbol{B},\boldsymbol{\pi}] λ=[A,B,π]使得该序列出现的概率 P ( x ∣ λ ) P(\boldsymbol{x}|\lambda) P(xλ)最大?换言之,如何训练模型使得其能最好地描述观测数据?
    学习问题,使用EM算法,参考https://blog.csdn.net/continueOo/article/details/77893587

另有参考:
1.机器学习(西瓜书)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值