Machine Learning系列--CRF條件隨機場總結

 

 

根據《統計學習方法》一書中的描述,條件隨機場(conditional random field, CRF)是給定一組輸入隨機變量條件下另外一組輸出隨機變量的條件機率分佈模型,其特色是假設輸出隨機變量構成馬爾科夫隨機場。html

條件隨機場是一種判別式模型。算法

 

1、理解條件隨機場

 

1.1 HMM簡單介紹

HMM即隱馬爾可夫模型,它是處理序列問題的統計學模型,描述的過程爲:由隱馬爾科夫鏈隨機生成不可觀測的狀態隨機序列,而後各個狀態分別生成一個觀測,從而產生觀測隨機序列。dom

在這個過程當中,不可觀測的序列稱爲狀態序列(state sequence), 由此產生的序列稱爲觀測序列(observation sequence)。函數

該過程可經過下圖描述:學習

上圖中, $X_1,X_2,…X_T$是隱含序列,而$O_1, O_2,..O_T$是觀察序列。優化

隱馬爾可夫模型由三個機率肯定:spa

  1. 初始機率分佈,即初始的隱含狀態的機率分佈,記爲$\pi$;
  2. 狀態轉移機率分佈,即隱含狀態間的轉移機率分佈, 記爲$A$;
  3. 觀測機率分佈,即由隱含狀態生成觀測狀態的機率分佈, 記爲$B$。

以上的三個機率分佈能夠說就是隱馬爾可夫模型的參數,而根據這三個機率,可以肯定一個隱馬爾可夫模型$\lambda = (A, B, \pi)$。.net

而隱馬爾科夫鏈的三個基本問題爲:3d

  1. 機率計算問題。即給定模型$\lambda = (A, B, \pi)$和觀測序列$O$,計算在模型$\lambda$下觀測序列出現的最大機率$P(O|\lambda)$,主要使用前向-後向算法解決;
  2. 學習問題。即給定觀測序列$O$,估計模型的參數$\lambda$, 使得在該參數下觀測序列出現的機率最大,即$P(O|\lambda)$最大,主要使用Baum-Welch算法EM迭代計算(若不涉及隱狀態,則使用極大似然估計方法解決);
  3. 解碼問題。給定模型$\lambda = (A, B, \pi)$和觀測序列$O$,計算最有可能產生這個觀測序列的隱含序列$X$, 即便得機率$P(X|O, \lambda)$最大的隱含序列$X$,主要使用維特比算法(動態規劃思想)解決。

HMM最初用於傳染病模型和輿情傳播問題,這些問題裏面的當前狀態能夠簡化爲只與前一狀態有關,即具有馬爾科夫性質。可是,試想一個語言標註問題,模型不只須要考慮前一狀態的標註,也應該考慮後一狀態的標註(例如我愛中國,名詞+動詞+名詞,上下文信息更豐富)。由此,天然會對模型作出更多的假設條件,也就引出了圖模型(當前狀態與相連的狀態都有關)+ 條件模型(當前的狀態與隱狀態有關)= 條件隨機場。htm

 

1.2 機率無向圖(馬爾科夫隨機場)

機率無向圖模型又稱馬爾科夫隨機場,是一個能夠由無向圖表示的聯合機率分佈。有向圖是時間序列順序的,又稱貝葉斯網,HMM就屬於其中的一種。HMM不能考慮序列的下一狀態信息,這是有向圖具備「方向性」所不能避免的。而無向圖則能夠將更多的相連狀態考慮在當前狀態內,考慮更全面的上下文信息。

機率圖模型是由圖表示的機率分佈,記$G=(V, E)$是由結點集合$V$和邊集合$E$組成的圖。

首先咱們須要明確成對馬爾科夫性、局部馬爾科夫性和全局馬爾科夫性,這三種性質在理論上被證實是等價的。

成對馬爾科夫性是指圖$G$中任意兩個沒有邊鏈接的結點所對應的的兩個隨機變量是條件獨立的

給定一個聯合機率分佈$P(Y)$,若該分佈知足成對、局部或全局馬爾科夫性,就稱此聯合機率分佈爲機率無向圖模型或馬爾科夫隨機場。

局部馬爾科夫性(黑色與白色點永遠不相鄰,即成對馬爾科夫性)

 1.3 條件隨機場

 條件隨機場(CRF)是給定隨機變量$X$的條件下,隨機變量$Y$的馬爾科夫隨機場。在實際中,運用最多的是標註任務中的線性鏈條件隨機場(linear chain conditional random field)。這時,在條件機率模型$P(Y|X)$中,$Y$是輸出變量,表示標記序列,$X$是輸入變量,表示須要標註的觀測序列(狀態序列)。

學習時,利用訓練數據集經過極大似然估計或正則化的極大似然估計獲得條件機率模型$\hat P(Y|X)$;

預測時,對於給定的輸入序列$x$,求出條件機率$\hat P(y|x)$最大的輸出序列$\hat y$。

 

 通常性條件隨機場定義以下:

設$X$與$Y$是隨機變量,$P(Y|X)$是在給定$X$的條件下$Y$的條件機率分佈。若隨機變量$Y$構成一個由無向圖$G=(V, E)$表示的馬爾科夫隨機場,即:

$$   P\left( {{Y_v}|X,{Y_w},w \ne v} \right) = P\left( {{Y_v}|X,{Y_w},w \sim v} \right).     $$

對任意結點$v$成立,則稱條件機率分佈$\hat P(Y|X)$爲條件隨機場。式中$w \sim v$表示在圖$G=(V, E)$中與結點$v$有邊鏈接的全部結點$w$,$w \ne v$表示結點$v$之外的全部結點,$Y_v$與$Y_w$爲結點$v$與$w$對應的隨機變量。

 

相似地,線性鏈條件隨機場有以下定義:

顯然,線性鏈條件隨機場是通常性條件隨機場的一種特例。

設$ X=(X_1, X_2, ..., X_n) $,$Y=(Y_1, Y_2, ..., Y_n)$均爲線性鏈表示的隨機變量序列,若在給定隨機變量序列$X$的條件下,隨機變量序列$Y$的條件機率分佈$P(Y|X)$構成條件隨機場,即知足馬爾科夫性:

$$     P\left( {{Y_i}|X,{Y_1}, \ldots ,{Y_{i - 1}},{Y_{i + 1}}, \ldots ,{Y_n}} \right) = P\left( {{Y_i}|X,{Y_{i - 1}},{Y_{i + 1}}} \right).  $$

$$       i = 1,2, \ldots ,n (在i=1和n時只考慮單邊).      $$

則稱$P(Y|X)$爲線性鏈條件隨機場。在標註問題中,$X$表示輸入觀測序列,$Y$表示對應的輸出標記序列或狀態序列。

 

 

線性鏈條件隨機場

 

 

 $X$和$Y$具備相同圖結構的線性鏈條件隨機場

 2、條件隨機場的機率計算問題

條件隨機場的機率計算問題是給定條件隨機場$P(Y|X)$,輸入序列$x$和輸出序列$y$,計算條件機率$P(Y_i=y_i|x)$,$P(Y_{i-1}=y_{i-1}|x, Y_i=y_i|x)$以及相應的數學指望的問題。

條件隨機場的機率計算和HMM的機率計算的思想沒有本質區別,甚至能夠說是徹底同樣的,區別只在於公式上稍做變化。

 

2.1 前向-後向算法

爲了計算每一個節點的機率,如書中提到的$P(Y = y_i | x)$的機率,對於這類機率計算,用前向或者後向算法其中的任何一個就能夠解決。前向或後向算法,都是掃描一遍總體的邊權值,計算圖的$P(X)$,只是它們掃描的方向不一樣,一個從前日後,一個從後往前。因此書中的公式:
$$ P(x) = Z(x) = \sum_{y} P(y,x) = \alpha_n^T(x) \cdot 1 = 1^T\cdot \beta_1(x).$$
式中的$\alpha$爲前向向量,$\beta$爲後向向量。

按照前向-後向向量的定義,很容易計算標記序列在位置$i$是標記$y_i$的條件機率和在位置$i-1$與$i$是標記$y_{i-1}$和$y_i$的條件機率:
$$ P(Y_i = y_i | x) =\frac {\alpha_i^T(y_i | x) \beta_i(y_i | x)}{Z(x)}.    $$
$$ P(Y_{i-1} = y_{i-1},Y_i = y_i | x) = \frac{\alpha_{i-1}^T(y_{i-1} | x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}.    $$

 

2.2 計算指望

利用前向-後向向量,能夠計算特徵函數關於聯合分佈$P(X,Y)$和條件分佈$P(Y|X)$的數學指望。

 

特徵函數$f_k$關於條件分佈$P(Y|X)$的數學指望是:

\begin{align*}
E_{P(Y|X)}[f_k] &= \sum_y P(y | x) f_k(y,x)\\
&=\sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)\frac{\alpha_{i-1}^T(y_{i-1} | x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}
& k = 1,2,\ldots, K.
\end{align*}

 其中,有$Z(x) = \alpha_n^T(x) \cdot 1$.

 

假設經驗分佈爲$\tilde P(X)$,特徵函數$f_k$關於聯合分佈的數學指望是:

\begin{align*}
E_{p(X,Y)}[f_k] &= \sum_{x,y}P(X,Y)\sum_{i=1}^{n+1}f_k(y_{i-1},y_i,x,i) \\
&=\sum_{x} \hat P(x)\sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)\frac{\alpha_{i-1}^T(y_{i-1} | x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}
& k = 1,2,\ldots, K.
\end{align*}

  其中,有$Z(x) = \alpha_n^T(x) \cdot 1$.

 

2.3 參數學習算法

條件隨機場模型其實是定義在時序數據上的對數線性模型,其學習方法包括極大似然估計和正則化的極大似然估計。具體的優化實現算法有改進的迭代尺度法IIS、梯度降低法以及擬牛頓法。

參數模型算法與最大熵模型算法的理論推導沒有什麼區別,還是對訓練的對數似然函數求極大值的過程。

訓練數據的對數似然函數爲:

$$   L(w) = L_{\hat p}(P_w) = \log \prod_{x,y}P_w(y | x)^{\hat P(x,y)}.  $$

 

2.4 預測算法

維特比算法採用了經典的動態規劃思想,該算法和HMM又是徹底一致的,因此也不須要從新再推導一遍,可直接參看以前博文的【維特比算法】。那麼,爲何須要使用維特比算法,而不是像最大熵模型那樣,直接代入輸入向量x便可?簡單來講,是由於在整個圖中,每一個節點都是相互依賴,因此單純的代入$P(Y | X)$是行不通的,你無法知道,到底哪一個標籤與哪一個標籤是能夠聯繫在一塊,因此必須把這個問題給【平鋪】開來,即計算每一種可能的組合,但一旦平鋪你會發現,若是窮舉,那麼運行時間是$O(k^T)$,$k$爲標籤數,$T$爲對應的序列狀態數。算法的開銷至關大,而採用動態規劃的一個好處在於,咱們利用空間換時間,在某些中間節點直接記錄最優值,以便前向掃描的過程當中,直接使用,那麼天然地運行時間就下去了。

 

 

3、條件隨機場與其餘模型的聯繫

 

3.1 經典對比圖

經典對比圖,來自論文:Sutton, Charles, and Andrew McCallum. "An introduction to conditional random fields." Machine Learning 4.4 (2011): 267-373.

 

從圖中咱們能找到CRF所處的位置,它能夠從樸素貝葉斯方法用於分類通過sequence獲得HMM模型,再由HMM模型conditional就獲得了CRF。或者由樸素貝葉斯方法conditional成邏輯斯蒂迴歸模型,再sequence成CRF,兩條路徑都可。

首先來看看樸素貝葉斯的模型:
$$ P(Y | X ) = \frac{P(Y) P(X| Y)}{P(X)}. $$
其中特徵向量$X$能夠是$X= (x_1,x_2,...,x_n)$,因爲樸素貝葉斯每一個特徵獨立同分布,因此有:
$$ P(X|Y) = P(x_1 | Y) P(x_2 | Y)\cdots P(x_n|Y). $$
整理得:
$$ P(Y,X) = P(Y) \prod_{i=1}^nP(x_i | Y). $$

再來看通常形式的邏輯斯蒂迴歸模型:
\begin{align*}
P( Y | X) &= \frac {1}{Z(X)} exp(\theta_y + \sum_{i=1}^n \theta_{yi} f_i(X,Y))\\
&= \frac {1}{Z(X)} exp(\theta_y + \sum_{i=1}^n \theta_{yi} x_i).
\end{align*}
其中,$Z(X)$爲規範化因子。

由樸素貝葉斯的模型繼續推導:
\begin{align*}
P(Y, X) &= P(Y = y_c) \cdot \prod_{i = 1}^n P(X= x_i | Y = y_c) \\
&=exp[\log P(y_c)]exp[\sum_{i=1}^n \log P(x_i | y_c)]\\
&=exp\{\theta_y + \sum_{i=1}^n\theta_{yi} [X = x_i 且Y = y_c]\}.
\end{align*}

 

這就是從邏輯斯蒂迴歸模型看貝葉斯模型,咱們能獲得的結論。首先,邏輯斯蒂迴歸模型最終模型表達爲條件機率,而非聯合機率,由於它是判別式模型;其次,二者式中參數$\theta_{yi}$後的特徵函數不一樣。貝葉斯模型考慮的是聯合機率分佈,因此它是生成式模型;而邏輯斯蒂迴歸模型,並不計算聯合機率分佈,而是把每一個特徵的實際值代入式中,計算條件判別機率。根據這樣的思路,相信你能更好地理解上面的經典圖。

 

3.2 HMM vs. MEMM vs. CRF

  • HMM -> MEMM: HMM模型中存在兩個假設:一是輸出觀察值之間嚴格獨立,二是狀態的轉移過程當中當前狀態只與前一狀態有關。但實際上序列標註問題不只和單個詞相關,並且和觀察序列的長度,單詞的上下文,等等相關。MEMM解決了HMM輸出獨立性假設的問題。由於HMM只限定在了觀測與狀態之間的依賴,而MEMM引入自定義特徵函數,不只能夠表達觀測之間的依賴,還可表示當前觀測與先後多個狀態之間的複雜依賴。
  • MEMM -> CRF: CRF不只解決了HMM輸出獨立性假設的問題,還解決了MEMM的標註偏置問題,MEMM容易陷入局部最優是由於只在局部作歸一化,而CRF統計了全局機率,在作歸一化時考慮了數據在全局的分佈,而不是僅僅在局部歸一化,這樣就解決了MEMM中的標記偏置的問題。使得序列標註的解碼變得最優解。
  • HMM、MEMM屬於有向圖,因此考慮了$x$與$y$的影響,但沒將$x$當作總體考慮進去。CRF屬於無向圖,沒有這種依賴性,克服此問題。

 

 

參考內容:

1. 如何用簡單易懂的例子解釋條件隨機場(CRF)模型?它和HMM有什麼區別?https://www.zhihu.com/question/35866596

2. 條件隨機場學習筆記:https://blog.csdn.net/u014688145/article/details/58055750

 3. 《統計學習方法》,李航

相關文章
相關標籤/搜索