本章涉及到的知识点清单:
1、前向概率的定义
2、前向概率的递推关系推导
3、前向概率求解
4、Forward算法流程
5、后向概率的定义
6、后向概率的递推关系推导
7、后向概率求解
8、Backward算法流程
9、案例演示
10、Evaluation问题总结
一、前向概率的定义
为了解决Evaluation问题的高时间复杂度,我们引入一个前向概率,如上图所示,表示时刻的观测,以及时刻的隐变量状态,在给定参数下的联合概率,即
易知:可以用的矩阵表示
二、前向概率的递推关系推导
通过前向概率的定义,可以推导出它的递推关系
由可得到的表达
将展开化简得:
(PS:由于HMM中隐变量是离散序列,故)
上述化简使用了观测独立假设和齐次Markov假设,可见和之间存在着具体的递推关系。且根据前向概率的定义,当处于初始时刻时,前向概率为:
则利用这个递推关系和,就可以从前向后分别求出
三、前向概率求解
回归Evaluation问题,很自然的引入隐变量,经过简单的化简得:
以上就是利用前向概率的定义和递推关系,逐步向前递推,最终计算出,即Forward算法,显然,其时间复杂度已经降低至
四、Forward算法流程
输入:模型参数,观测序列
输出: 概率值
Step1:初始值赋值
Step2:递推计算
Step3:计算
五、后向概率的定义
受前向概率定义的启发,我们可以从另一个角度定义出后向概率
如上图所示,我们引入后向概率,表示时刻的观测,以及时刻的隐变量状态,在给定参数下的联合概率,即
同理,易知可以用的矩阵表示
六、后向概率的递推关系推导
通过后向概率的定义,可以推导出它的递推关系
由可以得到的表达式
将展开化简得:
上述蓝色部分的化简,利用了概率图D-Seperation中的head-to-tail,可见与之间存在着具体的递推关系。且根据后向概率定义,当处于末尾时刻时,后向概率为:
则利用这个递推关系和,就可以从后往前分别求出
七、后向概率求解
同前向概率一样,回归Evaluation问题,很自然的引入隐变量,经过简单的化简得:
以上就是利用后向概率的定义和递推关系,逐步向后递推,最终计算出,即Backward算法,显然,其时间复杂度依然已经降低至
八、Backward算法流程
输入:模型参数,观测序列
输出:概率值
Step1:初始值赋值
Step2:递推计算
Step3:计算
九、案例演示
最后我们使用李航老师——《统计学方法》中的例子:
例:考虑盒子和球模型,状态集合,观测集合
,,
设观测序列长度,观测序列为:,求:
根据Forward算法理论,我们可以很方便的使用Python语言编程实现求解Evaluation问题
Forward算法计算出的
同理,Backward算法也很容易实现
Backward算法计算出的
十、Evaluation问题总结
(1)Forward和Backward两个算法利用HMM的两个假设:齐次Markov假设和观测独立假设,可以非常有效的简化概率推导
(2)利用Forward和Backward算法可将Evaluation问题的时间复杂度由,降低至
(3)利用前向概率和后向概率的定义,对HMM后续的Learning问题的推导有着极大的帮助
案例代码参加:HMM数学推导—Evaluation问题