天天看點

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

隐含馬爾可夫模型常用于解決自然語言處理的問題。例如語音識别、機器翻譯等。

目錄

通信模型

隐含馬爾可夫模型

延伸閱讀:隐含馬爾可夫的訓練

小結

通信模型

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

在通信模型中,如何根據觀察資料o1,o2,o3,...來推測信号源發送的資訊s1,s2,s3,...呢?用機率論的語言來表述,就是求在已知o1,o2,o3,...的情況下s1,s2,s3,...的最大機率,即

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

根據P(A|B)*P(B)=P(B|A)*P(A),上式右側等價于

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

在求最大值的時候,分母P(o1,o2,o3,...)是一個可忽略的常數,等價于求5.2式的分子的最大值。

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

哈哈,變成這個形式還是不會求解呢?啦啦啦告訴你,這個公式完全可以用隐含馬爾可夫模型(Hidden Markov Model)來估計哇。

隐含馬爾可夫模型

介紹馬爾可夫模型,還是要從馬爾可夫鍊說起。19世紀的時候,機率論的發展從研究随機變量轉變為随機過程。随機過程比随機變量要複雜一丢丢。假設有一個狀态集合{s1,s2,s3},首先,一個時間序列t1,t2,t3,...中t時刻選取的狀态

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

是随機的,如序列

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

。第二,任一狀态

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

的取值可能與周圍其它的狀态有關。這樣随機狀态就有了兩個次元的不确定性。馬爾可夫為了簡化問題,提出了一種簡化的假設,即随機過程中各個狀态

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

的機率分布,隻與它的前一個狀态

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

有關,即

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

。當然這種假設未必适合所有的應用,但是至少對以前很多不好解決的問題給出了近似解。這個假設後來就命名為馬爾可夫假設,而符合這個假設的随機過程則稱為馬爾可夫過程,也稱為馬爾可夫鍊。下圖給出一個離散的馬爾可夫過程。

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

在這個馬爾可夫鍊中,四個圈表示四個狀态,每條邊表示一個可能的狀态轉換,邊上的權值是轉移機率。如果某個時刻t的值為m2,那麼t+1時刻有40%的可能為m4,60%的可能為m3,因為t+1時刻的值隻與t時刻有關系,和t-1時刻沒關系。

把這個馬爾可夫鍊想象為一台機器,它随機的選擇一個狀态作為初始狀态,然後按照上述規則随機輸出狀态,運作一段時間T後,我們會得到狀态序列:

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

。看到這個序列,不難數出某個狀态

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

出現的次數#(

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

),以及

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

轉換到

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

的次數#(

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

)。

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

的轉移機率可以通過#(

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

)/#(

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

)得到。

隐含馬爾可夫模型是對上述馬爾可夫鍊的一個擴充:任意時刻t的狀态

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

是不可見的,是以我們不能通過觀察序列直接獲得轉移機率。但是隐含馬爾可夫模型在每個時刻t都有一個輸出

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

,且

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

僅與

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

相關。這個被稱為獨立輸出假設。簡而言之,序列

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

是由一個馬爾可夫鍊産生的,并且

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

符合獨立輸出假設,就是隐含馬爾可夫模型的結構了。如圖:

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

由于序列

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

是基于馬爾可夫假設的,是以5.3式的右半部分等價于

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

由于獨立輸出假設,是以5.3式的左半部分等價于

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

這樣通信的解碼問題就可以用隐含馬爾可夫模型來解決了。至于如何找出式子的最大值,可以使用維特比算法(Viterbi Algorithm)。

延伸閱讀:隐含馬爾可夫的訓練

圍繞着隐含馬爾可夫模型有三個基本問題:

  1. 給定一個模型,如何計算某個特定的輸出序列的機率
  2. 給定一個模型和某個特定的輸出序列,如何找到最可能産生這個輸出的狀态序列
  3. 給定足夠量的觀測資料,如何估計隐含馬爾可夫模型的參數

第一個問題很簡單,對應的算法是Forward-Backward算法。第二個問題使用著名的維特比算法解決。第三個問題在此讨論。

轉移機率(Transition Probability)

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

和生成機率(Generation Probability)

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

被稱為隐含馬爾可夫模型的參數,而計算和估計這些參數的過程稱為模型的訓練。

從條件機率的定義出發,如果我們有足夠多的人工标記的資料,生成機率可以通過觀測次數得到:

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

跟前面求馬爾可夫鍊的轉移機率一樣,如果我們有大量人工标注的資料,通過統計次數就可以估計轉移機率:

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

然而有些情況下我們無法做出标注,有些情況下标注的成本較大,比較實用的方式是直接通過觀測序列就能推測出模型的參數,這類方法叫做無監督的訓練方法,其中主要使用的鮑姆-韋爾奇算法(Baum-Welch Algorithm)。

兩個不同的模型可以産生同樣的輸出序列,但總會

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

比另一個

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

更有可能産生觀測序列,其中

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

為模型的參數。鮑姆-韋爾奇算法就是用來尋找這個最可能的模型

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

.

鮑姆-韋爾奇算法思想:

首先找到一組能夠産生輸出序列O的模型參數(顯然他們是一定存在的,假設轉移機率P和輸出機率Q為均勻分布時,模型可以産生任何輸出)。現在,有了初始模型

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

,需要在此基礎上找到更好的模型。假定我們解決了第一個和第二個問題,那麼我們可以求出目前模型産生輸出O的機率,及産生輸出O的可能狀态序列及這些狀态序列的機率。把這些可能的狀态序列看做是“标注的訓練資料”,我們可以計算出一組新的模型參數

簡述隐含馬爾可夫模型通信模型隐含馬爾可夫模型延伸閱讀:隐含馬爾可夫的訓練小結

,并且可以證明模型1的O輸出機率大于模型0的輸出機率,如此循環往複,直到模型的品質不再顯著提高為止。

鮑姆-韋爾奇算法的每一此疊代都是不斷的估計(Expectation)新的模型參數,使得輸出的機率(我們的目标函數)達到最大化(Maximization),是以這個過程被稱為期望最大化(Expectation-Maximization),簡稱EM過程。EM過程保證算法一定能收斂到一個局部最優點,很遺憾它一般不能保證找到全局最優點。是以,在一些自然語言處理的應用,比如詞性标注中,這種無監督的鮑姆-韋爾奇算法訓練出的模型會比有監督的訓練得到的模型效果略差,因為前者未必能收斂到全局最優點。但是如果目标函數是凸函數(比如資訊熵),則隻有一個最優點,這種情況下EM過程可以找到最佳值。

小結

隐含馬爾可夫模型最初應用于通信領域,繼而推廣到語音和語言進行中,成為連接配接自然語言處理與通信的橋梁。同時,隐含馬爾可夫模型也是機器學習的主要工具之一。和幾乎所有的機器學習的模型工具一樣,它需要一個訓練算法(鮑姆-韋爾奇算法)和使用時的解碼算法(維特比算法)。掌握了這兩類算法,就基本上可以使用隐含馬爾可夫模型這個工具了。

繼續閱讀