自然语言处理隐马尔可夫模型Ⅰ马尔可夫模型
Posted 不牌不改
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然语言处理隐马尔可夫模型Ⅰ马尔可夫模型相关的知识,希望对你有一定的参考价值。
有任何的书写错误、排版错误、概念错误等,希望大家包含指正。
由于字数限制,分成六篇博客。
【自然语言处理】隐马尔可夫模型【Ⅰ】马尔可夫模型
【自然语言处理】隐马尔科夫模型【Ⅱ】隐马尔科夫模型概述
【自然语言处理隐马尔科夫模型【Ⅲ】估计问题
【自然语言处理】隐马尔科夫模型【Ⅳ】学习问题
【自然语言处理】隐马尔科夫模型【Ⅴ】解码问题
【自然语言处理】隐马尔科夫模型【Ⅵ】精度问题
1. 马尔可夫模型
在介绍隐马尔可夫模型之前,先来介绍马尔可夫模型。
我们知道,随机过程又称随机函数,是随时间而随机变化的过程。马尔可夫模型(Markov model)描述了一类重要的随机过程。我们常常需要考察一个随机变量序列,这些随机变量并不是相互独立的,每个随机变量的值依赖于这个序列前面的状态。如果一个系统有
N
N
N 个有限状态
Q
=
q
1
,
q
2
,
…
,
q
N
Q=\\q_1,q_2,\\dots,q_N\\
Q=q1,q2,…,qN,那么随着时间的推移,该系统将从某一状态转移到另一状态。
S
=
s
1
,
s
2
,
…
,
s
T
S=\\s_1,s_2,\\dots,s_T\\
S=s1,s2,…,sT 为一个随机变量序列,随机变量的取值为状态集
Q
Q
Q 中的某个状态,假定在时刻
t
t
t 的状态记为
s
t
s_t
st。对该系统的描述通常需要给出当前时刻
t
t
t 的状态和其前面所有时刻状态的关系:系统在时刻
t
t
t 的状态
q
j
q_j
qj 的概率取决于其在时刻
1
,
2
,
…
,
t
−
1
1,2,\\dots,t-1
1,2,…,t−1 的状态,该概率为
P
(
s
t
=
q
j
∣
s
t
−
1
=
q
i
,
s
t
−
2
=
q
k
,
…
)
P(s_t = q_j\\mid s_t-1 = q_i,s_t-2=q_k,\\dots)
P(st=qj∣st−1=qi,st−2=qk,…)
如果在特定条件下,系统在时刻
t
t
t 的状态只与其在时刻
t
−
1
t-1
t−1 的状态相关,即
P
(
s
t
=
q
j
∣
s
t
−
1
=
q
i
,
s
t
−
2
=
q
k
,
…
)
=
P
(
s
t
=
q
j
∣
s
t
−
1
=
q
i
)
P(s_t = q_j\\mid s_t-1 = q_i,s_t-2=q_k,\\dots)=P(s_t = q_j\\mid s_t-1 = q_i)
P(st=qj∣st−1=qi,st−2=qk,…)=P(st=qj∣st−1=qi)
则该系统构成一个离散的一阶马尔可夫链(Markov chain)。进一步,如果只考虑上式独立于时刻
t
t
t 的随机过程:
P
(
s
t
=
q
j
∣
s
t
−
1
=
q
i
)
=
a
i
j
,
1
≤
i
,
j
≤
N
P(s_t = q_j\\mid s_t-1 = q_i)=a_ij,\\space\\space\\space\\space 1\\le i,j\\le N
P(st=qj∣st−1=qi)=aij, 1≤i,j≤N
该随机过程为马尔可夫模型。其中,状态转移概率
a
i
j
a_ij
aij 必须满足以下条件:
a
i
j
≥
0
∑
j
=
1
N
a
i
j
=
1
a_ij\\ge 0 \\\\ \\sum_j=1^N a_ij=1
aij≥0j=1∑Naij=1
显然,有
N
N
N 个状态的一阶马尔可夫过程有
N
2
N^2
N2 次状态转移,其
N
2
N^2
N2 个状态转移概率可以表示成一个状态转移矩阵。例如,一段文字中名词、动词、形容词三类词性出现的情况可由三个状态的马尔可夫模型描述:
状态
q
1
q_1
q1 表示名词,状态
q
2
q_2
q2 表示动词,状态
q
3
q_3
q3 表示形容词。假设状态之间的转移矩阵如下:
A
=
[
a
i
j
]
=
q
1
q
2
q
3
q
1
q
2
q
3
[
0.3
0.5
0.2
0.5
0.3
0.2
0.4
0.2
0.4
]
A = [a_ij]=\\space\\space \\beginmatrix \\beginmatrix & q_1&\\space\\space q_2\\space\\space & q_3 \\endmatrix \\\\ \\beginmatrix q_1\\\\q_2\\\\q_3 \\endmatrix \\left[\\beginmatrix 0.3 & 0.5 & 0.2 \\\\ 0.5 & 0.3 & 0.2 \\\\ 0.4 & 0.2 & 0.4 \\\\ \\endmatrix \\right] \\endmatrix
A=[aij]= q1 q2 q3q1q2q3⎣⎡0.30.50.4自然语言处理 | 隐马尔可夫模型
机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM) 代码实现