從HMM推導CRF

從HMM推導CRF

來自專欄機器學習和chatbot備忘錄20 人贊了文章

本文主要是從HMM到CRF的推導,對李宏毅老師的課作個備忘。

HMM的二個假設:

  • 齊次馬爾科夫性假設:

P(i_{t}|i_{t-1},o_{t-1}...,i_{1},o_{1})=P(i_{t}|i_{t-1}), t=1,2...T

即t時刻的狀態只依賴於前一時刻的狀態,與其他時刻的狀態和觀測無關,並且與時刻t無關。

  • 觀測獨立性假設

P(o_{t}|i_{T},o_{T},i_{T-1},o_{T-1},...,i_{1},o_{1})=P(o_{t}|i_{t})

即t時刻的觀測僅與t時刻的狀態。

HMM 是生成式模型,所以是對P(x,y)聯合概率分布進行建模,針對具體問題:

其中,y是狀態變數,x是觀測變數,根據聯合概率的公式可以寫成P(x,y)=P(y)P(x|y)。

根據二個假設可以展開寫成:

藍色下劃線代表的狀態轉移的那一部分的概率,紅色部分表示的是發射概率,可以看出HMM的狀態轉移和發射部分是分開建模的,crf是有特徵函數,將這兩個合在一起建模的,這是crf的好處。

從HMM到CRF

對P(x,y)取對數:

其中可以進行改寫:

P(t|s)表示標註t 生成word s的概率,N(s,t)表示標準 s生成word t的次數,已經很像crf中特徵函數和權重的相乘了。

此處是一個例子:

對每一項都進行這樣的改寫,可以得到:

這樣,此處的對數概率就變成了權重N_{s,t}(x,y) 表示成了特徵函數對於crf來說可以不僅僅是由動詞後面接名詞這種特徵,它可以考慮ngram的特徵,還有一些其他自己定義的特徵,然後去求解對應的權重。

這樣P(x,y)寫成下面的式子:

crf的公式就可以表示出來:

P(y|x) = frac{P(x,y)}{P(x)} = frac{w.phi(x,y)}{Z}

w.phi(x,y) 展開可以寫成標準的crf公式:

其中 t_{k} , s_{l} 是特徵函數, 	heta_{k} , 	heta_{l} 是權重。

這樣由HMM導出了CRF

對於crf的訓練,自然是更新每種特徵的權重,使得表現最好,使得P(y|x)最大,

最終求導得到的公式如下:

可以利用此導數對不同的特徵進行權重的更新。


推薦閱讀:

TAG:自然語言處理 | 深度學習DeepLearning | CRFs |