NLP-统计分词 隐马尔可夫模型介绍
- 一、隐马尔可夫模型
- 二、隐马尔可夫模型定义
- 三、举例
- 1.初始条件
- 2.规则
- 3.观测
- 4.HMM模型
- 5.观测序列的生成
- 四、HMM模型的三个基本问题
- 1.评估观察序列概率
- 2.模型参数学习问题
- 3.预测问题,也称为解码问题(分词关系的问题)
一、隐马尔可夫模型
隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。
使用HMM模型时我们的问题一般有这两个特征:
1)我们的问题是基于序列的,比如时间序列,或者状态序列。
2)我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。
二、隐马尔可夫模型定义
对于HMM模型,首先我们假设Q是所有可能的隐藏状态的集合, 是所有可能的观测状态的集合,即:
其中,是可能的隐藏状态数,
是所有的可能的观察状态数。
对于一个长度为的序列,
对应的状态序列,
是对应的观察序列,即:
HMM模型做了两个很重要的假设如下:
1) 齐次马尔科夫链假设。即任意时刻的隐藏状态只依赖于它前一个隐藏状态。
如果在时刻 的隐藏状态是
,在时刻
的隐藏状态是
,则从时刻
到时刻
的HMM状态转移概率:
这样 可以组成马尔科夫链的状态转移矩阵
:
2) 观测独立性假设。即任意时刻的观察状态只仅仅依赖于当前时刻的隐藏状态,这也是一个为了简化模型的假设。
如果在时刻 的隐藏状态是
,而对应的观察状态为
,则该时刻观察状态
在隐藏状态
下生成的概率
满足:
这样 bij 可以组成观测状态生成的概率矩阵 B:
除此之外,我们需要一组在时刻 的隐藏状态概率分布
:
一个HMM模型,可以由隐藏状态初始概率分布 ,状态转移概率矩阵
和观测状态概率矩阵
决定。
决定状态序列,
决定观测序列。因此,HMM模型可以由一个三元组表示,如下:
三、举例
1.初始条件
假设我们有3个盒子,每个盒子里都有红色和白色两种球,这三个盒子里球的数量分别是:
按照下面的方法从盒子里抽球,开始的时候,从第一个盒子抽球的概率是0.2,从第二个盒子抽球的概率是0.4,从第三个盒子抽球的概率是0.4。以这个概率抽一次球后,将球放回。然后从当前盒子转移到下一个盒子进行抽球。
2.规则
如果当前抽球的盒子是第一个盒子,则以0.5的概率仍然留在第一个盒子继续抽球,以0.2的概率去第二个盒子抽球,以0.3的概率去第三个盒子抽球。如果当前抽球的盒子是第二个盒子,则以0.5的概率仍然留在第二个盒子继续抽球,以0.3的概率去第一个盒子抽球,以0.2的概率去第三个盒子抽球。如果当前抽球的盒子是第三个盒子,则以0.5的概率仍然留在第三个盒子继续抽球,以0.2的概率去第一个盒子抽球,以0.3的概率去第二个盒子抽球。
3.观测
如此下去,直到重复三次,得到一个球的颜色的观测序列:={红,白,红},在这个过程中,观察者只能看到球的颜色序列,却不能看到球是从哪个盒子里取出的。
4.HMM模型
- 观察集合是:
={红,白},
=2
- 状态集合是:
={盒子1,盒子2,盒子3},
=3
- 初始状态分布为:
=
- 状态转移概率分布矩阵为:
. - 观测状态概率矩阵为:
5.观测序列的生成
四、HMM模型的三个基本问题
1.评估观察序列概率
给定模型 和观察序列
,计算在模型
下观测序列
出现的概率
。这个问题的求解需要用到前向后向算法,这个问题是HMM模型三个问题中最简单的。
2.模型参数学习问题
给定观测序列
,估计模型
的参数,使该模型下观测序列的条件概率
最大。这个问题的求解需要用到基于EM算法的鲍姆-韦尔奇算法, 这个问题是HMM模型三个问题中最复杂的。
3.预测问题,也称为解码问题(分词关系的问题)
给定模型 和观测序列
,求给定观测序列条件下,最可能出现的对应的状态序列,这个问题的求解需要用到基于动态规划的维特比算法,这个问题是HMM模型三个问题中复杂度居中的算法。