机器学习笔记(十五)——HMM序列问题和维特比算法
2016-10-03 11:12
316 查看
一、引言
这篇blog主要讲序列问题和其解法——维特比算法。二、HMM中的第二个基本问题
序列问题:给定一个观察序列O=O1O2…OT和模型u=(A,B,π),如何快速有效地选择在一定意义下”最优”的状态序列Q=q1q2…qT,使得该状态序列“最好地解释”观察序列?三、定义最优状态序列
序列问题的答案并不是唯一的,那是因为它取决于对“最优状态序列的理解”。定义 最优状态序列 在给定模型u和观察序列O的条件下,使得条件概率P(Q|O,u)最大的状态序列:
Q^=argmaxQP(Q|O,u)
四、维特比算法
维特比算法运用动态规划的搜索算法求解这种最优状态序列。为了实现这种搜索,首先定义一个维特比变量δt(i)。定义 维特比变量δt(i) 是在时间t时,HMM沿着某一条路径到达状态si,并输出观察序列O1O2…Ot的最大概率:
δt(i)=maxq1,q2,…,qt−1P(q1,q2,…,qt=si,O1O2…Ot|u)
与前向变量类似,δt(i)有如下递推关系:
δt+1(i)=maxj[δt(j)aji]bi(Ot+1)
为了记录在时间t时,HMM通过哪一条概率最大的路径到达状态si,维特比算法设置了另外一个变量ψt(i),用于路径记忆,让ψt(i)记录该路径上的状态si的前一个(在时间t−1)状态。
维特比算法
1. 初始化
δ1(i)=πibi(O1),1≤i≤Nψ1(i)=0
2. 归纳计算
δt(j)=max1≤i≤N[δt−1(i)aij]bj(Ot),2≤t≤T;1≤j≤N记忆回退路径:ψt(j)=argmax1≤i≤N[δt−1(i)aij]bj(Ot),2≤t≤T;1≤i≤N
3. 终结
QT^=argmax1≤i≤N[δT(i)]P^(QT^)=max1≤i≤N[δT(i)]
4. 路径(状态序列)回溯
qt^=ψt+1(q^t+1),t=T−1,T−2,…,1
维特比算法的时间复杂度也是O(N2T)。
相关文章推荐
- 机器学习笔记(十四)——HMM估计问题和前向后向算法
- 《数据结构与算法分析》笔记------第二章、最大子序列和问题的解
- 【机器学习-斯坦福】学习笔记7 - 最优间隔分类器问题
- 机器学习笔记1 机器学习中优化问题的概述
- 机器学习笔记——隐马尔可夫模型(HMM)
- Coursera机器学习(Andrew Ng)笔记:回归与分类问题
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(3) 最大子序列和问题
- 机器学习笔记(十八)——HMM的参数估计
- 数据结构与算法分析 学习笔记——最大子序列求和问题
- 算法笔记1-最大子序列和问题的求解
- 加州理工学院公开课:机器学习与数据挖掘课程笔记(一)学习问题
- 算法笔记1-最大子序列和问题的求解
- 斯坦福机器学习公开课学习笔记(3)—拟合问题以及局部权重回归、逻辑回归
- 机器学习课堂笔记(十五)
- 机器学习-斯坦福:学习笔记7-最优间隔分类器问题
- 【机器学习-斯坦福】学习笔记7 - 最优间隔分类器问题
- 【机器学习-斯坦福】学习笔记7 - 最优间隔分类器问题
- Stanford机器学习课程笔记——LR的公式推导和过拟合问题解决方案
- [台大机器学习笔记整理]作为结果的映射关系的泛化问题
- 算法笔记:动态规划求解最长子序列问题