天天看點

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

概念

隐馬爾可夫模型描述的是兩個時序序列聯合分布p(x,y)的機率模型,其中包含了兩個序列:

x序列外界可見(外界指的是觀測者),稱為觀測序列(obsevation seuence)

y序列外界不可見,稱為狀态序列( state sequence)

如觀測x為單詞,狀态y為詞性,我們需要根據單詞序列去猜測它們的詞性。

隐馬爾可夫模型之是以稱為“隐”, 是因為從外界來看,狀态序列(例如詞性)隐藏不可見,是待求的因變量。

從這個角度來講,人們也稱狀态為隐狀态(hidden state ),而稱觀測為顯狀态( visible state )。

為什麼叫“馬爾可夫模型”?是因為它滿足馬爾可夫假設。

馬爾可夫假設認為:每件事情的發生機率僅與前一件事有關

當有多個滿足上述假設的事件形成串聯時,就構成了馬爾可夫鍊,在NLP的領域中就稱為一個二進制文法模型

注:

一進制文法模型:
我考上大學隻與考試當天的我有關,與前一天模拟考的我沒有半毛錢關系

二進制文法模型:
我考上大學與我前一天模拟考的我有關
           

書接上回

我們先做一些約定:

Qhidden為所有隐藏狀态種類的合集,有N種

例如我們之前定義了七個标簽(https://www.cnblogs.com/DAYceng/p/14923065.html),那麼N = 7

Vobs表示可觀測的序列的合集(這裡由漢字組成)

其中,V為單個的字,M為已知字的個數

有一串自然語言文本O,共T個字,則觀測合集可表示為

而觀測到的實體對應的實體标記就是隐狀态合集I

I與O一一對應并且長度一緻

注:常稱T為時刻,如上式***有T個時刻(T個字)

HMM的假設

圖檔出處:https://github.com/aespresso/a_journey_into_math_of_ml

假設一:

目前第

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

個隐狀态(實體标簽)隻跟前一時刻的

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

隐狀态(實體标簽)有關,連續多個狀态構成隐馬爾可夫鍊I(隐狀态合集),與除此之外的其他隐狀态無關。

例如,上圖中:藍色的部分指的是

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

隻與

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

有關,而與藍色區域之外的所有内容都無關,而

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

指的是隐狀态

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

時刻轉向t時刻的機率。

假設二:

觀測獨立的假設,我們上面說過,HMM模型中是由隐狀态序列(實體标記)生成可觀測狀态(可讀文本)的過程,觀測獨立假設是指在任意時刻觀測

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

隻依賴于目前時刻的隐狀态i,與其他時刻的隐狀态無關。

例如上圖中:粉紅色的部分指的是

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

隻與

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

有關,跟粉紅色區域之外的所有内容都無關。

至此,我們确定了狀态與觀測之間的關系。

接下來将介紹HMM用于模拟時序序列生成過程的三個要素(即HMM模型的三個參數):

  • 初始狀态機率向量
  • 狀态轉移機率矩陣
  • 發射機率矩陣

初始狀态機率向量

初始隐狀态機率通常用π表示(不是圓周率!!)

該表達式的含義:

自然語言序列的第一個字

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

的實體标簽是

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

的機率,即初始隐狀态機率

而初始狀态可表示如下:p(y1丨π),給定π,初始狀态y1的取值分布就确定了

狀态轉移機率矩陣

初始狀态确定之後,如何轉移到初始狀态的下一個狀态呢?

還記得馬爾可夫假設第一條嗎?t+1時刻的狀态隻取決于t時刻狀态

我們上面提到了

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

指的是隐狀态

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

時刻轉向

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

時刻的機率

比如說我們現在實體标簽一共有

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

種, 也就是

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

(注意

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

是所有可能的實體标簽種類的集合), 也就是

(注意我們實體标簽編号從

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

算起)。

假設在

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

時刻任何一種實體标簽都可以在

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

時刻轉換為任何一種其他類型的實體标簽

由排列組合不難得出以下結論:總共可能的轉換的路徑有

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

種, 是以我們可以做一個

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

的矩陣來表示所有可能的隐狀态轉移機率.

圖檔出處:https://github.com/aespresso/a_journey_into_math_of_ml

如圖所示即為狀态轉移機率矩陣,設矩陣為矩陣, 則

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

表示矩陣中第i行第j列:

該表達式的含義:

某時刻實體具有一個标簽,而下一時刻該标簽轉換到某标簽的機率,即

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

時刻實體标簽為

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

, 而在

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

時刻實體标簽轉換到

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

的機率

發射機率矩陣

回到最初的問題,有了(隐)狀态yt之後,如何确定觀測xt的機率分布呢?

根據爾可夫假設第二條,任意時刻觀測

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

隻依賴于目前時刻的隐狀态

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

, 也叫做發射機率,描述了隐狀态生成觀測結果的過程

設我們的字典裡有

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

個字,

(注意這裡下标從0算起, 是以最後的下标是

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

, 一共有

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

種觀測), 則每種實體标簽(隐狀态)可以生成

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

種不同的漢字(也就是觀測), 這一過程可以用一個發射機率矩陣來表示, 它的次元是

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

圖檔出處:https://github.com/aespresso/a_journey_into_math_of_ml

設這個矩陣為

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

矩陣, 則

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

表示矩陣中第

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

行第

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

列:

該表達式的含義:

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

時刻由實體标簽(隐狀态)

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

生成漢字(觀測結果)

【NLP學習其二】什麼是隐馬爾可夫模型HMM?

的機率.

至此,HMM的概念部分基本介紹完畢