隱馬學習一

          這學期初學習隱馬知識並作詞性標註練習,到年底了,簡單整理隱馬爾可夫模型這塊知識,只求還能記住點東西。

隱馬爾可夫模型是什麼

           隱馬爾可夫模型(Hidden Markov Model,HMM)是一種統計模型,它用來描述含有隱含未知參數的馬爾可夫過程。其難點是從可觀察的參數中確定該過程的隱含參數,然後利用這些參數來作進一步的分析。
           我的理解是就如隱馬的描述一樣,只要是通過觀察事件而去推測隱藏事件的情況這樣的場景都可以用隱馬。通過翻閱知網論文資料可以看出隱馬思想被運用到了很多領域,以下是我對三個領域的簡單理解:
           語音識別,通過可以觀察感知的聲學特徵推測隱藏其中的文字序列;機器翻譯,通過可以觀察感知的一種語言文字序列去推測隱藏其中的另外一種語言文字序列;詞性標註,通過可以觀察感知的詞組序列的推測隱藏其中的詞性序列。

隱馬的五個元素

             一個問題運用隱馬思維來解決,整體可以分五個元素及要解決三個方面的問題。這裏先說元素:

隱含狀態 S。這些狀態之間滿足馬爾可夫性質,是馬爾可夫模型中實際所隱含的狀態。這些狀態通常無法通過直接觀測而得到。

可觀測序列O。在模型中與隱含狀態相關聯,可通過直接觀測而得到事件。

初始狀態概率矩陣 π.初始狀態概率矩陣 π.

隱含狀態轉移概率矩陣 A。描述了HMM模型中各個狀態之間的轉移概率。

狀態發射概率矩陣 B .令N代表隱含狀態數目,M代表可觀測狀態數目,則:B[i][j]= P( O[i] | S[j] ), 1≤i≤M,1≤j≤N.表示在 t 時刻、隱含狀態是 S[j]條件下,觀察狀態爲 O[i]的概率。

隱馬的三個問題及對應解經典解決方法

評估問題。對於給定模型μ=(A,B,π),求某個觀察值序列O=O1O2...OT的概率。這個比較經典的是前向後向算法。

解碼問題。對於給定模型和觀察值序列,求可能性最大的狀態序列。對應的有viterbi算法。

學習問題。在利用隱馬解決問題實際問題時,需要知道三個參數:轉移概率,從一個狀態St-1進入當前狀態St的概率P();發射概率,每個狀態St產生相應輸出符號的概率P();初始狀態情況。怎麼確定或者得到這三個參數。

學習問題

           爲什麼專一提到這個學習問題呢?一開始看很多資料都沒明白這個學習問題是怎麼會事,後來看吳軍《數學之美》裏邊有關這個問題的介紹,才稍微理解一點。關於這塊的沒什麼代碼,就一個思想介紹,真是佩服了。

           鮑姆-韋奇算法原理:首先找到一組能夠產生輸出序列O的模型參數,這個初始模型成爲Mtheta0,需要在此基礎上找到一個更好的模型,假定不但可以算出這個模型產生O的概率P(O|Mtheta0),而且能夠找到這個模型產生O的所有可能的路徑以及這些路徑的概率。解決了前兩個問題並根據上述兩個公式可以算出一組新的模型參數Mtheta1,從Mtheta0到Mtheta1的過程稱爲一次迭代。接下來從Mtheta1出發尋找更好的模型Mtheta2,並一直找下去,直到模型的質量沒有明顯提高爲止。這樣一直估計(Expectation)新的模型參數,使得輸出的概率達到最大化(Maximization)的過程被稱爲期望值最大化(Expectation-Maximization)簡稱EM過程。EM過程能保證一定能收斂到一個局部最優點,但不能保證找到全局最優點。

學習資料:

1,《統計自然語言處理》 宗成慶 

2,百度百科,維基百科   

3,網絡博文《隱馬爾可夫模型(HMM)攻略》   

4,《數學之美》

5,網絡博文《隱馬爾科夫模型C#語言算法實現 》(挺好的,特推薦)

 




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