当前位置:   article > 正文

HMM(利用前向后向求概率)_试利用前向概率及后向概率,证明前向后向算法

试利用前向概率及后向概率,证明前向后向算法

上文讲到用直接法求概率复杂度很大,本文讲述利用前向后向算法求概率。即给定模型参数λ,以及观测序列,求条件概率P(O|λ)

  • 前向算法(一定要记住前向概率定义)

    • 前向概率。给定模型参数λ,定义t时刻部分观测序列为o1,o2,...,ot,并且状态为qi的概率为前向概率。记为αt(i)=P(o1,o2,..,ot and it=qi|λ) ,
    • 接下来我们就可以根据前向概率求得P(O|λ)
      • 初值α1(i)=P(o1 and it=qi|λ)=πibi(o1)
      • 递推 对于t=1,2,3,...,T1
        αt+1(i)=P(o1,o2,..,ot+1 and it+1=qi|λ)
        =j=1NP(o1,o2,..,ot and it=qj|λ)ajibi(ot+1)
        =[j=1Nαt(j)aji]bi(ot+1)
      • 终止 P(O|λ)=i=1NαT(i)
        显然时间复杂度大幅度降低,只有O(TN2)
  • 后向算法(和前向算法如同一辙)

    • 后向概率。给定模型参数λ,定义t时刻部分观测序列为ot+1,ot+2,...,oT,且状态为qi的概率为后向概率。记为βt(i)=P(ot+1,ot+2,...,oT | it=qi and λ)。这里需要和前向概率区分一下,前向概率αt(i)是包含当前时刻t的观测,而βt(i)是不包含当前时刻观测的。
    • 接下来我们根据后向算法求概率P(O|λ)
      • 初值βT(i)=P(oT+1,oT+2,...,oT|iT=qi and λ)=1 这里和前向概率初值稍作区别
      • 对于t = T-1,T-2,…,1
        βt(i)=P(ot+1,ot+2,...,oT|it=qi and λ)
        =j=1Naijbj(ot+1)P(ot+2,...,oT|it+1=qj)
        =j=1Naijbj(ot+1)βt+1(j)
      • 终止P(O|λ)=i=1Nπibi(o1)β1(i)
  • 利用前向和后向计算一些概率(后面参数训练会用到)

    • 计算观测序列概率P(O|λ)
      • P(O|λ)
        =i=1Nj=1N
        P(o1,...,ot and it=qi|λ)aijbj(ot+1)
        P(ot+2,ot+3,...,oT|it+1=qj and λ)
        =i=1Nj=1Nαt(i)aijbj(ot+1)βt+1(j)
    • 计算给定模型λ和观测O,在时刻t处于状态qi的概率,记为γt(i)=P(it=qi|O,λ)
      • γt(i)=P(it=qi|O,λ)
        =P(it=qi,O|λ)÷P(O|λ)
        =αt(i)βt(i)÷i=1Nαt(i)βt(i)
    • 计算给定模型λ和观测O,在时刻t处于状态qi 并且 在时刻t+1处于状态qt的概率,记为ζt(i,j)=P(it=qi,it+1=qj|O,λ)
      =P(it=qi,it+1=qj,O|λ)÷P(O|λ)
      =αt(i)aijbj(ot+1)βt+1(j)
      ÷i=1Nj=1Nαt(i)aijbj(ot+1)βt+1(j)
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号