問題:條件隨機場是怎麼進行學習的?
參考了知乎文章如何輕鬆愉快地理解條件隨機場(CRF)?
模型構建
條件概率:
P(y=y′∣x)=∑yew⋅F(y,x)ew⋅F(y′,x)
其中,w=(w1,⋯,wK)爲待學習的參數組,F=(f1(y,x),⋯,fK(y,x))爲特徵函數構成的向量,特徵函數包含狀態特徵函數和轉移特徵函數兩類,每類有若干個。
特徵函數的例子
x=(x1,⋯,xn),y=(y1,⋯,yn)
狀態特徵函數:
- f(yi,x,i)=1 如果xi以"ly"結尾,yi=副詞 (其他情況爲0),此時我們應該想到對應要學習的參數λ應該大於0,並且值越大表明訓練集中的數據越支持"ly"結尾的單詞是副詞
- f(yi,x,i)=1 如果x最後一個字符是"?",i=1,yi=動詞 (其他情況爲0),此時我們應該想到對應要學習的參數λ應該大於0,並且值越大表明訓練集中的數據越支持問句的第一個單詞是動詞
轉移特徵函數:
- g(yi−1,yi,x,i)=1 如果yi−1=名詞,yi=動詞(其他情況爲0),此時我們可以想到對應要學習的參數μ應該大於0,並且值越大表明訓練集中的數據越支持名詞後面接動詞
- g(yi−1,yi,x,i)=1 如果如果yi−1=動詞,yi=動詞(其他情況爲0),此時我們可以想到對應要學習的參數μ應該小於0,並且值越小表明訓練集中的數據越反對動詞後面接動詞
學習算法
優化目標爲:極小化負對數似然
−N1i=1∑NlogP(y=y(i)∣x=x(i))
對參數的學習,可以使用梯度下降算法,也可以使用二階的擬牛頓算法L-BFGS,較常用的是後者。