HMM(前向后向概率)

隐马尔科夫模型参数(三要素):

  • 初始状态概率
  • 转移概率
  • 观测概率

两个基本假设:

  • 齐次马尔可夫假设:HMM任一时刻t某一状态只依赖于其前一时刻的状态,与其它时刻的状态及观察无关,也即时刻t无关。
  • 观测独立性假设:任一时刻的观测只依赖于该时刻的马尔科夫链状态,与其他时刻及状态无关。

HMM概率计算问题:
概率计算就是给定一个模型参数已知的HMM和一组观测序列,求这组观测序列由这个HMM所生成的概率。概率计算问题评价了模型的好坏。HMM概率计算算法主要有前向算法和后向算法。

  • 前向算法
    前向概率:给定隐马尔科夫模型 λ \lambda ,定义到时刻t部分观察序列为 o 1 , o 2 , . . . o t o_1,o_2,...o_t 且状态为 q i q_i 的概率为前向概率,记作:
    α 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)
    1.初始化: α 1 ( i ) = π i b i ( O 1 ) , 1 i N \alpha _1(i) = \pi _ib_i(O_1),1 \le i \le 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
    3.求和终结:
    P ( O λ ) = i = 1 N α T ( i ) P(O|\lambda ) = \sum\nolimits_{i = 1}^N {{\alpha _T}(i)}
    前向算法的时间复杂度是 O ( N 2 T ) O({N^2}T) .
  • 后向算法
    后向概率:给定隐马尔科夫模型 λ \lambda ,定义在时刻t状态为 q i q_i 的条件下,从t+1时刻到T的部分观测序列为 o t + 1 , o t + 2 , . . . o T o_{t+1},o_{t+2},...o_T 的概率为后向概率,记作:
    β 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 )
    1.初始化: β T ( i ) = 1 , 1 i N {\beta _T}(i) = 1,1 \le i \le 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
    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)
    后向算法的时间复杂度是 O ( N 2 T ) O({N^2}T) .

猜你喜欢

转载自blog.csdn.net/qq_14962179/article/details/86316762