隱馬爾可夫模型(HMM)是可用於標註問題的統計學習模型,描述由隱藏的馬爾可夫鏈隨機生成觀測序列的過程,屬於生成模型。
說到隱馬爾可夫模型(HMM),我們先來了解下馬爾可夫模型(Markov模型),Markov模型是一種統計模型,廣泛地應用在語音識別,詞性自動標註,音字轉換,概率文法等各個自然語言處理的應用領域。
一. 馬爾可夫模型(Markov模型)
設是隨機變數序列,其中每個隨機變數的取值在有限集,稱為狀態空間。Markov特徵是:
有限歷史假設
時間不變性
如果 具有這些特徵,那麼這個隨機變數序列稱為一個馬爾可夫過程(鏈)。
Markov的形式化表示:一個馬爾可夫模型是一個三元組 ,其中 是狀態的集合,是初始狀態的概率,是狀態間的轉移概率。具體例子用圖形表示如下,
相應的分別是,
最簡單的情形:不同的狀態只能有不同的輸出,
增加一點靈活性:不同的狀態,可以輸出相同的輸出,
再增加一點靈活性:輸出在狀態轉移中進行,
最大的靈活性:在狀態轉移中以特定的概率分佈輸出,
二. 隱馬爾可夫模型(HMM)
1.HMM的形式化定義
HMM是一個五元組,其中是狀態的集合,是輸出字元的集合,是初始狀態的概率,是狀態轉移的概率, 是狀態轉移時輸出字元的概率。
一個HMM的例子用圖形表示如下,
2. 隱馬爾可夫模型的三個基本問題
評估問題:給定一個模型 ,如何高效地計算某一輸出字元序列的概率?
解碼問題:給定一個輸出字元序列,和一個模型,如何確定產生這一序列概率最大的狀態序列?
學習問題:給定一個輸出字元的序列,如何調整模型的引數使得產生這一序列的概率最大?
3. 評估問題的解法
已知,,計算?我們先來化簡一下,
方案一:直接計演算法
窮舉所有可能的的情況,求和得到,但是時間複雜度太高,為。
方案二:前向演算法(Forward algorithm)
方案三:向後演算法(backward algorithm)
同樣的道理,我們定義在時刻狀態為的條件下,從到的部分觀測序列為的概率為後向概率,記作,即
直接採用遞推即可得到後向演算法。
後向演算法過程如下,
1. 初始化
2. 推導
3. 總和
4. 解碼問題的解法
給定一個輸出字元序列,和一個模型,如何確定產生這一序列概率最大的狀態序列?
即
我們定義表示為在時刻到達狀態,輸出字元時,輸出前面個字元的最可能路徑的概率,
則有
這樣我們就得到了維特比演算法(Viterbi Algorithm),演算法過程如下:
5. 學習問題解法
隱馬爾可夫模型的學習,根據訓練資料是包括觀測資料和對應的狀態序列還是隻有觀測序列,可以分為有監督學習和無監督學習,其中無監督的學習即是利用EM演算法思想的Baum-Welch演算法。
方案一:有監督學習
假設訓練資料包含個長度相同的觀測序列和對應的狀態序列,那麼可以利用極大似然估計法來估計隱馬爾可夫模型的引數,具體估計方法如下:
- 1. 轉移概率的估計
設樣本中時刻處於狀態時刻處於狀態的頻數為,那麼狀態轉移概率的估計是
2. 觀測概率的估計
設樣本中狀態為並觀測為的頻數是,那麼狀態為觀測為的概率的估計是
3. 初始狀態概率的估計為個樣本中初始狀態為的概率
由於監督學習的方法需要使用訓練資料,而人工標註的代價往往很高,有時會採用非監督學習的方法。
方案二:無監督學習——Baum-Welch演算法
假設給定的訓練資料只包含個長度為的觀測序列而沒有對應的狀態序列,目標是學習隱馬爾可夫模型的引數。我們將觀測序列資料看做觀測資料,狀態序列資料看做不可觀測資料,那麼隱馬爾可夫模型事實上是一個包含隱變數的概率模型
它的引數學習可以由EM演算法實現。
(演算法推導過程)
(1) 確定完全資料的對數似然函式 所有觀測資料寫成,所有的隱資料寫成,完全資料是。完全資料的對數似然函式是。
(2) EM演算法的E步:求函式的。
其中是隱馬爾可夫模型引數的當前估計值,是要極大化的隱馬爾可夫模型引數。因為,
所以函式可以拆分寫成
式中求和都是對所有訓練資料的序列總長度進行的。
(3) EM演算法的M步:極大化函式,求模型引數。
由於要極大化的引數在函式式子中單獨的出現在三個項中,所以只需要對各項分別極大化。第一項可以寫成,
注意到滿足,利用拉格朗日乘子法,寫出拉格朗日函式
對其求導數並令結果為0,
得到
對求和得到,
再代入上式子得到,
第二項可以寫成
類似於第一項,利用具有約束條件的拉格朗日乘子法惡意求出
第三項可以寫成,
同樣利用拉格朗日乘子法,約束條件是,注意只有在時對的偏導數才不為0,以表示,得到,
-----
為了簡便,我們使用一下式子簡化, 給定模型和觀測,在時刻處於狀態的概率記
有如下公式:
給定模型和觀測,在時刻處於狀態的概率記 :
有如下推倒:
我們結合上文以及EM演算法可以推導如下公式
Baum-Welch演算法過程:
輸入:觀測資料;
輸出:隱馬爾可夫模型引數。
1. 初始化。對,選取得到模型
2. 遞推。對
3. 終止。得到模型引數