第九讲:产生式模型:NaiveBayes, HMM(下)

目录

1 引言

2 隐马尔科夫模型(HMM)

2.1 模型介绍

2.2 HMM概率计算问题及其求解算法

2.3 预测与学习

2.4 HMM与动态系统

3 小结

参考文献

1 引言

上一讲已经提到生成式模型中的朴素贝叶斯算法。作为生成式模型中的一员,朴素贝叶斯主要对联合概率分布进行建模,通过假设各个输入特征之间条件独立,简化概率计算得到联合分布。该模型在垃圾邮件过滤等领域有着广泛的应用,但是,该模型“特征之间条件独立”这一较强的假设显得并不符合实际。

本讲将介绍一种新的生成式模型—隐马尔科夫模型(HMM)。与朴素贝叶斯不同,HMM中变量分为状态变量(隐变量)Y与观测变量X,两种变量之间的依赖关系可以对实际应用中变量的相互作用进行描述,同时,HMM中X是按照时间先后顺序由Y生成,故可以广泛地应用于时序建模中。本文将在一阶HMM的基础上,推导HMM中三大问题—联合概率的求解预测学习的求解公式,并在此基础上推导动态系统中滤波与平滑算法核心公式。

2 隐马尔科夫模型(HMM)

2.1 模型介绍


考虑如下问题:四个盒子,每个盒子里装有不同数目的红白两色球,每次按照一定规则选取其中一个盒子有放回抽取球,如何根据五次抽取结果推断被抽取的盒子序列(后文称“抓球问题”)?

由于每次选择的盒子受到前几轮选择结果的影响(每次抓球后按照一定概率选取下一个盒子),故该问题很明显不能用朴素贝叶斯求解。除此之外,该问题还具有明显的时序特性。HMM作为一种时序生成式模型,可被应用到该问题的求解上。HMM中,变量被分为状态变量和观测变量。具体到该问题,我们可以观测到抽取的球色序列,球的颜色即,为长度为T的观测变量,代表了T次实验中每次观测到的结果。此外,由于每个盒子红白球数目不同,每次抽取的球色还决定于当前被选中的盒子,每次选择的盒子作为状态变量,亦被称作马尔科夫链,不能被观测到。

2.1.1 HMM的基本假设与三要素

生成式模型的一个永恒话题便是联合概率分布的求解。如果X与Y各变量之间都相互有影响,那么求解HMM的联合分布将十分复杂,为简化问题,需要做出一些基本假设[1]。

  • 齐次马尔科夫假设

该假设认为马氏链中t时刻状态只与t-1时刻状态有关,而与其他时刻状态和观测无关。即:

  • 观测独立性假设

该假设认为t时刻的观测仅与t时刻状态有关而与其他状态和观测无关,即:

基于这两个假设,联合分布的求解将得到极大简化,这将在2.2节进行详细阐述。构建HMM需要三个基本要素:

  • 状态转移概率

描述状态i转移到状态j的概率,在上文的案例中,这代表t时刻从盒子i抓球而t+1时刻从盒子j抓球的概率,形式化为:

其中,N为状态数目(盒子数目)。

  • 初始状态

描述初始时刻处于各个状态的概率,在上文的案例中代表初始时刻从N个盒子中抓球的概率,是一个N维向量。

  • 观测概率

描述当前状态生成各个观测的概率。在上文的案例中,代表t时刻从盒子i中抓到颜色为k的球的概率。

上式中M为观测的类别数,即球的颜色数目。

图 1 HMM图模型

图1形象地展示了HMM各变量之间的关系。当前时刻的状态可以由上一时刻隐变量的取值和状态转移概率矩阵A计算得到,同时,当前时刻状态与观测矩阵B可生成一个观测。HMM的模型参数完全由状态转移矩阵A、观测矩阵B和初始状态决定。总共含有(N-1)N+N(M-1)+(N-1)=N(N+M-1)-1个参数。后文将把HMM记作

2.1.2 HMM三大基本问题

讨论HMM时,我们关心的是它的三要素、状态变量和马氏链生成的观测变量。围绕这三个部分,可以得出HMM中的三个基本问题。

  • 概率计算问题

该问题针对观测变量而言,当给定一个马尔科夫模型和观测序列X后,如何确定该观测发生的概率?对应到抓球问题,即根据和球色序列X,求解抓出这种球色序列的概率。

由于该问题中Y作为状态序列不能被观测到,所以上式采用隐变量加和的方式,将状态变量X的边缘分布求解问题转化成联合概率的求解问题,从而回归到生成式模型的永恒主题—联合分布的求解。该问题的求解可使用前向(后向)算法,将在2.2节进行详细的讨论。

  • 状态变量的预测

在已知模型和观测序列X的情况下,如何推断产生这种观测的状态序列?对应到抓球问题,即根据观测到的球色,对每次抓球的盒子进行推断。

上式推断从k(k=1,2,…M)号盒子中取出球的概率。通过全局对比最大值,得出每次取出的球最可能来自哪个盒子。求解该问题可使用与前向算法极其相似的Viterbi算法,将在2.3节进行详细阐述。

  • 学习问题

该问题即HMM参数估计问题,根据得到的一系列观测序列,估计模型的三要素。该问题又可分为两大类子问题—有监督HMM学习与无监督HMM学习。两者的区别在于是否知道状态序列。对应到抓球问题中,即根据多次抓球观测到的球色序列,计算HMM的状态转移矩阵A、观测矩阵B与初始概率(有监督学习还知道每次取的球是从那个盒子里来的)。可以猜测,有监督的学习问题根据极大似然估计建立对数似然函数进行求解,而无监督学习则根据EM算法不断优化似然函数下界求解模型参数。该问题将在2.3节进行详细阐述。

为了与上一讲的推导衔接,这里我们统一采用上一讲中的符号表示,即观测序列上述X用O来表示,状态序列Y用I来表示。则HMM的三个基本问题形式化为:

2.2 HMM概率计算问题及其求解算法


2.2.1 直接求解

概率计算问题关键在于联合概率分布的计算。给定模型和观测X。直接计算法按下式计算边缘概率:

稍微分析一下就可以发现,对于某个长度为T的状态序列,求和需要花费O(T)时间,由于状态序列共有NT种,故直接计算的算法时间复杂度为O(TNT)。对于稍长的马氏链来说,其联合分布的计算时间是难以忍受的。

2.2.2 前向算法

有没有方法能够降低算法的时间复杂度?直接计算法通过枚举所有可能的状态序列来求解概率,由于每次计算新状态序列对应的概率时,会重复计算每个求和号中的结果,所以直接计算法存在大量重复的运算。

考虑一般的多级求和问题的求解

图 2 一般多级求和问题

每个靠外的求和问题都依赖于内部求和问题的求解。故每次求解时,可以保存子问题的求解结果,避免重复计算。

在上一讲的末尾,我们讨论了当只有一个观测、两个观测、三个观测的时候的值。回顾一下:

发现规律之后,其实已经得到了概率计算的前向算法

有了上述推导之后,在来看概率计算问题:

对于原本时间复杂度很高的问题,可通过变量消除法来解决,首选计算出,消去,然后据此可得到,依次类推,从内到外,依次消除变量。

本质上来说,的计算也是一个sum-product的过程,

在t+1时刻,状态取值为j的概率等于在t时刻状态取值为i的概率乘以从状态i转移到状态j的概率,因为在t时刻状态有N种可能,因此对所有状态求和(sum),然后乘以在t+1时刻,状态为j时产生观测的概率(product)。

从概率的角度如何看待前向算法呢?

公式第一行通过增加一个t时刻的状态,在对i求和与原式等价,并在第二行使用贝叶斯公式展开第一项变为前向概率,后续推导继续使用贝叶斯公式化简。值得注意的是,由于t+1时刻的观测与前面的观测以及t时刻的状态并没有关系,故后一项条件概率可化简为第三行的形式。

有了前面的分析,可以得到基于前向算法的边缘概率求解步骤如下:

图 4 HMM前向算法求解边缘分布

下面借助“抓球问题”,介绍前向算法求解HMM概率问题的步骤。

设抓球问题中有三个盒子,每个盒子中有红白两种颜色的球。模型参数为:

抓三次求得到的观测序列X={红,白,红},求该观测出现的概率。

  • Step1:初始值

初始值代表初始状态从各个盒子中抽取球的概率分布。第一观测x1=红,则计算出这种观测来自的盒子的概率分布为

上式求解的是第一次抽取的球来自各个盒子的概率。

  • Step2:递推

由前向公式向前递推计算到T=3时的前向概率

上式中,第二行第二项第一行代表从任意盒子转移到一号盒子的概率,代表第二时刻从一号盒子拿球的概率。再结合一号盒子拿白球的概率为0.5,最终计算出第二时刻从一号盒子拿出白球的概率为0.077。类似地,可分析其他参数的实际含义。

进一步计算第三时刻的前向概率:

  • Step3:停止

计算得到边缘分布为:

我们再计算过程中可以感受到,每次计算前向概率时,都是由当前所有可能的状态通过转移概率转移到某个固定的状态qj,并对所有qj求和乘以观测概率,得到下一时刻的前向概率。这一点可以从概率图中得到直观的反映。将在下一节介绍。

图 5 前向算法                     图 6 后向算法

相应的,有前向算法就有后向算法。后向算法通过从后往前逆向计算“状态路径的最优结构”实现边缘分布的求解如图6所示。可相似地给出后向概率的定义

以及后向概率递推公式

借助前后向概率,可推导一些有用的结论。

式2-23说明边缘概率的计算可以由任意时刻t处的前向概率与后向概率得到。当t=1时,2-23转化为后向算法的求解公式,t=T时,转换为前向算法的求解公式。

后向算法流程如下:

前后向概率通过动态规划的思想,由于求解过程中存储了子问题的解,使得二者能以较低的复杂度解决HMM中变量联合分布与边缘分布的求解问题。

2.3 预测与学习


预测(解码)问题需求解以下概率:

对k=1,2,…N,该概率代表第t次观测对应的状态为k的概率,解码问题希望找到最优的状态组合

,使得整条状态路径能以最大概率产生观测到的观测序列,该问题可形式化地表示为:

如果我们贪心地求解该问题,即每次求解第i个状态时,都以最大者作为当前状态的估计值,那么算法可能会陷入局部最优,无法找到最合适的状态路径。

考虑使用动态规划求解该问题。假设求解马氏链长度为S的HMM解码问题时,设最优路径为pS那么容易证明求解规模为S+1的解码问题时,其最优路径必定是pS与后续解码问题中较短路径的组合。因此,在求解较大规模HMM的解码问题时,可通过递推求解较小规模的子问题实现。

具体到抓球问题中,仍使用前文定义的参数,推断每次抓的球来自哪个盒子。求解该问题首先要定义如下概率:

代表t时刻的N种状态中能使前向概率达到最大值的概率值。类比前向概率递推式,可写出该概率的递推计算式:

则求解按照如下步骤进行:

  • Step1:初始化

第一观测x1=红,则计算出这种观测来自的盒子的概率分布为

  • Step2:前向推导

根据式2-26递推求解δ函数的值,结合图5可知,算法每次求解到达状态j,并且满足该状态下观测的取值时,最短的路径。

当t=2时,

记录此子路径最大概率值对应的状态号,φ(y2=1)=3。

同理,可计算

对应状态号

对应状态号

重复迭代,当t=3时,

对应状态号

对应状态号

对应状态号

  • Step3:终止

根据最后一轮迭代结果求解最优路径概率:

  • Step4:回溯求解路径

反向回溯最优路径,知盒子序列为(3,3,3)。

可见,动态规划每次都只存储子部分的最优值(最优子路径),从而找到从开始到结束的最短路径。如图7,找到最优路径概率后,根据对应节点记录的最优路径来路,回溯上一时刻的状态,即可完成问题的解答。

图 7 DP求解解码问题[2]

上述过程即Viterbi算法,该算法核心为动态规划,故与前向算法十分相似,具体求解流程图如下。

图 8 Viterbi算法

HMM最后一大类问题为学习问题。根据一系列状态变量和观测变量的样本,求解HMM三要素。该问题可分为有监督学习和无监督学习。无监督学习需要使用EM算法求解,将在下一讲介绍。本讲只介绍有监督学习问题的求解。

求解有监督学习问题常使用极大似然估计,该方法认为出现的观测往往对应着较高的概率,通过解析地表示出概率(似然函数),优化似然函数就可求得我们想要的某些概率,这就好比投掷一枚硬币100次,若99次出现正面,则你会怀疑这枚硬币是否被人动过手脚,因为只有硬币正面朝上的概率很大,才能对该现象进行解释(似然函数最大)。

推导过程如下:

上式为学习问题对应的似然函数,分为三部分,分别对应HMM中的三个参数。

对初始概率,可求得使似然函数最大的概率值:

直观来看,初始概率即统计初始状态中各个状态出现的频率,对应到抓球问题,即根据初始时刻各种盒子的统计数据,计算每种盒子出现的频率。

同理,可推导转移概率矩阵的学习公式

直观解释就是,根据样本中不同状态之间的转移数目,计算某两个状态转移的频率,将其作为概率。

观测概率的学习公式为

相似地,这可以被简单的归纳为统计频率的问题。这也比较符合通过频率逼近概率的思想。

2.4 HMM与动态系统


本节介绍一些HMM重要公式,并介绍他们在动态系统中平滑和滤波问题中的应用。

直接上课件图,

第一个公式在前面介绍预测问题时已经出现过,代表在已知观测和模型参数的情况下,对t时刻状态为i的概率进行估计,可以看出求解t时刻的状态i概率问题可以转化为t时刻前向概率与后向概率在此处乘积归一化后的结果,只要求出前后向概率,就可用该公式快速计算出t时刻状态为i的概率。

第二个公式计算的是相邻两个状态分别为i和j的概率,再次说明了前后向概率在HMM相关概率计算中的重要性。第三个公式则建立了前两个公式的联系。

利用第一个公式,可求解动态系统中的滤波问题。滤波问题指根据前t个时刻的观测,计算t时刻状态为某特定状态的概率。分析可知,其概率求解模型就是上文介绍的第一个公式。滤波可以实现实时估计当前状态隐变量的取值,因为求解滤波问题只需要得到直到当前状态下的一系列观测而不必考虑未来观测的影响。

动态系统中,与滤波问题相似的一个问题便是平滑问题。平滑问题指根据当前收集到的观测,估计历史上某个时刻的状态。由于比滤波问题具有更多的观测样本,所以平滑问题精度往往较滤波更高。但是它不能实时估计状态变量的取值。平滑问题可转换为滤波问题求解。具体参考参考文献[3],两类动态系统中的常见问题均可使用上文提到的重要公式进行计算。

3 小结


作为一种时序生成式模型,HMM在语音识别,手势识别中得到了广泛应用。由于HMM计算复杂,常见的建模方式均是基于一阶HMM实现的,如果实际应用中发现效果不好,可通过提升模型阶数来改善。

HMM中三大基本问题,均离不开联合概率分布的求解,但直接求解联合分布将面临极高的时间复杂度,为此,前向算法使用动态规划的思想存储前向概率,从而降低了算法的时间复杂度,动态规划这一基本思想还衍生出了Viterbi算法用于处理HMM的预测问题。

下一讲将介绍贝叶斯学习方法与EM算法。

注:文中所有推导均可在课件中找到,回复「课件」二字即可获取,另外因为本次内容公式较多,提供有word版本方便阅读,回复「HMM」即可领取~

参考文献


[1]李航 .统计学习方法[M]. 北京: 清华大学出版社, 2012: 171-189.

[2] https://www.zhihu.com/question/20136144, Viterbi算法

[3] Stuart Russell, Peter Norvig. 人工智能:一种现代方法[M]. 北京: 清华大学出版社, 2013: 473-487.

猜你喜欢

转载自blog.csdn.net/zhangliaobet/article/details/82534625
HMM