隐马尔科夫模型参数(三要素):
- 初始状态概率
- 转移概率
- 观测概率
两个基本假设:
- 齐次马尔可夫假设:HMM任一时刻t某一状态只依赖于其前一时刻的状态,与其它时刻的状态及观察无关,也即时刻t无关。
- 观测独立性假设:任一时刻的观测只依赖于该时刻的马尔科夫链状态,与其他时刻及状态无关。
HMM概率计算问题:
概率计算就是给定一个模型参数已知的HMM和一组观测序列,求这组观测序列由这个HMM所生成的概率。概率计算问题评价了模型的好坏。HMM概率计算算法主要有前向算法和后向算法。
- 前向算法
前向概率:给定隐马尔科夫模型 λ \lambda λ,定义到时刻t部分观察序列为 o 1 , o 2 , . . . o t o_1,o_2,...o_t o1,o2,...ot且状态为 q i q_i qi的概率为前向概率,记作:
α t ( i ) = P ( o 1 , o 2 , . . . o t , i t = q i ∣ λ ) \alpha _t(i) = P(o_1,o_2,...o_t,i_t = q_i|\lambda) αt(i)=P(o1,o2,...ot,it=qi∣λ)
1.初始化: α 1 ( i ) = π i b i ( O 1 ) , 1 ≤ i ≤ N \alpha _1(i) = \pi _ib_i(O_1),1 \le i \le N α1(i)=πibi(O1),1≤i≤N
2.递归计算:
α t + 1 ( j ) = ( ∑ i = 1 N α t ( i ) a i j ) b j ( O t + 1 ) , 1 ≤ t ≤ T − 1 {\alpha _{t + 1}}(j) = (\sum\nolimits_{i = 1}^N {{\alpha _t}(i){a_{ij}}} ){b_j}({O_{t + 1}}),1 \le t \le T - 1 αt+1(j)=(∑i=1Nαt(i)aij)bj(Ot+1),1≤t≤T−1
3.求和终结:
P ( O ∣ λ ) = ∑ i = 1 N α T ( i ) P(O|\lambda ) = \sum\nolimits_{i = 1}^N {{\alpha _T}(i)} P(O∣λ)=∑i=1NαT(i)
前向算法的时间复杂度是 O ( N 2 T ) O({N^2}T) O(N2T). - 后向算法
后向概率:给定隐马尔科夫模型 λ \lambda λ,定义在时刻t状态为 q i q_i qi的条件下,从t+1时刻到T的部分观测序列为 o t + 1 , o t + 2 , . . . o T o_{t+1},o_{t+2},...o_T ot+1,ot+2,...oT的概率为后向概率,记作:
β t ( i ) = P ( o t + 1 , o t + 2 , . . . o T ∣ i t = q i , λ ) {\beta _t}(i) = P(o_{t+1},o_{t+2},...o_T|{i_t} = {q_i},\lambda ) βt(i)=P(ot+1,ot+2,...oT∣it=qi,λ)
1.初始化: β T ( i ) = 1 , 1 ≤ i ≤ N {\beta _T}(i) = 1,1 \le i \le N βT(i)=1,1≤i≤N
2.递归计算:
β t ( i ) = ∑ j = 1 N a i j b j ( O t + 1 ) β t + 1 ( j ) , T − 1 ≥ t ≥ 1 , 1 ≤ i ≤ N {\beta _t}(i) = \sum\nolimits_{j = 1}^N {{a_{ij}}{b_j}({O_{t{\rm{ + 1}}}}){\beta _{t + 1}}(j)} ,T - 1 \ge t \ge 1,1 \le i \le N βt(i)=∑j=1Naijbj(Ot+1)βt+1(j),T−1≥t≥1,1≤i≤N
3.求和终结:
P ( O ∣ λ ) = ∑ i = 1 N π i b i ( O 1 ) β 1 ( i ) P(O|\lambda ) = \sum\nolimits_{i = 1}^N {{\pi _i}{b_i}({O_1})} {\beta _1}(i) P(O∣λ)=∑i=1Nπibi(O1)β1(i)
后向算法的时间复杂度是 O ( N 2 T ) O({N^2}T) O(N2T).