1.前向算法
前向概率:给定隐马尔科夫模型
α
α
α,定义到时刻
t
t
t部分观测序列为
o
1
,
o
2
,
.
.
.
,
o
t
o_1,o_2,...,o_t
o1,o2,...,ot且状态为
q
i
q_i
qi的概率为前向概率,记作
α
t
(
i
)
=
P
(
o
1
,
o
2
,
.
.
.
,
o
t
,
i
t
=
q
i
∣
λ
)
α_t(i)=P(o_1,o_2,...,o_t,i_t=q_i|λ)
αt(i)=P(o1,o2,...,ot,it=qi∣λ)
直接看例子:
考虑盒子和球模型
λ
=
(
A
,
B
,
π
)
λ=(A,B,π)
λ=(A,B,π),状态集合Q={1,2,3},观测集合V={红,白}。
设
T
=
3
,
O
=
(
红
,
白
,
红
)
T=3,O=(红,白,红)
T=3,O=(红,白,红),试用前向算法计算
P
(
O
∣
λ
)
P(O|λ)
P(O∣λ)。
(1)计算处初值
因为第一个时刻是红色,所以
隐藏状态盒子1的概率
α
1
(
1
)
=
π
1
b
1
(
o
1
)
=
0.2
×
0.5
=
0.1
α1(1)=π1b1(o1)=0.2×0.5=0.1
α1(1)=π1b1(o1)=0.2×0.5=0.1
隐藏状态盒子2的概率
α
1
(
2
)
=
π
2
b
2
(
o
1
)
=
0.4
×
0.4
=
0.16
α1(2)=π2b2(o1)=0.4×0.4=0.16
α1(2)=π2b2(o1)=0.4×0.4=0.16
隐藏状态盒子3的概率
α
1
(
3
)
=
π
3
b
3
(
o
1
)
=
0.4
×
0.7
=
0.28
α1(3)=π3b3(o1)=0.4×0.7=0.28
α1(3)=π3b3(o1)=0.4×0.7=0.28
现在我们可以开始递推了,首先递推时刻2三个状态的前向概率:
时刻2是白色球,隐藏状态是盒子1的概率为:
α
2
(
1
)
=
[
∑
i
=
13
α
1
(
i
)
a
i
1
]
b
1
(
o
2
)
=
[
0.1
∗
0.5
+
0.16
∗
0.3
+
0.28
∗
0.2
]
×
0.5
=
0.077
α2(1)=[∑i=13α1(i)ai1]b1(o2)=[0.1∗0.5+0.16∗0.3+0.28∗0.2]×0.5=0.077
α2(1)=[∑i=13α1(i)ai1]b1(o2)=[0.1∗0.5+0.16∗0.3+0.28∗0.2]×0.5=0.077
隐藏状态是盒子2的概率为:
α
2
(
2
)
=
[
∑
i
=
13
α
1
(
i
)
a
i
2
]
b
2
(
o
2
)
=
[
0.1
∗
0.2
+
0.16
∗
0.5
+
0.28
∗
0.3
]
×
0.6
=
0.1104
α2(2)=[∑i=13α1(i)ai2]b2(o2)=[0.1∗0.2+0.16∗0.5+0.28∗0.3]×0.6=0.1104
α2(2)=[∑i=13α1(i)ai2]b2(o2)=[0.1∗0.2+0.16∗0.5+0.28∗0.3]×0.6=0.1104
隐藏状态是盒子3的概率为:
α
2
(
3
)
=
[
∑
i
=
13
α
1
(
i
)
a
i
3
]
b
3
(
o
2
)
=
[
0.1
∗
0.3
+
0.16
∗
0.2
+
0.28
∗
0.5
]
×
0.3
=
0.0606
α2(3)=[∑i=13α1(i)ai3]b3(o2)=[0.1∗0.3+0.16∗0.2+0.28∗0.5]×0.3=0.0606
α2(3)=[∑i=13α1(i)ai3]b3(o2)=[0.1∗0.3+0.16∗0.2+0.28∗0.5]×0.3=0.0606
继续递推,现在我们递推时刻3三个状态的前向概率:
时刻3是红色球,隐藏状态是盒子1的概率为:
α
3
(
1
)
=
[
∑
i
=
13
α
2
(
i
)
a
i
1
]
b
1
(
o
3
)
=
[
0.077
∗
0.5
+
0.1104
∗
0.3
+
0.0606
∗
0.2
]
×
0.5
=
0.04187
α3(1)=[∑i=13α2(i)ai1]b1(o3)=[0.077∗0.5+0.1104∗0.3+0.0606∗0.2]×0.5=0.04187
α3(1)=[∑i=13α2(i)ai1]b1(o3)=[0.077∗0.5+0.1104∗0.3+0.0606∗0.2]×0.5=0.04187
隐藏状态是盒子2的概率为:
α
3
(
2
)
=
[
∑
i
=
13
α
2
(
i
)
a
i
2
]
b
2
(
o
3
)
=
[
0.077
∗
0.2
+
0.1104
∗
0.5
+
0.0606
∗
0.3
]
×
0.4
=
0.03551
α3(2)=[∑i=13α2(i)ai2]b2(o3)=[0.077∗0.2+0.1104∗0.5+0.0606∗0.3]×0.4=0.03551
α3(2)=[∑i=13α2(i)ai2]b2(o3)=[0.077∗0.2+0.1104∗0.5+0.0606∗0.3]×0.4=0.03551
隐藏状态是盒子3的概率为:
α
3
(
3
)
=
[
∑
i
=
13
α
2
(
i
)
a
i
3
]
b
3
(
o
3
)
=
[
0.077
∗
0.3
+
0.1104
∗
0.2
+
0.0606
∗
0.5
]
×
0.7
=
0.05284
α3(3)=[∑i=13α2(i)ai3]b3(o3)=[0.077∗0.3+0.1104∗0.2+0.0606∗0.5]×0.7=0.05284
α3(3)=[∑i=13α2(i)ai3]b3(o3)=[0.077∗0.3+0.1104∗0.2+0.0606∗0.5]×0.7=0.05284
最终我们求出观测序列:O={红,白,红}的概率为:
P ( O ∣ λ ) = ∑ i = 13 α 3 ( i ) = 0.13022 P(O|λ)=∑i=13α3(i)=0.13022 P(O∣λ)=∑i=13α3(i)=0.13022