在大學學習<概率論和數理統計>的時候,我們就已經學習過馬爾科夫鏈,這里對于馬爾科夫鏈就不多做贅述,而今天這一篇文章所要概括的是隱馬爾科夫模型(HMM).
ps:馬爾科夫的彼得堡數學學派挺有意思,有興趣的可以找一些相關資料拓展一下
一:隱馬爾克夫模型應用
隱馬爾科夫模型在語音識別上是一種非常成功的一種技術,在自然語言理解上已經運用的非常成熟,由于HMM的諸多優點,我們在以下幾個領域應用后有了很不錯的成績:
1:分詞處理
分詞處理在我們生活中很常見,比如在一個句子中,每一個現在的詞是HMM的一個狀態,而詞語的產生是被看做選擇狀態,然后再由當前詞輸出詞的一個二重隨機過程
2:信息處理
比如我們常常使用的百度,每一次輸入關鍵詞進行搜索,就可以看作是一個馬爾科夫過程,就好像是用戶選擇狀態,然后根據現在的狀態和自己的需求,產生后續的狀態.
3:詞性識別
這個過程比較復雜,就好比一個詞語在不同的語句中會涉及到不同的詞性,而這個需要一個很復雜的模型,以便于更多的獲取上下文信息然后進行狀態選取.
二:隱馬爾科夫模型簡介
在大學概率論與數理統計的學習中我們學習過馬爾科夫鏈以及隨機過程,這里就不再贅述,在馬爾科夫模型中,每一個狀態必須要對應一個可以觀察的事件,這樣應用起來往往很不方便,在隱馬爾科夫中,使得可觀察的是一個概率函數,并且狀態本身是不可以觀察,這樣的話HMM中就包含了雙重隨機過程,一個是系統狀態的變化,一個是狀態決定觀察的隨機過程.
一個HMM,包括了一下的一些要素:
①:設Q是所有可能的狀態的集合,V是所有可能的觀測的集合。
②:N是可能的狀態數,M是可能的觀測數,其中狀態q是不可見的,狀態V是可見的
③:I是長度為T的狀態序列,O是對應的觀測序列
④:A為狀態轉移概率矩陣,并且:
A=[aij]N*N
是在時刻t處于狀態qi的條件下在時刻t+1轉移到狀態qj的概率。 這實際在表述一個一階的HMM,所作的假設是每個狀態只跟前一個狀態有關。
⑤:B是觀測概率矩陣:
其中:
是在時刻t處于狀態qj的條件下生成觀測vk的概率。 觀測是由當前時刻的狀態決定的,跟其他因素無關,
π是初始狀態概率向量:
其中:
最后:
隱馬爾可夫模型由初始狀態概率向量π、狀態轉移概率矩陣A和觀測概率矩陣B決定,π和A決定狀態序列,B決定觀測序列。因此,隱馬爾可夫模型λ可以用三元符號表示,即
狀態轉移概率矩陣A與初始狀態概率向量π確定了隱藏的馬爾可夫鏈,生成不可觀測的狀態序列。觀測概率矩陣B確定了如何從狀態成觀測,與狀態序列綜合確定了如何產生觀測序列.
在給定上述的N,A,M,B和π之后,便可以確定一個HMM,比如一個(N=3)的HMM,就可以表示為:
通常情況下,如果兩個狀態之前的轉移概率是0,就不畫出他的路徑
HMM依照其產生的觀測值,一般可以分為離散HMM和連續HMM,我們在自然語言處理中一般使用的都是離散HMM,因為連續HMM產生輸出的是實數或者實數組成的向量X,而我們自然語言處理中的絕大多數都是對離散型進行處理,連續性僅僅在語音識別檢索中使用,并且計算基本相同,我們將著重在離散型的HMM上處理.
而這個部分的確挺困難,我也在慢慢摸索,以后有新的體會一定分享給大家.
提前祝大家新年快樂!
2018年繼續加油!
參考書目:
李航<統計學習方法>
推薦一個博主: