HMM基礎理論-解碼decoding

HMM 解碼問題描述如下:

給定HMM參數λ = (A,B) ,和觀測序列O = o1,o2,...,oT  ,找到概率最大的隱藏狀態序列Q = q1q2q3 ...qT  

解決以上問題,常用算法是Viterbi算法,或Viterbi解碼算法,描述如下所示:

vt ( j)  表示:在給定λ,,通過最大概率的隱藏狀態序列q0,q1,...,qt ,且觀測到前t個觀測值,狀態在j的概率

即:


通過遞歸,可以展開如下:


其中:

vt1(i) 爲t-1時刻 Viterbi路徑的概率

ai j 爲狀態qi 到q j 的狀態轉移概率

bj(ot) 爲狀態觀測似然

Viterbi算法描述如下所示:

首先定義一個回退指針bt,用來記錄最佳狀態序列

1.初始化:


 bt1(j) =

2.遞歸計算:



3.終止:

Viterbi路徑最大概率:


回溯指針起始:


Viterbi算法僞代碼如下所示:


其中Viterbi計算過程如下黑色粗線所示:


其中Viterbi回溯指針,進行回溯的過程爲藍色虛線所示:


以上爲Viterbi算法的公式推導和介紹。

接下來一章爲HMM最後一個問題,如何進行訓練HMM。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章