aihot  2020-11-12 11:20:41  OpenCV |   查看评论   

  计算公式只是代入计算的时候用到的,我们还是要理解它们的本质。

  我们先来回想一下前向变量和后向变量有什么关系,前面在解决HMM的第一个问题的时候,提出了一种结合前向变量和后向变量的方法,从那个方法中我们能够发现,前向变量和后向变量的设计是非常巧妙的,我们再看一下它们的表达式:

前向变量

前向变量

后向变量

后向变量

  我们想一下前向变量αt(i)和后向变量βt(i)相乘是什么,前向变量的条件是模型µ,前向变量是已知模型µ,得到观察序列O1O2...Ot,且当前状态为si的概率,然后再乘以后向变量,后向变量的条件是模型µ和当前状态为si,这个当前状态为si正好与前向变量的结论契合的严丝合缝,然后我们继续看,后向变量的结论是O(t+1)O(t+2)...OT,当时提出后向变量的时候有没有想过这样一个问题,为什么是O(t+1)O(t+2)...OT,而不是OtO(t+1)...OT,从Ot而不是O(t+1)开始?为的就是与前向变量向契合,前向变量的结论是O1O2...Ot,再加上后向变量的结论O(t+1)O(t+2)...OT,正好是全部的观察序列O1O2...OT。

  然后我们再看ξt(i,j),它的定义是给定HMM的参数µ和观察序列O=O1O2...OT,在时间t位于状态si,时间t+1位于状态sj的概率。

  ξt(i,j)与前向变量αt(i)和后向变量β(t+1)(j)的关系如下:

ξt(i,j)与前向变量和后向变量的关系

ξt(i,j)与前向变量和后向变量的关系

  前面讲了αt(i)β(t)(i)的关系,这里有些区别,不是β(t)(i)而是t+1时刻的β(t+1)(j)。根据ξt(i,j)的定义,我们需要观察序列O=O1O2...OT、在时间t位于状态si和时间t+1位于状态sj,依次补齐即可,αt(i)提供了O1O2...Ot和在时间t位于状态siβ(t+1)(j)提供了O(t+2)O(t+3)...OT和在时间t+1位于状态sj,还缺什么?还缺状态si到状态sj的转化和符号O(t+1),这就很清楚了,乘以aijbj(O(t+1))即可,我们再看一下上面的式子:

浅谈自然语言处理基础

 

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自浅谈自然语言处理基础(上)

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]