隱馬爾可夫模型


原文地址:http://www.cnblogs.com/jacklu/p/6225073.html

1 概述

隱馬爾可夫模型(Hidden Markov Model,HMM)是結構最簡單的動態貝葉斯網,這是一種著名的有向圖模型,主要用於時序數據建模(語音識別、自然語言處理等)。

假設有三個不同的骰子(6面、4面、8面),每次先從三個骰子里選一個,每個骰子選中的概率為image,如下圖所示,重復上述過程,得到一串數字[1 6 3 5 2 7]。這些可觀測變量組成可觀測狀態鏈。

同時,在隱馬爾可夫模型中還有一條由隱變量組成的隱含狀態鏈,在本例中即骰子的序列。比如得到這串數字骰子的序列可能為[D6 D8 D8 D6 D4 D8]。

image

 

隱馬爾可夫模型示意圖如下所示:

image

 

圖中,箭頭表示變量之間的依賴關系。在任意時刻,觀測變量(骰子點數)僅依賴於狀態變量(哪類骰子),“觀測獨立性假設”。

同時,image。這就是馬爾可夫鏈,即系統的下一時刻的狀態僅由當前狀態決定不依賴以往的任何狀態(無記憶性),“齊次馬爾可夫性假設”。

 

2 隱馬爾可夫模型三要素

對於一個隱馬爾可夫模型,它的所有N個可能的狀態的集合image,所有M個可能的觀測集合image

隱馬爾可夫模型三要素:

狀態轉移概率矩陣A, image下一時刻t+1狀態為image的概率

觀測概率矩陣B,image,生成觀測值image的概率

初始狀態概率向量π,image

一個隱馬爾可夫模型可由λ=(A, B, π)來指代。

 

3 隱馬爾可夫模型的三個基本問題

(1) 給定模型λ=(A, B, π),計算其產生觀測序列image的概率P(O|λ);

計算擲出點數163527的概率

(2) 給定模型λ=(A, B, π)和觀測序列image,推斷能夠最大概率產生此觀測序列的狀態序列image,即使P(I|O)最大的I;

推斷擲出點數163527的骰子種類

(3) 給定觀測序列image,估計模型λ=(A, B, π)的參數,使P(O|λ)最大;

已知骰子有幾種,不知道骰子的種類,根據多次擲出骰子的結果,反推出骰子的種類

 

這三個基本問題在現實應用中非常重要,例如根據觀測序列image推測當前時刻最有可能出現的觀測值image,這就轉換成基本問題(1);

在語音識別中,觀測值為語音信號,隱藏狀態為文字,根據觀測信號推斷最有可能的狀態序列,即基本問題(2);

在大多數應用中,人工指定參數模型已變得越來越不可行,如何根據訓練樣本學得最優參數模型,就是基本問題(3)。

 

4 三個基本問題的解法

基於兩個條件獨立假設,隱馬爾可夫模型的這三個基本問題均能被高效求解。

4.1 基本問題(1)解法

4.1.1 直接計算法(概念上可行,計算上不可行)

通過列舉所有可能的長度為T的狀態序列image,求各個狀態序列I與觀測序列O同時出現的聯合概率P(I,O|λ),然后對所有可能求和得到P(O|λ)。

狀態序列image的概率是P(I|λ)=image

對於固定狀態序列 I,觀測序列image的概率P(O|I,λ)= image

I 和 O同時出現的聯合概率P(I,O|λ)= P(I|λ) P(O|I,λ)

然后對所有可能的 I 求和,得到P(O|λ)

這種方法計算量很大,算法不可行。

4.1.2 前向算法(t=1,一步一步向前計算)

前向概率image,表示模型λ,時刻 t,觀測序列為image且狀態為image的概率。

(1) 初始化前向概率

狀態為image和觀測值為image的聯合概率 image

(2) 遞推t=1,2,…,T-1

根據下圖,得到 image

clip_image060[4]

(3) 終止

image

前向算法高效的關鍵是其局部計算前向概率,根據路徑結構,如下圖所示,每次計算直接利用前一時刻計算結果,避免重復計算,減少計算量。

clip_image064[6]

4.1.3 后向算法

image

(1)初始化后向概率

image

(2)遞推t=T-1,T-2,…,1

image

clip_image078[4]

(4) 終止

image

前向算法高效的關鍵是其局部計算前向概率,根據路徑結構,如下圖所示,每次計算直接利用前一時刻計算結果,避免重復計算,減少計算量。

clip_image064[7]

4.2 基本問題(2)解法

4.2.1 近似算法

選擇每一時刻最有可能出現的狀態,從而得到一個狀態序列。這個方法計算簡單,但是不能保證整個狀態序列的出現概率最大。因為可能出現轉移概率為0的相鄰狀態。

4.2.2 Viterbi算法

使用動態規划求解概率最大(最優)路徑。t=1時刻開始,遞推地計算在時刻t狀態為i的各條部分路徑的最大概率,直到計算到時刻T,狀態為i的各條路徑的最大概率,時刻T的最大概率即為最優路徑的概率,最優路徑的節點也同時得到。

如果還不明白,看一下李航《統計學習方法》的186-187頁的例題就能明白算法的原理。

clip_image082[4]

狀態[3 3 3]極為概率最大路徑。

4.3 基本問題(3)解法

4.3.1 監督學習方法

給定S個長度相同的(觀測序列,狀態序列)作為訓練集image,使用極大似然估計法來估計模型參數。

轉移概率 image 的估計:樣本中t時刻處於狀態i,t+1時刻轉移到狀態j的頻數為image,則

image

觀測概率image和初始狀態概率image的估計類似。

4.3.2 Baum-Welch算法

使用EM算法得到模型參數估計式

clip_image094[4]

EM算法是常用的估計參數隱變量的利器,它是一種迭代方法,基本思想是:

(1) 選擇模型參數初始值;

(2) (E步)根據給定的觀測數據和模型參數,求隱變量的期望;

(3) (M步)根據已得隱變量期望和觀測數據,對模型參數做極大似然估計,得到新的模型參數,重復第二步。

 

參考資料:

《機器學習》周志華

《統計學習方法》李航

如何用簡單易懂的例子解釋隱馬爾可夫模型https://www.zhihu.com/question/20962240


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM