十一、隐马尔可夫模型
隐马尔可夫模型(HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型[1]。它的状态不能直接观察到,但能通过观测向量序列观察到,每个观察向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一个具有相应概率密度分布的状态序列产生。故隐马尔可夫模型是一个双重随机过程-------具有一定状态数的隐马尔可夫链和显示随机函数集。
0隐马尔可夫模型的主要学习内容
1)隐马尔可夫模型的定义
2)隐马尔可夫模型的3个基本问题:概率计算问题,学习问题,预测问题
3)概率计算算法:前向算法,后向算法
4)学习算法:监督学习,非监督学习(的Baum-韦尔奇算法)
5)预测算法:近似算法,维特比算法
什么问题需要用HMM模型解决呢?
使用HMM模型我们的问题一般有这两个特征:
1)问题是基于序列的,比如一句话,时间序列或者状态序列。
2)问题中有两类数据,一类列数据是可以观测到的,即观测序列;而另一类数据是不能观测到的,即隐藏状态序列,简称状态序列。
例如:使用键盘写出来的是一系列字符,这是我们可观测到的序列,而我们实际想要得到的一句话就是隐藏序列,输入法的任务就是从敲入的一系列字符尽可能的猜测我要写的句子,并将最有可能的词语放在最前面让我选择,这就可以看作一个隐马尔可夫模型。
1隐马尔可夫模型的定义
隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。其中,隐藏的马尔可夫链随机生成的状态的序列称为状态序列;每个状态生成一个观测,而由此生成的观测的随机序列称为观测序列,序列的每个位置又可以看作一个时刻。
隐马尔可夫模型由初始概率分布、状态转移概率分布以及观测概率分布确定,具体的形式定义如下[1]:设Q是所有可能的状态的集合,V是所有可能的观测的集合。
其中,N为可能的状态数,M为可能的观测数。I是长度为T的状态序列,O是对应观测序列。
隐马尔可夫模型需要作如下两个基本假设[1]:
(1)齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于前一个时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关。
(2)观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关。
例子[1]:
假设有4个盒子,每个都装有红白两种颜色的球,盒子里的红白球数如表:
按照下面方法抽球,产生一个球的颜色的观测序列:
开始,从4个盒子里以等概率随机选取一个盒子,从盒子里随机抽出一个1个球,记录其颜色后,放回。然后,从当前盒子随机转移到下一个盒子。
规则:
如果当前盒子是盒子1,那么转移到的下一个盒子一定是盒子2;
如果当前是盒子2或3,那么各以概率0.4和0.6转移到左边或右边的盒子;
如果当前是盒子4,那么各以0.5的概率停留在盒子4或转移到盒子3;
确定转移的盒子后,再从这个盒子里随机抽出1个球,记录其颜色,放回;如此下去,重复进行5次,得到一个球的颜色的观测序列:
在这个过程中,观察者只能观测到球的颜色的序列,观测不到球是从哪个盒子取出的,即观测不到盒子的序列。
在这个例子中有两个随机序列,一个盒子的序列(状态序列),一个是球颜色的观测序列(观测序列),前者是隐藏的,只有后者是可观测的,这就是一个HMM模型的例子。根据这个例子,我们来明确一下,例子中的状态集合、观测集合、序列长度以及模型三要素。
抽取的盒子顺序对应状态序列,状态的集合为:
抽取球颜色的顺序对应观测序列,观测的集合为:
状态序列和观测序列长度T=5。
1.1观测序列的生成过程
2 HMM的三个基本问题[1]
2.1问题一:概率计算问题
2.1.1直接计算法[1]
2.1.2 前向算法
首先介绍前向概率。
例子:
2.1.3后向算法
2.2 学习算法
隐马尔可夫模型的学习,根据训练数据是包括观测序列和对应的状态序列还是只有观测序列,可以分为监督学习和非监督学习来实现。
2.2.1监督学习
假设已给训练数据包含S个长度相同的观测序列和对应的状态序列
我们可以利用极大似然估计法来估计隐马尔可夫模型的参数,具体方法如下。
由于监督学习需要使用训练数据,而人工标注训练数据往往代价很高,故使用非监督学习。
2.2.2非监督学习(Baum-Welch算法)
2.3预测算法
2.3.1近似算法
2.3.2维特比算法
维特比算法是动态规划的解决隐马尔可夫模型预测问题,即用动态规划求概率最大路径(最优路径)。这时一条路径对应一条状态序列。
原理[1]:
举例说明
解:要在所有可能的路径中选择一条最优路径,按照以下步骤处理:
3隐马尔可夫模型的总结
3.1隐马尔科夫模型的优点[3]:
1)HMM是一种生成模型,定义了联合概率分布,其中x和y分别表示观察序列和相对应的标注序列的随机变量。为了能够定义这种联合概率分布,生成模型需要枚举出所有可能的观察序列,这在实际运算过程中很困难,因为我们需要将观察序列的元素看做是彼此孤立的个体即假设每个元素彼此独立,任何时刻的观察结果只依赖于该时刻的状态。
2)从可观察的参数中确定该过程的隐含参数,然后使用隐含变量生成可观测状态。
3)不确定中间状态的情况最适合用隐马尔可夫模型来解释。
3.2隐马尔科夫模型的缺点[4]:
1)HMM只依赖于每一个状态和它对应的观察对象:例如像序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关,故使用HMM会使用较多重要信息。
2)目标函数和预测目标函数不匹配:HMM学到的是状态和观察序列的联合分布P(Y,X),而预测问题中,我们需要的是条件概率P(Y|X)。
3)HMM模型的这个假设前提在比较小的数据集上是合适的,但实际上在大量真实语料中观察序列更多的是以一种多重的交互特征形式表现,观察元素之间广泛存在长程相关性。在命名实体识别的任务中,由于实体本身结构所具有的复杂性,利用简单的特征函数往往无法涵盖所有的特性,这时HMM的假设前提使得它无法使用复杂特征(它无法使用多于一个标记的特征)。
4 隐马尔可夫模型的应用
1)语音识别
2)自然语言处理(词性标注、命名实体识等)
3)生物信息
4)模式识别
参考文献
[1] 李航,《统计学习方法》
[2] https://www.cnblogs.com/pinard/p/6912636.html
[3] https://www.cnblogs.com/pinard/p/6955871.html
[4] https://www.cnblogs.com/pinard/p/6991852.html
[5] https://www.cnblogs.com/pinard/p/6972299.html
[6] https://blog.csdn.net/Losteng/article/details/51037927
注:部分文字,图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容,电话:4006770986。