CRF,Conditional Random Field,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模式,其特点是假设输出随机变量构成马尔可夫随机场。
条件随机场用于不同的预测问题。CRF条件随机场是给定随机变量X时,随机变量Y的马尔可夫随机场。
有一种条件随机场是线性链条件随机场(Linear Chain Conditional Random Field)。线性链条件随机场可以用于标注等问题。then,在条件概率P(Y|X)中,Y是输出变量,表示标记序列,X是输入变量,表示需要标注的观测序列。也把标记序列称为状态序列(见隐马尔可夫模型)。
现在有一标注问题:输入观测序列为X=(X1,X2,X3),输出标记序列为Y=(Y1,Y2,Y3),Y1,Y2,Y3取值于{1,2}.
假设特征t
这里只注明特征取值为1的条件,取值为0的条件省略,如下:
下同
说明:t
《统计学习方法》中这个示例,作者没有给出这个条件随机场的参数化形式 对应的状态路径图。看着这个参数形式t
所以下面人肉给出了此条件随机场的参数化形式对应的状态路径图,看着此图会发现,it's so easy~,有木有,详见下图:
上图中给出了对t和s函数的理解,如果仔细看,应该很容易清楚其含义,然后就很容易地画出条件随机场的参数化形式对应的状态路径图~
S矩阵表示定义到节点上的特征函数S(l),
SW矩阵表示每个节点的权值
E矩阵表示定义在边上的特征函数T(k),也称转移特征
EW矩阵表示每个转移特征T(k)的权值
S = np.array([[1,1], #X1:S(Y1=1), S(Y1=2)
[1,1], #X2:S(Y2=1), S(Y2=2)
[1,1]]) #X3:S(Y3=1), S(Y3=1)
SW = np.array([[1.0, 0.5], #X1:SW(Y1=1), SW(Y1=2)
[0.8, 0.5], #X2:SW(Y2=1), SW(Y2=2)
[0.8, 0.5]])#X3:SW(Y3=1), SW(Y3=1)
E = np.array([[[1, 1], #Edge:Y1=1--->(Y2=1, Y2=2)
[1, 0]], #Edge:Y1=2--->(Y2=1, Y2=2)
[[0, 1], #Edge:Y2=1--->(Y3=1, Y3=2)
[1, 1]]])#Edge:Y2=2--->(Y3=1, Y3=2)
EW= np.array([[[0.6, 1], #EdgeW:Y1=1--->(Y2=1, Y2=2)
[1, 0.0]], #EdgeW:Y1=2--->(Y2=1, Y2=2)
[[0.0, 1], #EdgeW:Y2=1--->(Y3=1, Y3=2)
[1, 0.2]]])#EdgeW:Y2=2--->(Y3=1, Y3=2)
也就是说上面W,SW,E,EW这四个矩阵就表示了上面参数化形式表示的条件随机场,参数化形式表示的条件随机场和矩阵形式表示的条件随机场,以及状态路径图表示的条件随机场都是等价的。
到此,条件随机场的参数化形式解释结束了。
(end)