HMM模型之前向算法

1、介紹
前向算法是用於HMM模型的評估問題。評估問題:對於一個觀察序列和通過不同系統得到的HMM模型,怎麼判斷哪一個HMM模型是最有可能產生這個觀察序列。
HMM模型三元組(π ,A,B),其中π 表示初始向量,A表示狀態轉移矩陣,B表示混合矩陣,實例可以參看《HMM模型之viterbi算法》
2、實現
要得到對於觀察序列在當前HMM模型下產生的概率,可以列舉所有的state轉移序列(state爲隱藏狀態),通過三元組計算state序列下觀察序列的概率,在相加即可,這個方法爲窮舉。由於state序列的個數爲NT ,其中N爲state的個數,T爲觀察序列長度。時間複雜度爲正比於NT
前向算法正是爲了減少時間複雜度實現的算法,這個引入局部概率這個概念:表示
在t時刻到達狀態s的概率,通過計算所有能夠到達state的路徑的概率的和再乘以相應隱藏狀態對於觀察狀態的條件概率得到。那麼在時刻T按照觀察序列達到各個state的和即爲要求的概率。在前向算法中局部概率是一個遞歸求解的過程。當t=1時,狀態j局部概率爲:

α(1,j)=π(j)B(j,k)

其中k爲觀察值。當t>1時,狀態j的局部概率爲:
α(t,j)=B(j,k)×iα(t1,i)A(i,j)

其中α(t1,i 爲時刻t-1到達狀態i的概率。
遞歸計算到T時刻,那麼在當前HMM模型下,產生觀察序列的概率爲:
P(O|H)=jα(T,j)

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