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

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

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

例: 盒子和球模型$\lambda=(A,B,\pi)$

\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=(0.2,0.4,0.4)^\mathrm{T}​​​​​​​

T=4,O=(\text{Red,White,Red,White}),用后向算法求$P(O|\lambda)$

解答:

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

1)从T=4向下递推,设后向概率初值为1

\mathrm{\beta}_4\left(\mathrm{i}\right)=1\quad\mathrm{~i}=1,2,3​​​​​​​

2)递推,注意 a_{ij} 指的是A的i行j列,b_i(o_j)指的是B的i行o_j列,例如b_1(o_3)就是对应B的第一行第一列的元素

\begin{aligned} \beta_3\left(1\right)& =\sum_{\mathrm{j}=1}^3\mathrm{a}_{1\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_{4}\right)\beta_{4}\left(\mathrm{j}\right)=0.25+0.12+0.09=0.46 \\ \beta_{3}\left(2\right)& \mathrm{=\sum_{j=1}^3a_{2j}b_{j}\left(O_{4}\right)\beta_{4}\left(j\right)=0.15+0.3+0.06=0.51} \\ \beta_{3}\left(3\right)& =\sum_{\mathrm{j}=1}^3\mathrm{a}_{3\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_{4}\right)\mathrm{\beta}_{4}\left(\mathrm{j}\right)=0.1+0.18+0.15=0.43 \\ \end{aligned}

\begin{aligned}\beta_2\left(1\right)&=\sum_{\mathrm{j}=1}^3\mathrm{a}_{1\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_3\right)\beta_3\left(\mathrm{j}\right)=0.25*0.46+0.08*0.51+0.21*0.43=0.2461\\\beta_2\left(2\right)&=\sum_{\mathrm{j}=1}^3\mathrm{a}_{2\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_3\right)\beta_3\left(\mathrm{j}\right)=0.15*0.46+0.2*0.51+0.14*0.43=0.2312\\\beta_2\left(3\right)&=\sum_{\mathrm{j}=1}^3\mathrm{a}_{3\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_3\right)\beta_3\left(\mathrm{j}\right)=0.1*0.46+0.12*0.51+0.35*0.43=0.2577\end{aligned}

\begin{aligned}&\mathrm{\beta_1\left(1\right)=\sum_{j=1}^3a_{1j}b_j\left(O_2\right)\beta_2\left(j\right)=0.25*0.2461+0.12*0.2312+0.09*0.2577=0.112462}\\&\mathrm{\beta_1\left(2\right)=\sum_{j=1}^3a_{2j}b_j\left(O_2\right)\beta_2\left(j\right)=0.15*0.2461+0.3*0.2312+0.06*0.2577=0.121737}\\&\mathrm{\beta_1\left(3\right)=\sum_{j=1}^3a_{3j}b_j\left(O_2\right)\beta_2\left(j\right)=0.1*0.2461+0.18*0.2312+0.15*0.2577=0.104881}\end{aligned}

3)递推至\beta _1终止,求和得到$P(O|\lambda)$ 

\mathrm{P}\left(\mathrm{O}|\lambda)\right. \\\\=\sum_{i=1}^3\pi_\mathrm{i}b_\mathrm{i}\left(\mathrm{O}_1\right)\beta_1\left(\mathrm{i}\right) \\\\=0.2*0.5*0.112462+0.4*0.4*0.121737+0.4*0.7*0.104881 \\\\=0.0600908​​​​​​​

猜你喜欢

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