前向算法的实例应用

一、基本情况

        前面有章节介绍过前向算法的理论,似乎很难理解,本文将用一个实例来说明前向算法的应用,先回顾下前向算法的理论

        1、 一个隐马尔可夫模型 (HMM) 是由一个五元组描述的: 
                      λ  =( N,M ,A,B, π )
                     其中:
                              N = {q1,...qN}:状态的有限集合
                              M = {v1,...,vM}:观察值的有限集合
                              A = {aij},aij = P(qt = Sj |qt-1 = Si):状态转移概率矩阵
                              B = {bjk}, bjk = P(Ot = vk | qt = Sj):观察值概率分布矩阵
                              π = {πi},πi = P(q1 = Si):初始状态概率分布

        2、 给定HMM模型 λ = (A, B, π) ,则观察序列 O=O1,O2,…OT 可由以下步骤产生:


                               1.根据初始状态概率分布π= πi,选择一初始状态q1=Si;
                               2.设t=1;
                               3.根据状态 Si的输出概率分布bjk,输出Ot=vk;
                               4.根据状态转移概率分布aij,转移到新状态qt+1=Sj;
                               5.设t=t+1,如果t<T,重复步骤3、4,否则结束。


二、HMM的三个基本问题

        令 λ = {π,A,B} 为给定HMM的参数,
        令 O = O1,...,OT 为观察值序列,则有关于隐马尔可夫模型(HMM)的三个基本问题: 


        1.评估问题:对于给定模型,求某个观察值序列的概率P(O|λ) ;

        2.解码问题:对于给定模型和观察值序列,求可能性最大的状态序列maxQ{P(Q|O,λ)};

        3.学习问题:对于给定的一个观察值序列O,调整参数λ,使得观察值出现的概率P(O|λ)最大。


三、前向算法解决评估问题

      1、基本步骤:

                     定义前向变量:“在时间步t, 得到t之前的所有明符号序列, 且时间步t的状态是Si”这一事件的概率,

                                                     记为(t, i) = P(o1,…,ot, qt = Si|λ)

                     采用动态规划算法,复杂度O(N2T)


      2、算法过程:

                   

                           



四、算法应用

          HMM模型如下,试根据前向算法计算产生观察符号序列O={ABAB}的概率。 

      

             

 

初始概率矩阵π=(1,0,0),即开始处于状态1。按照前向算法公式,我们依次递推解出
    t(i) 。解法如下:

    1、当t=1时,

                                      

    2、当t=2时:

                                     

    3、当t=3时:

                                     

    4、当t=4时:
 

                                     

    所以最终有:
    P(O| λ)= 4(1)+ 4(2)+ 4(3)=0.0717696    即观察序列O由HMM模型产生的概率


       大家动笔一步一步按照实例来,就能理解前向算法的应用了,学过动态规划的就知道,上面这个过程其实用到了动态规划的思想,因此可以用动态规划的图示来看此问题:

                                                

                                                   



五、结语

           通过理论了解算法的思想和背景,通过实例了解算法的使用,这个是很重要的,反过来通过使用思考算法的思想,也会恍然大悟。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值