问题:条件随机场是怎么进行学习的?
参考了知乎文章如何轻松愉快地理解条件随机场(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,较常用的是后者。