隐马尔可夫模型:观察序列概率估计(前向后向算法)
解码(decoding)问题(估计问题):给定观察序列
O=O1O2⋯OT和模型
μ=(A,B,π),计算观察序列
O的概率,即
P(O∣μ)。
穷举法:对于任意的状态序列
Q=q1q2⋯qT,有
P(O∣Q;μ)=t=1∏T−1P(Ot∣qt,qt−1;μ)=bq1(O1)bq2(O2)⋯bqT(OT)(6-8)
P(Q;μ)=πq1aq1q2aq2q3⋯aqT−1qT(6-9)
P(O;μ)=Q∑P(O,Q;μ)=Q∑P(O∣Q;μ)P(Q;μ)=Q∑(πq1bq1(O1)t=1∏T−1aqtqt+1bqt+1(Ot+1))(6-11)
该方式的问题是计算时间复杂度呈指数增长,假高模型
μ=(A,B,π)有
N个不同的状态,时间长度为
T,则可能状态序列数量为
NT。前向算法(前向计算过程,forward procedure)通过动态规划方式使“指数爆炸”问题可以在时间复杂度为
O(N2T)的范围内解决。HMM的动态规划问题–般用格架[Manning、Schitze,1999](trellis,lattice)组织形式描述。对于一个在某一时间结束在一定状态的HMM,每一个格(结点)记录该HMM所有输出符号的概率,较长子路径的概率可以由较短子路径的概率计算出来。
定义6-1(前向变量
αt(i)):在
t时刻,HMM输出序列为
O=O1O2⋯Ot,并且状态为
si的概率:
αt(i)=P(O1O2⋯Ot,qt=st;μ)(6-12)
由于
P(O;μ)是在所有状态
qT下观察到序列
O=O1O2⋯OT的概率:
P(O;μ)=si∑P(O1O2⋯OT,qt=si;μ)=i=1∑NαT(i)(6-13)
扫描二维码关注公众号,回复:
11302968 查看本文章
因此,对
P(O;μ)的计算可转变为前向变量
αt(i)的快速计算。
在格架结构中,
αt+1(j)存放在结点
(sj,t+1)处,表示在已知观察序列
O=O1O2⋯Ot+1的情况下,从
t时刻到达
t+1时刻的状态为
sj的概率。从初始时刻到
t+1时刻,HMM到达状态
sj,并且输出观察序列为
O=O1O2⋯Ot+1的过程可以分解为两个步骤:
-
从初始时刻到
t时刻,HMM到达状态
si并输出观察序列
O=O1O2⋯Ot,概率为
αt(i);
-
从状态
si转移到状态
sj,并在状态
sj输
Ot+1,概率为
aijbj(Ot+1)。
由于HMM可以从
N个不同的
si转移到
sj,因此,
t+1时刻的前向变量可由
t时刻前向变量
αt(1),αt(2),⋯,αt(N)归纳计算:
αt+1(j)=(i=1∑Nαt(i)aij)bj(Ot+1)(6-14)
前向变量
αt(i)可采用动态规划方法计算。
算法6-1(前向算法,forward procedure):
- 初始化
α1(i)=πibi(O1),1≤i≤N
- 归纳计算
αt+1(j)=(i=1∑Nαt(i)aij)bj(Ot+1), 1≤t≤T−1
- 求和:
P(O∣μ)=i=1∑NαT(i)
前向算法总体时间复杂度为
O(N2T)。
P(O;μ)还可以转变为后向变量
βt(i),通过动态规划快速计算。
定义6-2(后向变量
βt(i)):给定模型
μ=(A,B,π),并且在
t时刻状态为
si的条件下,HMM输出观察序列
O=Ot+1Ot+2⋯OT的概率:
βt(i)=P(Ot+1Ot+2⋯OT∣qt=st;μ)(6-15)
在
t时刻状态为
si的条件下,HMM输出观察序列为
O=Ot+1Ot+2⋯OT的过程可以分解为两个步骤:
-
从
t时刻到
t+1时刻,HMM由状态
si转移至状态
sj,并从状态
sj输出
Ot+1,概率为
aijbj(Ot+1);
-
在
t+1时刻、状态
sj的条件下,HMM输出观察序列
O=Ot+2⋯OT,概率为
βt+1(j)。
因此:
βt(i)=j=1∑Naijbj(Ot+1)βt+1(j)(6-16)
算法6-2(后向算法,backward procedure):
- 初始化
βT(i)=1,1≤i≤N
- 归纳计算
βt(i)=j=1∑Naijbj(Ot+1)βt+1(j), T−1≥t≥1
- 求和:
P(O∣μ)=i=1∑Nπibi(O1)β1(i)
后向算法的时间复杂度为
O(N2T)。
一般采用前向、后向算法结合的方法计算观察序列的概率:
P(O,qt=si;μ)=P(O1O2⋯OT,qt=si;μ)=P(O1O2⋯Ot,qt=si,Ot+1Ot+2⋯OT;μ)=P(O1O2⋯Ot,qt=si;μ)P(Ot+1Ot+2⋯OT∣O1O2⋯Ot,qt=si;μ)=P(O1O2⋯Ot,qt=si;μ)P(Ot+1Ot+2⋯OT∣qt=si;μ)=αt(i)βt(i)(6-17)
因此
P(O;μ)=i=1∑Nαt(i)βt(i), 1≤t≤T(6-18)