从头开始(概率)学 HMM:精讲第三课 - 概率计算问题
1. 总述
给定模型和观测序列,计算在模型下观测序列 O 出现的概率。该问题可以说是依靠学习问题,因为该问题既需要知道 O 还需要知道。解决该问题经常使用前向算法或者后向算法。注意这里的隐藏序列 I 是未知的。下面先用直接计算法求解,然后讲解概率计算的两种方法:前向算法和后向算法。
三个重要推导:
推导
首先根据假设:
推导
推导
2. 直接计算法
第一章将推论时其实已经把答案解出来了,概率问题的目的就是求,因此概率问题的解为。但是观察该解,要对进行求和,也就是说要遍历所有可能的隐藏序列,仅从隐藏序列的角度就有种可能,再加上观测序列的时间为 T,因此时间复杂度是,这种解法时间复杂度太高,因此需要考虑其他解法。
3. 前向算法
首先,给出一个定义:给定,定义到时刻 t 时,已经得到部分的观测序列(已知),且该时刻的隐藏状态为 q_i 的概率为前向概率,用数学公式表达为:
通过定义我们可以得到初始值
推导递推公式:
推导最终表达式
4. 后向算法
后向算法与前向算法思想想类似,前项是从 t=0 开始往后计算,而后向是从 t=T 时刻,开始往前计算。
给出一个定义:给定,定义时刻 t,状态为的条件下,从 t+1 到 T 部分的观测序列为的概率为后向概率,记做
初始值:。由于 T 时刻已经是最后一个时刻了,故不存在,因而没有意义,故人为规定其为 1
推导递推公式:
推导最终表达式:
5. 一些概率与期望值的计算
利用前向概率和后向概率,可以得到关于单个状态和两个状态的概率计算公式:
给定模型和观测 O,在时刻 t 处于状态的概率,记做,==则 。== 推导如下:
给定给定模型 $\lambda$和观测 O,在时刻 t 处于状态 $q_i$且在时刻 t+1 处于状态 $q_j$的概率记做,则。推导如下:
- 将和对各个时刻 t 求和,可以得到一些有用的期望值:
- 在观测 O 下状态为 i 出现的期望值
- 在观测 O 下状态 i 转移的期望值
- 在观测 O 下状态 i 转移到状态 j 的期望值
6. 总结
;为已知量
版权声明: 本文为 InfoQ 作者【herosunly】的原创文章。
原文链接:【http://xie.infoq.cn/article/662fe947c88d13a6d13e1a252】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论