隐马尔可夫模型问题三:求最可能的隐藏状态序列

本文介绍如何利用隐马尔可夫模型解决预测问题,通过动态规划找出最有可能的隐藏状态序列。给定模型参数及观测序列,详细展示了最优路径求解过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

隐马尔可夫模型问题三求解

求最可能的隐藏状态序列,主要是通过动态规划求解概率最大的路径(最优路径),即通过动态规划求解马尔科夫模型的预测问题,最优路径对应一个状态序列。求解这种问题,我们一般使用马尔科夫模型。
已知模型λ=(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)=max⁡1≤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)=1j3max[δ1(j)aji]bi(o2)

对每个状态i=1,2,3i = 1,2,3i=1,2,3,我们需要记录概率最大的路径对应的前一个隐藏状态jjj:
ψ2(i)=arg⁡max⁡1≤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)=arg1j3max[δ1(j)aji]i=1,2,3
使用实际数据带入上述公式,得

δ2(1)=max⁡1≤j≤3[δ1(j)aj1]b1(o2)=max⁡j{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)=1j3max[δ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)=max⁡1≤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)=1j3max[δ2(j)aji]bi(o3)

ψ3(i)=arg⁡max⁡1≤j≤3[δ2(j)aji]{\psi _3}(i) = \arg \mathop {\max }\limits_{1 \le j \le 3} [{\delta _2}(j){a_{ji}}]ψ3(i)=arg1j3max[δ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=1j3maxδ3(i)=0.0147
所以,已知最优路径的终点i3∗i_3^*i3
i3∗=arg⁡max⁡i[δ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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值