NLP-统计分词 隐马尔可夫模型介绍

  • 一、隐马尔可夫模型
  • 二、隐马尔可夫模型定义
  • 三、举例
  • 1.初始条件
  • 2.规则
  • 3.观测
  • 4.HMM模型
  • 5.观测序列的生成
  • 四、HMM模型的三个基本问题
  • 1.评估观察序列概率
  • 2.模型参数学习问题
  • 3.预测问题,也称为解码问题(分词关系的问题)



一、隐马尔可夫模型

隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。

使用HMM模型时我们的问题一般有这两个特征:

1)我们的问题是基于序列的,比如时间序列,或者状态序列。

2)我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。

二、隐马尔可夫模型定义

对于HMM模型,首先我们假设Q是所有可能的隐藏状态的集合,hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移 是所有可能的观测状态的集合,即:

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_02


其中,hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_03是可能的隐藏状态数,hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_04是所有的可能的观察状态数。

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_机器学习_05

对于一个长度为hanlp 隐马尔可夫分词 隐马尔可夫模型分词_python_06的序列,hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_07 对应的状态序列, hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_08 是对应的观察序列,即:

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_09

HMM模型做了两个很重要的假设如下:

1) 齐次马尔科夫链假设。即任意时刻的隐藏状态只依赖于它前一个隐藏状态。

如果在时刻 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_10 的隐藏状态是 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_11 ,在时刻 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_12的隐藏状态是 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_13,则从时刻 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_10 到时刻 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_12 的HMM状态转移概率:

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_机器学习_16


这样 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_python_17 可以组成马尔科夫链的状态转移矩阵hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_18

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_19


2) 观测独立性假设。即任意时刻的观察状态只仅仅依赖于当前时刻的隐藏状态,这也是一个为了简化模型的假设。

如果在时刻 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_10 的隐藏状态是 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_11,而对应的观察状态为 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_22,则该时刻观察状态 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_机器学习_23 在隐藏状态 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_24 下生成的概率 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_25 满足:

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_26


这样 bij 可以组成观测状态生成的概率矩阵 B:

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_27


除此之外,我们需要一组在时刻 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_28 的隐藏状态概率分布 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_29

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_30

一个HMM模型,可以由隐藏状态初始概率分布hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_29 ,状态转移概率矩阵 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_18 和观测状态概率矩阵 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_33 决定。hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_18 决定状态序列,hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_33 决定观测序列。因此,HMM模型可以由一个三元组表示,如下:

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_机器学习_36

三、举例

1.初始条件

假设我们有3个盒子,每个盒子里都有红色和白色两种球,这三个盒子里球的数量分别是:

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_37


按照下面的方法从盒子里抽球,开始的时候,从第一个盒子抽球的概率是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.观测

如此下去,直到重复三次,得到一个球的颜色的观测序列:hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_08={红,白,红},在这个过程中,观察者只能看到球的颜色序列,却不能看到球是从哪个盒子里取出的。

4.HMM模型

  1. 观察集合是: hanlp 隐马尔可夫分词 隐马尔可夫模型分词_机器学习_39={红,白},hanlp 隐马尔可夫分词 隐马尔可夫模型分词_机器学习_40=2
  2. 状态集合是:hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_41={盒子1,盒子2,盒子3},hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_42=3
  3. 初始状态分布为:hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_43 = hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_44
  4. 状态转移概率分布矩阵为:
    .
  5. 观测状态概率矩阵为:

5.观测序列的生成

hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_45

四、HMM模型的三个基本问题

1.评估观察序列概率

给定模型 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_python_46 和观察序列 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_python_47 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_48 ,计算在模型 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_49 下观测序列 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_状态转移_08 出现的概率 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_51。这个问题的求解需要用到前向后向算法,这个问题是HMM模型三个问题中最简单的。

2.模型参数学习问题

给定观测序列 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_python_47 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_48 ,估计模型 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_python_46 的参数,使该模型下观测序列的条件概率 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_人工智能_51最大。这个问题的求解需要用到基于EM算法的鲍姆-韦尔奇算法, 这个问题是HMM模型三个问题中最复杂的。

3.预测问题,也称为解码问题(分词关系的问题)

给定模型 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_python_46 和观测序列hanlp 隐马尔可夫分词 隐马尔可夫模型分词_python_47 hanlp 隐马尔可夫分词 隐马尔可夫模型分词_hanlp 隐马尔可夫分词_48,求给定观测序列条件下,最可能出现的对应的状态序列,这个问题的求解需要用到基于动态规划的维特比算法,这个问题是HMM模型三个问题中复杂度居中的算法。