您的位置:首页 > 其它

机器学习笔记(十五)——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)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习