隐马尔科夫之前向-后向算法

来源:互联网 发布:网络直销模式典例图片 编辑:程序博客网 时间:2024/04/28 06:49

       在隐马尔科夫模型中,评估和解码都是需要在已知模型参数的情况下进行的,但是我们往往并不知道这个模型参数,只有能够得到的观察序列,因而我们需要对模型参数进行估计,这便是隐马尔科夫模型的学习问题。


       前向-后向算法,通过一个给定的观察序列,对模型参数进行估计,并通过迭代计算不断地对模型参数进行调整,直到达到最优,即使得在该模型参数下给定的观察序列概率达到最大。


       前向算法在隐马尔可夫模型之前向算法和维特比算法中已有介绍,后向算法和前向算法类似。

       再次定义一下前向算法中的局部概率,将其称为前向变量,后向算法中同样有后向变量为β_t (i)。

       β_t (i) = P(O_t+1, O_t+2, ..., O_T | q_t = i, ϕ);ϕ表示为一个HMM模型。

       1. 初始化

       β_T (i) = a_iE,1 <= i <= N;E为终止状态,a_iE = 1;

       2. 递归

        ,1 <= i <= N, 1 <= t <= T;

       3. 终止

       P(O | λ) = a_T (q_E) = β_1(q_0) =



          


      重估转移概率a_ij:

      a_ij = C(q_i -> q_j) / ∑_k▒ C(q_i -> q_k);C(q_i -> q_j)表示从q_i转移到q_j的数目。

      定义在给定模型ϕ和观察序列O_1...T时,t时刻处在状态i,t+1时刻处在状态j的概率为ξ_t:

      ξ_t (i,j) = P(q_t = i, q_t+1 = j | O, λ)

             ξ_t (i,j)  = a_t(i) * b_t(i) / (a_T (a_F));

转移概率:


重估混淆矩阵B:

定义在给定模型和观察序列下,在时刻t处在状态j的概率为γ_t (j):

混淆矩阵:



(PS:前向-后向算法理解的并不是很好,大多公式都是从网上截图下来的。。)

0 0