隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率

本文深入探讨隐马尔科夫模型(HMM)中求解观测序列概率的问题,介绍暴力求解方法及前向、后向算法的原理与实现。通过实例解析,展示了如何运用前向算法计算观测序列概率,并阐述了后向算法的递推过程,为HMM常见概率计算奠定基础。
摘要由CSDN通过智能技术生成

HMM问题一:求观测序列的概率

首先我们回顾下HMM模型的问题一。这个问题是这样的。我们已知HMM模型的参数 λ = ( A , B , Π ) \lambda = (A, B, \Pi) λ=(A,B,Π)。其中A是隐藏状态转移概率的矩阵,B是观测状态生成概率的矩阵, Π是隐藏状态的初始概率分布。同时我们也已经得到了观测序列 O = { o 1 , o 2 , . . . o T } O =\{o_1,o_2,...o_T\} O={ o1,o2,...oT},现在我们要求观测序列O在模型λ下出现的条件概率P(O|λ)。

暴力求解

乍一看,这个问题很简单。因为我们知道所有的隐藏状态之间的转移概率和所有从隐藏状态到观测状态生成概率,那么我们是可以暴力求解的。

我们可以列举出所有可能出现的长度为T的隐藏序列 I = { i 1 , i 2 , . . . , i T } I = \{i_1,i_2,...,i_T\} I={ i1,i2,...,iT},分布求出这些隐藏序列与观测序列 O = { o 1 , o 2 , . . . o T } O =\{o_1,o_2,...o_T\} O={ o1,o2,...oT}的联合概率分布P(O,I|λ),这样我们就可以很容易的求出边缘分布P(O|λ)了。

具体暴力求解的方法是这样的:首先,任意一个隐藏序列 I = { i 1 , i 2 , . . . , i T } I = \{i_1,i_2,...,i_T\} I={ i1,i2,...,iT}出现的概率是:
P ( I ∣ λ ) = π i 1 a i 1 i 2 a i 2 i 3 . . . a i T − 1      i T P(I|\lambda) = \pi_{i_1} a_{i_1i_2} a_{i_2i_3}... a_{i_{T-1}\;\;i_T} P(Iλ)=πi1ai1i2ai2i3...aiT1iT
对于固定的状态序列 I = { i 1 , i 2 , . . . , i T } I = \{i_1,i_2,...,i_T\} I={ i1,i2,...,iT},我们要求的观察序列 O = { o 1 , o 2 , . . . o T } O =\{o_1,o_2,...o_T\} O={ o1,o2,...oT}出现的概率是:
P ( O ∣ I , λ ) = b i 1 ( o 1 ) b i 2 ( o 2 ) . . . b i T ( o T ) P(O|I, \lambda) = b_{i_1}(o_1)b_{i_2}(o_2)...b_{i_T}(o_T) P(OI,λ)=bi1(o1)bi2(o2)...biT(oT)
    则O和I联合出现的概率是:
P ( O , I ∣ λ ) = P ( I ∣ λ ) P ( O ∣ I , λ ) = π i 1 b i 1 ( o 1 ) a i 1 i 2 b i 2 ( o 2 ) . . . a i T − 1      i T b i T ( o T ) P(O,I|\lambda) = P(I|\lambda)P(O|I, \lambda) = \pi_{i_1}b_{i_1}(o_1)a_{i_1i_2}b_{i_2}(o_2)...a_{i_{T-1}\;\;i_T}b_{i_T}(o_T) P(O,Iλ)=P(Iλ)P(OI,λ)=πi1bi1(o1)ai1i2bi2(o2)...aiT1iTbiT(oT)
    然后求边缘概率分布,即可得到观测序列O在模型λ下出现的条件概率P(O|λ):
P ( O ∣ λ ) = ∑ I P ( O , I ∣ λ ) = ∑ i 1 , i 2 , . . . i T π i 1 b i 1 ( o 1 ) a i 1 i 2 b i 2 ( o 2 ) . . . a i T − 1      i T b i T ( o T ) P(O|\lambda) = \sum\limits_{I}P(O,I|\lambda) = \sum\limits_{i_1,i_2,...i_T}\pi_{i_1}b_{i_1}(o_1)a_{i_1i_2}b_{i_2}(o_2)...a_{i_{T-1}\;\;i_T}b_{i_T}(o_T) P(Oλ)=IP(O,Iλ)=i1,i2,...iTπi1bi1(o1)ai1i2bi2(o2)...aiT1iTbiT(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值