HMM模型之前向演算法

2021-07-03 02:35:58 字數 868 閱讀 9877

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α(

t−1,

i)a(

i,j)

其中α(

t−1,

i)為時刻t-1到達狀態i的概率。

遞迴計算到t時刻,那麼在當前hmm模型下,產生觀察序列的概率為: p(

o|h)

=∑jα

(t,j

) 時間複雜度為tn

2 。

HMM模型學習筆記(前向演算法例項)

hmm演算法想必大家已經聽說了好多次了,完全看公式一頭霧水。但是hmm的基本理論其實很簡單。因為hmm是馬爾科夫鏈中的一種,只是它的狀態不能直接被觀察到,但是可以通過觀察向量間接的反映出來,即每乙個觀察向量由乙個具有相應概率密度分布的狀態序列產生,又由於每乙個狀態也是隨機分布的,所以hmm是乙個雙重...

演算法 HMM模型 維特比演算法詳解

假設連續觀察3天的海藻濕度為 dry,damp,soggy 求這三天最可能的天氣情況。天氣只有三類 sunny,cloudy,rainy 海藻濕度有四類,而且海藻濕度和天氣有一定的關係。隱藏的狀態 sunny,cloudy,rainy 觀察狀態序列 初始狀態序列 sunny cloudy rainy...

HMM模型介紹

時序模型 資料會隨著時間的改變二進行改變,比如溫度 說話等。hmm模型是乙個時序模型,因為是個時序模型所以每時每刻都有乙個觀測值。下圖所示 z為隱式變數,x為已知的觀測值。扔不均衡硬幣 有兩枚硬幣a和b,這兩枚硬幣正反面概率不一樣,我們記a和b各自出現正面的概率分別為u1和u2。現在小明進行扔硬幣,...