隐马尔科夫4

本文是我学习李航老师的《统计学习方法》的学习笔记。

概率计算法

计算观测序列概率 P ( O ∣ λ ) P(O|λ) P(Oλ)的前向与后向算法。

1.直接计算法

给定模型 λ = ( A , B , π ) λ=(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 ∣ λ ) P(O|λ) P(Oλ),最直接的方法就是按概率公式直接计算。通过列举所有可能的长度为T的状态序列 I = ( i 1 , i 2 , . . . , i T ) I=(i_1,i_2,...,i_T) I=(i1,i2,...,iT),对各个状态序列 I I I与观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT)的联合概率 P ( O , I ∣ λ ) P(O,I|λ) P(O,Iλ),然后对所有可能的状态序列求和,得到 P ( O ∣ λ ) P(O|λ) 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|λ)=π_{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,λ)=b_{i_1}(o_1)b_{i_2}(o_2)...b_{i_T}(o_T) P(OI,λ)=bi1(o1)bi2(o2)...biT(oT)
O O O I I I同时出现的概率为
P ( O , I ∣ λ ) = P ( O ∣ I , λ ) P ( 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|λ)=P(O|I,λ)P(I|λ)= π_{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(OI,λ)P(Iλ)=πi1bi1(o1)ai1i2bi2(o2)...aiT1iTbiT(oT)
然后,对所有可能的状态序列I求和,得到观测序列O的概率 P ( O ∣ λ ) P(O|λ) P(Oλ),即
P ( O , I ∣ λ ) = ∑ I P ( O ∣ I , λ ) P ( 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,I|λ)=\sum_{I} P(O|I,λ)P(I|λ)=\sum_{i_1,i_2,...,i_T}π_{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λ)=IP(OI,λ)P(Iλ)=i1,i2,...,iTπi1bi1(o1)ai1i2bi2(o2)...aiT1iTbiT(oT)

但是计算量很大,是 O ( T N N ) O(TN^N) O(TNN)阶的,这种算法不可行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值