前向式演算法

前向式演算法Forward algorithm),在隱藏式馬可夫模型(HMM)中,是用於計算「置信狀態」的。置信狀態指根據既往證據推算出的當前狀態的機率分布。這個過程也被叫做「濾波」。前向式演算法和維特比演算法緊密相關但又互不相同。

發展歷史

前向式演算法是用來解決解碼問題的演算法之一。自從語音辨識技術[1]和圖型識別技術發展以來,它也越來越普遍地被用在像計算生物學[2]這樣的使用HMM的領域內。

演算法

整個演算法的目標是計算聯合機率分布  。為了方便,我們把   簡寫做  ,將   簡寫做  。直接計算 則需要計算所有狀態序列  邊際分布,而它的數量和   成指數相關。使用這一演算法,我們可以利用HMM的條件獨立性質,遞迴地進行計算。

我們令

 .

利用連鎖律來展開 ,我們可以得到

 .

由於   和除了   之外的一切都條件獨立,而   又和   之外的一切都條件獨立,因此

 .

這樣,由於    由HMM的輸出機率狀態轉移機率我們可以很快計算用   計算出 ,並且可以避免遞迴計算。

前向式演算法可以很容易地被修改來適應其他的HMM變種,比如馬可夫跳躍線性系統

平滑處理

為了能夠使用「未來的歷史」(比如我們在試圖預測過去的某個時點的狀態),我們可以執行後向演算法,它是前向式演算法的一個補充。這一操作被稱為平滑[為何?]前向-後向演算法  計算  ,因此使用了過去和未來的全部資訊。

解碼演算法

為了解碼最可能的序列,需要使用維特比演算法。它會從過去的觀測中試圖推測最可能的狀態序列,也即使   最大化的狀態序列。

參考文獻

  1. ^ Lawrence R. Rabiner, "A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition". Proceedings of the IEEE, 77 (2), p. 257–286, February 1989. 10.1109/5.18626
  2. ^ Richard Durbin, Sean R. Eddy, Anders Krogh, Graeme Mitchison, "Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids". Cambridge University Press, 1999, ISBN 0521629713.