NLP-统计分词 隐马尔可夫模型介绍
NLP-统计分词 隐马尔可夫模型介绍一、隐马尔可夫模型二、隐马尔可夫模型定义三、举例1.初始条件2.规则3.观测4.HMM模型5.观测序列的生成四、HMM模型的三个基本问题1.评估观察序列概率2.模型参数学习问题3.预测问题,也称为解码问题(分词关系的问题)一、隐马尔可夫模型隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处
NLP-统计分词 隐马尔可夫模型介绍
一、隐马尔可夫模型
隐马尔科夫模型(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模型
- 观察集合是: V V V={红,白}, M M M=2
- 状态集合是: Q Q Q={盒子1,盒子2,盒子3}, N N N=3
- 初始状态分布为: Π Π Π = ( 0.2 , 0.4 , 0.4 ) T (0.2, 0.4, 0.4)^T (0.2,0.4,0.4)T
- 状态转移概率分布矩阵为:
. - 观测状态概率矩阵为:
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模型三个问题中复杂度居中的算法。
更多推荐
所有评论(0)