【隐马尔可夫模型】用前向算法计算观测序列概率P(O|λ)

​​​​​​​【隐马尔可夫模型】用后向算法计算观测序列概率P(O|λ)

【隐马尔可夫模型】隐马尔可夫模型的观测序列概率计算算法及例题详解

例: 盒子和球模型$\lambda=(A,B,\pi)$,状态集合Q=\{1,2,3\},观测集合V=\{Red,White\}

\left.A=\left[\begin{array}{ccc}0.5&0.2&0.3\\0.3&0.5&0.2\\0.2&0.3&0.5\end{array}\right.\right],\quad B=\left[\begin{array}{ccc}0.5&0.5\\0.4&0.6\\0.7&0.3\end{array}\right],\quad\pi=\left[\begin{array}{c}0.2\\0.4\\0.4\end{array}\right]

T=3,O=(\text{Red,White,Red}),求$P(O|\lambda).$​​​​​​​

解答 

A为状态转移概率矩阵,B为观测概率矩阵,π 为初始状态概率向量,O为观测序列

首先计算前向概率初值,注意 a_{ij} 指A的i行j列,b_i(o_j)指B的i行o_j列,

例如o_1是Red,对应观测集合V的第一列,对应观测概率矩阵B的第一列!

\begin{aligned}\alpha_1(1)&=\pi_1b_1(o_1)=0.10\\\alpha_1(2)&=\pi_2b_2(o_1)=0.16\\\alpha_1(3)&=\pi_3b_3(o_1)=0.28\end{aligned}

扫描二维码关注公众号,回复: 17224645 查看本文章

依据初值进行递推计算,这里b_1(o_3)就是对应B的第一行第一列的元素

\begin{aligned} \alpha_{2}(1)& =\left[\sum_{i=1}^{3}\alpha_{1}(i)a_{i1}\right]b_{1}(o_{2})=0.154\times0.5=0.077 \\ \alpha_{2}(2)& =\left[\sum_{i=1}^3\alpha_1(i)a_{i2}\right]b_2(o_2)=0.184\times0.6=0.1104 \\ \alpha_{2}(3)& =\left[\sum_{i=1}^3\alpha_1(i)a_{i3}\right]b_3(o_2)=0.202\times0.3=0.0606\\ \\ \alpha_{3}(1)& =\left[\sum_{i=1}^3\alpha_2(i)a_{i1}\right]b_1(o_3)=0.04187 & \\ \alpha_{3}(2)& =\left[\sum_{i=1}^3\alpha_2(i)a_{i2}\right]b_2(o_3)=0.03551 \\ \alpha_{3}\left(3\right)& =\left[\sum_{i=1}^3\alpha_2(i)a_{i3}\right]b_3(o_3)=0.05284 \end{aligned}

递推到T=3终止,对前向概率求和得到$P(O|\lambda).$

P(O|\lambda)=\sum_{i=1}^3\alpha_3(i)=0.13022

猜你喜欢

转载自blog.csdn.net/weixin_73404807/article/details/134783076