计算公式只是代入计算的时候用到的,我们还是要理解它们的本质。
我们先来回想一下前向变量和后向变量有什么关系,前面在解决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)
与β(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),这就很清楚了,乘以aij
和bj(O(t+1))
即可,我们再看一下上面的式子: