03 隱馬爾可夫模型 - HMM的三個問題 - 學(xué)習(xí)問題
八卤橄、HMM的三個問題 - 預(yù)測問題
問題: 在觀測序列已知的情況下,狀態(tài)序列未知辑鲤。想找到一個最有可能產(chǎn)生當(dāng)前觀測序列的狀態(tài)序列刚操。
可以用下面兩種辦法來求解這個問題:
1、近似算法
2舟铜、Viterbi算法
近似算法
直接在每個時刻t時候最優(yōu)可能的狀態(tài)作為最終的預(yù)測狀態(tài),使用下列公式計算概率值:
即發(fā)生觀測值給定奠衔,超參λ給定的情況下: Q谆刨、λ;
狀態(tài)發(fā)生的概率 P(it = Si | Q归斤、λ) 痊夭;
γt = P(it = Si | Q、λ) 脏里;
這是一個相對近似的算法她我。
Viterbi算法
Viterbi算法實際是用動態(tài)規(guī)劃的思路求解HMM預(yù)測問題,求出概率最大的“路徑”迫横,每條“路徑”對應(yīng)一個狀態(tài)序列番舆。
δPt(i) 表示 it = i號狀態(tài)的時候,找到(i1 ~ it-1 , qt ~ qt-1)的聯(lián)合概率的最大值矾踱。
δP1(i) = πibiq1 表示i個狀態(tài)下恨狈,觀測到對應(yīng)的狀態(tài)q1的概率。
δP2(i) = δP1(j) aji biq2
表示: 在第1個時刻節(jié)點下介返,位于第j號狀態(tài)最有可能的值拴事,乘以,j到i轉(zhuǎn)化的概率圣蝎,乘以刃宵,在i號狀態(tài)下觀測到q2的概率;
就好比我們可以從1→1徘公,2→1牲证,3→1,1<=j<=n 就是分別判斷這3種情況中的最大值关面,即:
計算δP1(j) aji biq2 的最大值坦袍,找到最大值時的j,就是最有可能出現(xiàn)觀測值的狀態(tài)j等太;
下面看個例子來深入理解這個公式捂齐。
HMM案例-Viterbi
在給定參數(shù)π、A缩抡、B的時候奠宜,得到觀測序列為“白黑白白黑”,求出最優(yōu)的隱藏狀態(tài)序列瞻想。