隐马尔可夫模型问题三求解
求最可能的隐藏状态序列,主要是通过动态规划求解概率最大的路径(最优路径),即通过动态规划求解马尔科夫模型的预测问题,最优路径对应一个状态序列。求解这种问题,我们一般使用马尔科夫模型。
已知模型
λ
=
(
A
,
B
,
π
)
\lambda = (A,B,\pi )
λ=(A,B,π),并且
A
=
[
0.5
0.2
0.3
0.3
0.5
0.2
0.2
0.3
0.5
]
A = \left[ {\begin{matrix} {0.5}&{0.2}&{0.3}\\ {0.3}&{0.5}&{0.2}\\ {0.2}&{0.3}&{0.5} \end{matrix}} \right]
A=⎣⎡0.50.30.20.20.50.30.30.20.5⎦⎤
B = [ 0.5 0.5 0.4 0.6 0.7 0.3 ] {\rm{ B = }}\left[ {\begin{matrix}{} {0.5}&{0.5}\\ {0.4}&{0.6}\\ {0.7}&{0.3}\\ \end{matrix}} \right] B=⎣⎡0.50.40.70.50.60.3⎦⎤
π = [ 0.2 0.4 0.4 ] \pi {\rm{ = }}\left[ {\begin{matrix}{} {0.2}&{0.4}&{0.4} \end{matrix}} \right] π=[0.20.40.4]
观测序列序列是已知的,并且
O
=
红
,
白
,
红
O = {红,白,红}
O=红,白,红,那么可以求得最优的状态序列,即最优路径
I
∗
=
(
i
1
∗
,
i
2
∗
,
i
3
∗
)
{I^*} = (i_1^{\rm{*}},i_2^*,i_{\rm{3}}^*)
I∗=(i1∗,i2∗,i3∗)。
解:如下图所示,如果在所有的隐藏状路径中找到一条最优路径,那么需要首先初始化。在
t
=
1
t = 1
t=1时刻,对应的每一个隐藏状态
i
=
1
,
2
,
3
i = 1,2,3
i=1,2,3,因此可以求出状态为
i
i
i并且观测状态
o
1
{o_1}
o1为红色的概率
δ
1
(
i
)
{\delta _{\rm{1}}}(i)
δ1(i),即
δ
1
(
i
)
=
π
i
b
i
(
o
1
)
=
π
i
b
i
(
红
)
,
i
=
1
,
2
,
3
{\delta _{\rm{1}}}(i) = {\pi _i}{b_i}({o_1}) = {\pi _i}{b_i}(红),i = 1,2,3
δ1(i)=πibi(o1)=πibi(红),i=1,2,3
令
ψ
1
(
i
)
=
0
,
i
=
1
,
2
,
3
{\psi _{\rm{1}}}(i) = 0,i = 1,2,3
ψ1(i)=0,i=1,2,3,作为概率最大的第一个隐藏状态。
(1) 当 t = 2 t=2 t=2时,状态 i = 1 , 2 , 3 i = 1,2,3 i=1,2,3,需要求解 t = 1 t = 1 t=1时的并且隐藏状态是 j j j,观测状态为红色,并且 t = 2 t = 2 t=2隐藏状态是 i i i,观测状态 o 2 {o_2} o2为白色的路径最大概率, δ 2 ( i ) {\delta _{\rm{2}}}(i) δ2(i),则
δ 2 ( i ) = max 1 ≤ j ≤ 3 [ δ 1 ( j ) a j i ] b i ( o 2 ) {\delta _{\rm{2}}}(i) = \mathop {\max }\limits_{{\rm{1}} \le j \le {\rm{3}}} [{\delta _1}(j){a_{ji}}]{b_i}({o_2}) δ2(i)=1≤j≤3max[δ1(j)aji]bi(o2)
对每个状态
i
=
1
,
2
,
3
i = 1,2,3
i=1,2,3,我们需要记录概率最大的路径对应的前一个隐藏状态
j
j
j:
ψ
2
(
i
)
=
arg
max
1
≤
j
≤
3
[
δ
1
(
j
)
a
j
i
]
i
=
1
,
2
,
3
{\psi _{\rm{2}}}(i) = \arg \mathop {\max }\limits_{{\rm{1}} \le j \le {\rm{3}}} [{\delta _{\rm{1}}}(j){a_{ji}}]i = 1,2,3
ψ2(i)=arg1≤j≤3max[δ1(j)aji]i=1,2,3
使用实际数据带入上述公式,得
δ 2 ( 1 ) = max 1 ≤ j ≤ 3 [ δ 1 ( j ) a j 1 ] b 1 ( o 2 ) = max j { 0 . 10 × 0 . 5 0 . 16 × 0 . 3 0 . 28 × 0 . 2 } × 0 . 5 = 0 . 028 \begin{matrix}{} {\delta _{\rm{2}}}({\rm{1}}) = \mathop {\max }\limits_{{\rm{1}} \le j \le {\rm{3}}} [{\delta _1}(j){a_{j{\rm{1}}}}]{b_{\rm{1}}}({o_2})\\ {\kern 125pt}{\rm{ = }}\mathop {\max }\limits_j {\rm{\{ 0}}{\rm{.10}} \times {\rm{0}}{\rm{.5}}{\rm{0}}{\rm{.16}} \times {\rm{0}}{\rm{.3}}{\rm{0}}{\rm{.28}} \times {\rm{0}}{\rm{.2\} }} \times {\rm{0}}{\rm{.5}}\\ {\kern -34pt}{\rm{ = 0}}{\rm{.028}} \end{matrix} δ2(1)=1≤j≤3max[δ1(j)aj1]b1(o2)=jmax{0.10×0.50.16×0.30.28×0.2}×0.5=0.028
ψ 2 ( 1 ) = 3 {\psi _2}(1) = 3 ψ2(1)=3
δ 2 ( 1 ) = 0 . 0504 {\delta _2}(1) = {\rm{0}}{\rm{.0504}} δ2(1)=0.0504
ψ 2 ( 2 ) = 3 {\psi _2}({\rm{2}}) = 3 ψ2(2)=3
δ 2 ( 3 ) = 0 . 0042 {\delta _2}({\rm{3}}) = {\rm{0}}{\rm{.0042}} δ2(3)=0.0042
ψ 2 ( 3 ) = 3 {\psi _2}({\rm{3}}) = 3 ψ2(3)=3
当 t = 3 t = 3 t=3时,
δ 3 ( i ) = max 1 ≤ j ≤ 3 [ δ 2 ( j ) a j i ] b i ( o 3 ) {\delta _{\rm{3}}}(i) = \mathop {\max }\limits_{1 \le j \le 3} [{\delta _2}(j){a_{ji}}]{b_i}({o_3}) δ3(i)=1≤j≤3max[δ2(j)aji]bi(o3)
ψ 3 ( i ) = arg max 1 ≤ j ≤ 3 [ δ 2 ( j ) a j i ] {\psi _3}(i) = \arg \mathop {\max }\limits_{1 \le j \le 3} [{\delta _2}(j){a_{ji}}] ψ3(i)=arg1≤j≤3max[δ2(j)aji]
δ 3 ( 1 ) = 0.00756 {\delta _{\rm{3}}}(1) = 0.00756 δ3(1)=0.00756
ψ 3 ( 1 ) = 2 {\psi _3}(1) = 2 ψ3(1)=2
δ 3 ( 2 ) = 0.01008 {\delta _3}(2) = 0.01008 δ3(2)=0.01008
ψ 3 ( 2 ) = 2 {\psi _3}(2) = 2 ψ3(2)=2
δ 3 ( 3 ) = 0.0147 {\delta _3}(3) = 0.0147 δ3(3)=0.0147
ψ 3 ( 3 ) = 3 {\psi _3}(3) = 3 ψ3(3)=3
(2) 我们使用
P
∗
{P^*}
P∗表示最终求解得到的最优路径的概率,得
P
∗
=
max
1
≤
j
≤
3
δ
3
(
i
)
=
0
.
0147
{P^*} = \mathop {\max }\limits_{1 \le j \le 3} {\delta _3}(i){\rm{ = 0}}{\rm{.0147}}
P∗=1≤j≤3maxδ3(i)=0.0147
所以,已知最优路径的终点
i
3
∗
i_3^*
i3∗:
i
3
∗
=
arg
max
i
[
δ
3
(
i
)
]
=
3
i_3^* = \arg \mathop {\max }\limits_i [{\delta _3}(i)] = 3
i3∗=argimax[δ3(i)]=3
(3) 通过最优路径的结束点 i 3 ∗ i_3^* i3∗进行逆向查找,得到 i 2 ∗ , i 1 ∗ i_2^*,i_1^* i2∗,i1∗:
当
t
=
2
t = 2
t=2时,
i
2
∗
=
ψ
3
(
i
3
∗
)
=
ψ
3
(
3
)
=
3
i_2^* = {\psi _3}(i_3^*) = {\psi _3}(3) = 3
i2∗=ψ3(i3∗)=ψ3(3)=3
当
t
=
1
t = {1}
t=1时,
i
1
∗
=
ψ
2
(
i
2
∗
)
=
ψ
2
(
3
)
=
3
i_{\rm{1}}^* = {\psi _{\rm{2}}}(i_2^*) = {\psi _2}(3) = 3
i1∗=ψ2(i2∗)=ψ2(3)=3
通过最优路径,我们得到的隐藏状态序列为
I
∗
=
(
i
1
∗
,
i
2
∗
,
i
3
∗
)
=
(
3
,
3
,
3
)
{I^*} = (i_1^{\rm{*}},i_2^*,i_{\rm{3}}^*){\rm{ = (3,3,3)}}
I∗=(i1∗,i2∗,i3∗)=(3,3,3)。