第14章 概率图模型-隐马尔可夫模型

本文介绍了隐马尔可夫模型的基础概念及其在时序数据建模中的应用,探讨了模型的基本组成要素,包括状态转移概率、输出观测概率和初始状态概率,并讨论了模型在实际场景中的三个核心问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

14.1 隐马尔可夫模型

机器学习最重要的任务:

根据一些已经观察到的证据(例如训练样本)来对感兴趣的未知变量(例如类别标记)进行估计推测

具体来说,假定所关心的变量集合为YY,可观测变量集合为O,其它变量的集合为RR,“生成式”模型考虑联合分布P(Y,R,O),“判别式”模型考虑条件分布P(Y,R|O)P(Y,R|O)。给定一组变量值,推断就是要由P(Y,R,O)P(Y,R,O)P(Y,R|O)P(Y,R|O)得到条件概率分布P(Y|O)P(Y|O)

直接利用概率求和规则消去变量RR显然不可行,因为即便每个变量仅有两种取指的简单问题,其复杂度已至少是O(2|Y|+|B|)。另一方面,属性变量之间往往存在复杂的联系,因此概率模型的学习,即基于训练样本来估计变量分布的参数往往相当困难。为了便于研究高效的推断和学习算法,需要有一套简洁紧凑地表达变量关系的工具。

名词解释

概率模型(Probabilistic Model):提供了一种描述框架,将学习任务归结于计算变量的概率分布。
推断:在概率模型中,利用已知变量来推测未知变量的分布称为推断
概率图模型(Probabilistic Graphical Model):是一类用图来表达变量相关关系的概率模型
隐马尔可夫模型(Hidden Markov Model,简称HMM):是结构最简单的动态贝叶斯网络(Dynamic Bayesian Network),这是一种著名的有向图模型,主要用于时序数据建模,在语音识别、自然语言处理等领域有广泛应用。

图1 隐马尔可夫模型的图结构

隐马尔可夫模型的图结构

如图所示,隐马尔可夫模型中的变量可以分为两组,第一组是状态 变量{y1,y2,...,yn}{y1,y2,...,yn},其中yiYyi∈Y表示第ii时刻的系统状态。通常假定状态变量是隐藏的、不可被观测的,因此状态变量亦称隐变量(hidden variable)。第二组是观测变量{x1,x2,...,xn},其中xXx∈X表示第ii时刻的观测值。在隐马尔可夫模型中,系统通常在多个状态{s1,s2,...,sn}之间转换,因此状态变量yiyi的取值范围YY(称为状态空间)通常是有nn个可能取值的离散空间。观测变量xi可以是离散型也可以是连续型,为了便于讨论,我们仅考虑离散型观测变量,并假定其取指范围XX{o1,o2,...,om}{o1,o2,...,om}
图1中的箭头表示了变量间的依赖关系。在任一时刻,观测变量的取值仅依赖于状态变量,即xtxtytyt确定,与其他状态变量及观测变量的取值无关。同时,tt 时刻的状态yt仅依赖于t1t−1时刻的状态yt1yt−1,与其余n2n−2个状态无关。这就是所谓的“马尔可夫链(Markov chain)”,即:系统下一个时刻的状态仅由当前状态决定,不依赖于以往的任何状态。基于这种依赖关系,所有变量的联合概率分布为

P(x1,y1,...,xn,yn)=P(y1)P(x1|y1)i=2P(yi|yi1)P(xi|yi)1P(x1,y1,...,xn,yn)=P(y1)P(x1|y1)∏i=2∞⁡P(yi|yi−1)P(xi|yi)···(1)

除了结构信息,欲确定一个隐马尔可夫模型还需要以下三组参数:
(1)状态转移概率: 模型在各个状态间转换的概率,通常记为矩阵A=[aij]N×NA=[aij]N×N,其中

aij=P(yt+1=sj|yt=si),1i,jN,aij=P(yt+1=sj|yt=si),1≤i,j≤N,

表示在任意时刻tt,若状态为si,则在下一时刻状态为sjsj的概率。
(2)输出观测概率: 模型根据当前状态获得各个观测值的概率,通常记为矩阵B=[bij]N×MB=[bij]N×M,其中
bij=P(xt=oj|yt=si),1iN,1jMbij=P(xt=oj|yt=si),1≤i≤N,1≤j≤M

表示在任意时刻tt,若状态为si,则在下一刻状态为sjsj的概率。
(3)初始状态概率: 模型在初始时刻各状态出现的概率,通常记为π=(π1,π2,...,πn)π=(π1,π2,...,πn),其中
pii=P(y1=si),1iNpii=P(y1=si),1≤i≤N

表示模型的初始状态为sisi的概率。
观测序列的产生过程:

通过指定状态空间YY、观测空间XX和上述三个参数,就能确定一个隐马尔可夫模型,通过用其参数λ=[A,B,pi]λ=[A,B,pi]来指代。给定隐马尔可夫模型λλ,它按如下过程产生观测序列{x1,x2,...,xn}{x1,x2,...,xn}
(1)设置t=1t=1,并根据初始状态概率pipi选择初始状态y1y1;
(2)根据状态ytyt和输出观测概率BB选择观测变量取值xt
(3)根据状态ytyt和状态转移矩阵AA转移模型状态,即确定yt+1
(4)若t<nt<n,设置t=t+1t=t+1,并转到第(2)步,否则停止。
其中yt{s1,s2,...,sn}yt∈{s1,s2,...,sn}xt{o1,o2,...,om}xt∈{o1,o2,...,om}分别为第tt时刻的状态和观测值。

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

(1)给定模型λ=[A,B,π],如何有效计算其产生观测序列x={x1,x2,...,xn}x={x1,x2,...,xn}的概率P(x|λ)P(x|λ)?换言之,如何评价模型与观测序列之间的匹配程度?
(2)给定模型λ=[A,B,π]λ=[A,B,π]和观测序列x={x1,x2,...,xn}x={x1,x2,...,xn},如何找到与此观测序列最匹配的状态序列y={y1,y2,...,yn}y={y1,y2,...,yn}?换言之,如何根据观测序列推断出隐藏的模型状态?
(3)给定观测序列x={x1,x2,...,xn}x={x1,x2,...,xn},如何调整模型参数λ=[A,B,π]λ=[A,B,π]使得该序列出现的概率P(x|λ)P(x|λ)最大?换言之,如何训练模型使其能最好地描述观测数据?

上述问题在现实应用中非常重要。例如许多任务需要根据以往的观测序列{x1,x2,...,xn}{x1,x2,...,xn}来推测当前时刻最有可能的观测值xnxn,这显然可转化为求取概率P(x|λ)P(x|λ),即上述第一个问题;在语音识别等任务中,观测值为语音信号,隐藏状态为文字,目标就是根据观测信号来推断最有可能的状态序列(即对应的文字),即上述第二个问题;在大多数现实应用中,人工指定模型参数已变得越来越不可行,如何根据训练样本学得最优的模型参数,恰是上述第三个问题。值得庆幸的是,基于式(1)的条件独立性,隐马尔可夫模型的这三个问题均能被高效求解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值