隱馬爾科夫模型(四)預測演算法
預測問題,也稱作解碼問題。已知模型 和觀測序列 求對給定觀測序列條件概率P(I|O)最大的狀態序列 .即給定觀測序列,求最可能的對應的狀態序列。
預測演算法:近似演算法與維特比演算法
近似演算法:
近似演算法的思想是,在每一個時刻t選擇在該時刻最優可能出現的狀態
,從而得到一個狀態序列
將它作為預測的結果。
給定隱馬爾科夫模型 和觀測序列O,在時刻t處於狀態 的概率為 是
在每一個時刻t最有可能的狀態
是:
從而得到狀態序列
近似演算法的優點是計算簡單,缺點是不能保證預測的狀態序列整體是最有可能的狀態序列。
維特比演算法:
維特比演算法的基礎可以概括為下面散點:
1)如果概率最大的路徑p(或者說最短的路徑)經過某個點,比如下面中的
,那麼這條路徑上的歧視點S到
的這段子路徑Q,一定是S到
之間的最短路徑。否則用S到
的最短路徑R代替Q,便構成了一條更短的路徑,這顯然矛盾。
2)從S到E的路徑必經過第i個時刻的某個狀態,假設第i個時刻有k個狀態,那麼如果記錄了從S到第i個狀態的所有k個結點的最短路徑,最終的最短路徑必經過其中一條,這樣,在任意時刻,只要考慮非常有限的最短路徑即可。
3)結合以上2點,假定當我們從狀態i進入狀態i+1時,從S到狀態i上各個結點的最短路徑已經找到,並且記錄在這些結點上,那麼在計算從起點S到第i+1狀態的某個結點
的最短路徑時,只要考慮S到前一個狀態i所有的k個結點的最短路徑,以及從這個結點到
的距離即可。
維特比演算法實際使用動態規劃解隱馬爾科夫模型預測問題,即用動態規劃求解最大概率路徑(最優路徑)。這裡一條路徑對應著一個狀態序列。
我們需要從時刻t開始,遞推的計算在時刻t狀態為i的各條部分路徑的最大概率,直到得到時刻t=T狀態為i的各條路徑的最大概率。
時刻t=T的最大概率即為最優路徑的概率 ,最優路徑的終節點 也同時得到。
之後為了找出最優路徑的各個結點,從終結點 開始,由後向前逐步求得結點 ,得到最優路徑
首先引入兩個變數
定義在時刻t狀態為i的所有可能的狀態轉移路徑