一、隐马尔可夫模型

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

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

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

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

二、隐马尔可夫模型定义

对于HMM模型,首先我们假设Q是所有可能的隐藏状态的集合, V V V 是所有可能的观测状态的集合,即:
在这里插入图片描述
其中, N N N是可能的隐藏状态数, M M M是所有的可能的观察状态数。
在这里插入图片描述

对于一个长度为 T T T的序列, I I I 对应的状态序列, O O O 是对应的观察序列,即:
在这里插入图片描述

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

1) 齐次马尔科夫链假设。即任意时刻的隐藏状态只依赖于它前一个隐藏状态。
如果在时刻 t t t 的隐藏状态是 i t = q t i_t=q_t it=qt ,在时刻 t + 1 t+1 t+1的隐藏状态是 i t + 1 i_{t+1} it+1,则从时刻 t t t 到时刻 t + 1 t+1 t+1 的HMM状态转移概率:
在这里插入图片描述
这样 a i j a_{ij} aij 可以组成马尔科夫链的状态转移矩阵 A A A
在这里插入图片描述
2) 观测独立性假设。即任意时刻的观察状态只仅仅依赖于当前时刻的隐藏状态,这也是一个为了简化模型的假设。
如果在时刻 t t t 的隐藏状态是 i t = q t i_t=q_t it=qt,而对应的观察状态为 o t = v t o_t=v_t ot=vt,则该时刻观察状态 v k v_k vk 在隐藏状态 q j q_j qj 下生成的概率 b j ( k ) b_j(k) bj(k) 满足:
在这里插入图片描述
这样 bij 可以组成观测状态生成的概率矩阵 B:
在这里插入图片描述
除此之外,我们需要一组在时刻 t = 1 t=1 t=1 的隐藏状态概率分布 Π Π Π
在这里插入图片描述

一个HMM模型,可以由隐藏状态初始概率分布 Π Π Π ,状态转移概率矩阵 A A A 和观测状态概率矩阵 B B B 决定。 A A A 决定状态序列, B B B 决定观测序列。因此,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.观测

如此下去,直到重复三次,得到一个球的颜色的观测序列: O O O={红,白,红},在这个过程中,观察者只能看到球的颜色序列,却不能看到球是从哪个盒子里取出的。

4.HMM模型

  1. 观察集合是: V V V={红,白}, M M M=2
  2. 状态集合是: Q Q Q={盒子1,盒子2,盒子3}, N N N=3
  3. 初始状态分布为: Π Π Π = ( 0.2 , 0.4 , 0.4 ) T (0.2, 0.4, 0.4)^T (0.2,0.4,0.4)T
  4. 状态转移概率分布矩阵为:
    . 在这里插入图片描述
  5. 观测状态概率矩阵为:
    7.

5.观测序列的生成

在这里插入图片描述

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

1.评估观察序列概率

给定模型 λ = ( A , B , Π ) λ = (A, B, Π) λ=(A,B,Π) 和观察序列 O = O = O= o 1 , o 2 , . . . , o T o_1, o_2, ..., o_T o1,o2,...,oT ,计算在模型 λ λ λ 下观测序列 O O O 出现的概率 P ( O ∣ λ ) P(O|λ) P(Oλ)。这个问题的求解需要用到前向后向算法,这个问题是HMM模型三个问题中最简单的。

2.模型参数学习问题

给定观测序列 O = O = O= o 1 , o 2 , . . . , o T o_1, o_2, ..., o_T o1,o2,...,oT ,估计模型 λ = ( A , B , Π ) λ = (A, B, Π) λ=(A,B,Π) 的参数,使该模型下观测序列的条件概率 P ( O ∣ λ ) P(O|λ) P(Oλ)最大。这个问题的求解需要用到基于EM算法的鲍姆-韦尔奇算法, 这个问题是HMM模型三个问题中最复杂的。

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

给定模型 λ = ( A , B , Π ) λ = (A, B, Π) λ=(A,B,Π) 和观测序列 O = O = O= o 1 , o 2 , . . . , o T o_1, o_2, ..., o_T o1,o2,...,oT,求给定观测序列条件下,最可能出现的对应的状态序列,这个问题的求解需要用到基于动态规划的维特比算法,这个问题是HMM模型三个问题中复杂度居中的算法。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐