隐马尔可夫模型问题三求解
求最可能的隐藏状态序列,主要是通过动态规划求解概率最大的路径(最优路径),即通过动态规划求解马尔科夫模型的预测问题,最优路径对应一个状态序列。求解这种问题,我们一般使用马尔科夫模型。
已知模型λ=(A,B,π)\lambda = (A,B,\pi )λ=(A,B,π),并且
A=[0.50.20.30.30.50.20.20.30.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.50.50.40.60.70.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.20.40.4]\pi {\rm{ = }}\left[ {\begin{matrix}{} {0.2}&{0.4}&{0.4} \end{matrix}} \right]π=[0.20.40.4]
观测序列序列是已知的,并且O=红,白,红O = {红,白,红}O=红,白,红,那么可以求得最优的状态序列,即最优路径I∗=(i1∗,i2∗,i3∗){I^*} = (i_1^{\rm{*}},i_2^*,i_{\rm{3}}^*)I∗=(i1∗,i2∗,i3∗)。
解:如下图所示,如果在所有的隐藏状路径中找到一条最优路径,那么需要首先初始化。在t=1t = 1t=1时刻,对应的每一个隐藏状态i=1,2,3i = 1,2,3i=1,2,3,因此可以求出状态为iii并且观测状态o1{o_1}o1为红色的概率δ1(i){\delta _{\rm{1}}}(i)δ1(i),即
δ1(i)=πibi(o1)=πibi(红),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=2t=2t=2时,状态i=1,2,3i = 1,2,3i=1,2,3,需要求解t=1t = 1t=1时的并且隐藏状态是jjj,观测状态为红色,并且t=2t = 2t=2隐藏状态是iii,观测状态o2{o_2}o2为白色的路径最大概率,δ2(i){\delta _{\rm{2}}}(i)δ2(i),则
δ2(i)=max1≤j≤3[δ1(j)aji]bi(o2){\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,3i = 1,2,3i=1,2,3,我们需要记录概率最大的路径对应的前一个隐藏状态jjj:
ψ2(i)=argmax1≤j≤3[δ1(j)aji]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)=max1≤j≤3[δ1(j)aj1]b1(o2)=maxj{0.10×0.50.16×0.30.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=3t = 3t=3时,
δ3(i)=max1≤j≤3[δ2(j)aji]bi(o3){\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)=argmax1≤j≤3[δ2(j)aji]{\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∗=max1≤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
所以,已知最优路径的终点i3∗i_3^*i3∗:
i3∗=argmaxi[δ3(i)]=3i_3^* = \arg \mathop {\max }\limits_i [{\delta _3}(i)] = 3i3∗=argimax[δ3(i)]=3
(3) 通过最优路径的结束点i3∗i_3^*i3∗进行逆向查找,得到i2∗,i1∗i_2^*,i_1^*i2∗,i1∗:
当t=2t = 2t=2时,
i2∗=ψ3(i3∗)=ψ3(3)=3i_2^* = {\psi _3}(i_3^*) = {\psi _3}(3) = 3i2∗=ψ3(i3∗)=ψ3(3)=3
当t=1t = {1}t=1时,
i1∗=ψ2(i2∗)=ψ2(3)=3i_{\rm{1}}^* = {\psi _{\rm{2}}}(i_2^*) = {\psi _2}(3) = 3i1∗=ψ2(i2∗)=ψ2(3)=3
通过最优路径,我们得到的隐藏状态序列为I∗=(i1∗,i2∗,i3∗)=(3,3,3){I^*} = (i_1^{\rm{*}},i_2^*,i_{\rm{3}}^*){\rm{ = (3,3,3)}}I∗=(i1∗,i2∗,i3∗)=(3,3,3)。