维特比(Viterbi)算法解最优状态序列
最优状态序列:一般是指在给定的HMM模型中,对于观测到的序列O,能产生该观测序列的概率最大的状态序列。
维特比算法运用 动态规划 求解这种最优状态序列。
定义:维特比变量:δt(i)是指 t 时刻时观测序列为O1O2···Ot,且qt = Si的所有路径中的概率最大值。(前t-1个时刻的状态q1q2···qt-1qt 可能是任何一种组合)
δt(i) = max P(O1O2···Ot,q1q2···qt-1qt = Si | μ),(前t-1个时刻的状态q1q2···qt-1qt 可能是任何一种组合)
= max δt-1(j)* aji * P(bi(Ot)), 1 <= j <= N,N表示状态的总个数。
最大概率为
Max P(O | μ,Q=q1q2···qT)
=Max [ δT(i)],1<= i <=N.
最优序列为
Q = argMax [ δT(i)],1<= i <=N。
注意,在实际应用中,往往不只是搜索一个最佳状态序列而是n个最佳(n-best)路径。所以,往往在表格中要记录m个最佳状态(m<n)。