1.观测序列的生成过程
根据隐马尔科夫模型的定义,可以将一个长度为T的观测序列 O = ( o 1 , o 2 , . . , o T ) O=(o_1,o_2,..,o_T) O=(o1,o2,..,oT)的生成过程描述如下。
输入:隐马尔科夫模型
λ
=
(
A
,
B
,
π
)
λ=(A,B,π)
λ=(A,B,π),观测序列长度T;
输出:观测序列
O
=
(
o
1
,
o
2
,
.
.
.
,
o
T
)
O=(o_1,o_2,...,o_T)
O=(o1,o2,...,oT)。
(1)按照初始状态分布
π
π
π产生状态
i
1
i_1
i1;
(2)令t=1;
(3)按照状态
i
t
i_t
it的观测概率分布
b
i
t
(
k
)
b_{i_t}(k)
bit(k)生成
o
t
o_t
ot;
(4)按照状态
i
t
i_t
it的状态转移概率分布{
a
i
,
i
t
+
1
a_i,i_{t+1}
ai,it+1}产生状态
i
t
+
1
,
i
t
+
1
=
1
,
2
,
.
.
.
,
N
i_{t+1},i_{t+1}=1,2,...,N
it+1,it+1=1,2,...,N;
(5)令
t
=
t
+
1
t=t+1
t=t+1;如果
t
<
T
t<T
t<T,转步(3);否则,终止。
2.隐马尔科夫模型的3个基本问题
(1)概率计算问题。 给定模型 λ = ( A , B , π ) λ=(A,B,π) λ=(A,B,π)和观测序列 O = ( o 1 , o 2 , . . , o T ) O=(o_1,o_2,..,o_T) O=(o1,o2,..,oT),计算在模型 λ λ λ下观测序列O出现的概率 P ( O ∣ λ ) P(O|λ) P(O∣λ)。
(2)学习问题。 已知观测序列 O = ( o 1 , o 2 , . . , o T ) O=(o_1,o_2,..,o_T) O=(o1,o2,..,oT),估计模型 λ = ( A , B , π ) λ=(A,B,π) λ=(A,B,π)参数,使得在该模型下观测序列概率 P ( O ∣ λ ) P(O|λ) P(O∣λ)最大。即用极大似然估计的方法估计参数。
(3)预测问题,也称为解码(decoding)问题。已知模型 λ = ( A , B , π ) λ=(A,B,π) λ=(A,B,π)和观测序列 O = ( o 1 , o 2 , . . , o T ) O=(o_1,o_2,..,o_T) O=(o1,o2,..,oT),求对给定观测序列条件概率 P ( I ∣ O ) P(I|O) P(I∣O)最大的状态序列 I = ( i 1 , i 2 , . . . , i T ) I=(i_1,i_2,...,i_T) I=(i1,i2,...,iT)。即给定观测序列,求最有可能的对应的状态序列。