HMM中计算观测序列概率中前向算法和后向算法的理解
1.一些关键变量的定义
①所有可能的状态集合
②所有可能的观测集合
③I是长度为T的状态序列
④O是对应的观测序列
⑤状态转移概率矩阵
含义:在t时刻处于qi状态下载t+1时刻转移到qj状态的概率。
注意:NxN的方阵,大小与状态集合Q和状态qi有关。
⑥观测概率矩阵
含义:t时刻处于转态qj条件下生成观测概率ot(vk)的概率。
注意:NxM矩阵,矩阵的列数与观测集合的数量M有关,行数与状态集合的数量N有关,这里状态集合中的每一个状态实际上与时间序列T中的每一t也是一一对应的关系,可以理解成二者等价(实际上T<=N)。
⑦初始状态概率向量:
含义:时刻t1处于状态qi的概率。
2.前向算法和后向算法的理解
前向概率:
后向概率:
观测序列的前向算法和后向算法比较:
两种算法的步骤均为3步:
第一步:计算初值
第二步:递推下一时刻的前向概率或后向概率
第三步:终止计算
区别一:两种算法的初值定义不同。
前向算法:
后向算法初值:
区别二:
接下来针对前向算法和后向算法的递推公式说说自己的理解。
前向算法递推公式:
后向算法递推公式:
理解1:如果将整个观测序列看做一个长边很长,宽边相对短的矩形,从长边中间选择一点将长方形分成左右两部分:
(1)左侧的部分观测模型的逐步求出的过程就是前向算法,求解起点是最左端,即t=1时刻,方向是从左到右,到t=t停止。
(2)右侧的部分观测模型的逐步求出的过程就是后向算法,求解起点是最右端,即t=T时刻,方向是从右到左,到t=t停止。
理解2:我们要注意到在前向算法和后向算法两个递推公式中,关于时间t和T的定义变化趋势是不同的,不管是前向算法还是后向算法,最终计算得到都是整个观测序列的其中一部分,对于时间T的使用面试中都是由左向右逐渐增大的,而前向算法的中的计算时刻t的变化与整个观测序列的时刻变化方向一致,故在前向算法的计算过程中,当由时刻t转变到时刻t+1,T的变化趋势相同。而当使用后向算法时,当计算从时刻t转变到时刻t+1时,整个序列的时刻变化是由T-1
到T-2的过程,方向刚好相反。
理解3:不管是前向算法还是后向算法,都能够通过利用上一步的计算结果来进行下一步的计算,通过t时刻的观测序列和t+1时刻的生成观测概率,最红求出完整的前向概率部分或是后向概率部分。
上图为前向算法和后向算法的原始过程
上图为前向算法和后向算法的实际过程,从中可以看出,前向算法的t与整个序列的时间序列变化是一致的,而后向算法则相反。
理解4:由于前向算法的推理公式更符合常规的思路,为了便于理解后向算法的推理公式,我们改变后向算法递推公式的三个乘字的顺心,然后按照前向算法的理解方法理解后向算法。故后向算法的递推公式可以表示为:
对比 前向算法递推公式:
注意:需要细细体会下面的三句话