机器学习小白笔记系列——条件随机场

本系列是针对于DataWhale学习小组的笔记,从一个对统计学和机器学习理论基础薄弱的初学者角度出发,在小组学习资料的基础上,由浅入深地对知识进行总结和整理,今后有了新的理解可能还会不断完善。由于水平实在有限,不免产生谬误,欢迎读者多多批评指正。如需要转载请与博主联系,谢谢

条件随机场核心概念


什么是条件随机场?

马尔科夫随机场定义:马尔科夫随机场(Markov Random Field)又称为概率无向图模型。在一个无向图中,结点表示随机变量,连边表示随机变量间的依赖关系,如果图中随机变量的联合概率分布P(Y)满足成对、局部或全局马尔科夫性,则称此联合概率分布为概率无向图模型。所谓的马尔科夫性简单的说就是随机变量的状态仅与其在空间或时间中相邻的随机变量状态有关,而不考虑其他更远处随机变量的影响。

条件随机场定义:条件随机场模型(Conditional Random Field,简称CRF)即给定随机变量X的条件下,随机变量Y的马尔科夫随机场(概率无向图模型),在实际应用中一般特指线性链上的随机场。一般来说随机变量集合X的图结构与其映射Y的图结构相同。
对条件随机场更直接的解释是,令任意节点v,其对应的随机变量为(Y_v),满足:

[Pleft ( Y_{v}|X,Y_{w} ight )=Pleft ( Y_{v}|X,Y_{u} ight ) ]

其中w为图中除了v以外的所有结点,u为与结点v直接相连的结点。此时条件概率(P(Y|X))即称为条件随机场。
而线性链为图的一种特殊形式,当我们特指线性链条件随机场时,随机变量(X=(X_1,X_2,cdots,X_n))(Y=(Y_1,Y_2,cdots,Y_n)),满足:

[ P(Y_i|X,Y_1,Y_2,cdots,Y_{i-1},Y_{i+1},cdots,Y_{n}) = P(Y_i|X,Y_{i-1},Y_{i+1}) ]

此时的条件概率分布(P(Y|X))构成条件随机场。一般在标注问题中,我们用X表示输入观测序列,Y表示对应输出标记序列或状态序列。

条件随机场的参数化形式

首先引入一个最大团的概念。无向图中若存在一个结点子集,其中任意两个结点间都有边相连,则称这个集合为一个团(clique)。如果图中存在一个很大的团,其不能够再通过加进当前图中的任何一个点而成为一个更大的团,则称其为当前图的最大团。
在这里我们可以引入一个定理来表示(P(Y)),即Hammersley-Clifford定理:设一个无向图为G,C为G上的最大团。则该概率无向图模型的联合概率分布(P(Y))可写作图中所有最大团C上的函数(psi _{C}left ( Y_{C} ight ))的乘积:

[Pleft ( Y ight )=frac{1}{Z}prod_{C}psi _{C}left ( Y_{C} ight ) ]

其中(psi _{C}left ( Y_{C} ight ))必须为正值,称为势函数,通常定义为关于(Y_C)期望的指数函数,而通常线性链条件随机场也可以看做一种对数线性模型。Z称为规范化因子,枚举了整个隐状态序列(X_{1…n})的全部可能,用于保证(P(Y))构成一个概率分布:

[Z=sum_{Y}prod_{C}psi _{C}left ( Y_{C} ight ) ]

上述定理应用在线性链条件随机场时,我们可以获得该场的参数化形式。当输入随机变量序列X取值为x,输出随机变量序列Y取值为y时,条件概率可表示为:

[pleft(y | x ight)=frac{1}{Zleft(x ight)} prod_{i=1}^{n} exp left(sum_{i, k} lambda_{k} t_{k}left(y_{i-1}, y_{i}, x, i ight)+sum_{i, l} mu_{l} s_{l}left(y_{i}, x, i ight) ight) ag{1} ]

其中:

[Z(x)=sum_{y} exp left(sum_{i, k} lambda_{x} t_{k}left(y_{i-1}, y_{i}, x, i ight)+sum_{i, l} mu_{l} s_{l}left(y_{i}, x, i ight) ight) ag{2} ]

其中(t_k)为定义在边上的特征函数,称为转移特征,依赖于前一个和当前位置;(s_l)为定义在节点上的特征函数,称为状态特征,依赖于当前位置。二者取值一般用0和1,即满足该特征条件时取1,否则取0。而(lambda _k)(mu _l)则为对应的权重。这四个参数就完全确定了一个条件随机场。

条件随机场的简化形式和矩阵形式

所谓的简化形式就是先将上文公式(1)中的各个特征写成在不同位置同一类特征求和的形式,将局部特征函数转化为全局特征函数,然后就可以将条件随机场写成权值向量和特征向量的内积形式。
首先将转移特征(t_k)和状态特征(s_l)统一起来,设有(K_1)个转移特征,(K_2)个状态特征,且(K=K_1+K_2),则令:

[f_kleft (y_{i-1},y_i,x,i ight )= egin{cases} t_kleft ( y_{i-1},y_i,x,i ight ),qquad k=1,2,cdots,K_1 \ s_l(y_i,x,i), qquadqquad k=K_1+l;l=1,2,cdots,K_2 end{cases} ]

对转移特征和状态特征在各个位置i求和(并不是真的要把它们加起来,而是相当于将同一个结点或者连边上的起限定作用几个特征函数相加,便于之后写成按结点为单位组成的特征函数向量,以此来简化公式形式,这里要再次明确下k代表当前结点或连边的第k个特征函数,i代表第i个结点),记作:

[f_kleft ( y,x ight )=sum_{i=1}^{n}f_kleft ( y_{i-1},y_i,x,i ight ),qquad k=1,2,cdots,K ]

同理,转移特征和状态特征的权重也可以合在一起写,即(f_k(y,x))的权值,写作(ω_k)

[ω_k= egin{cases} lambda _k,qquad k=1,2,cdots,K_1 \ mu _l, qquad k=K_1+l;l=1,2,cdots,K_2 end{cases} ]

然后再定义全局特征向量:

[Fleft ( y,x ight )=left ( f_1(y,x),f_2(y,x),cdots,f_K(y,x) ight )^{T} ]

此时条件随机场可以写成权值向量ω与特征向量F的内积的形式:

[P_omega left ( y|x ight )=frac{expleft ( omega cdot Fleft ( y,x ight ) ight )}{Z_{omega }left ( x ight )} ]

其中,

[Z_{omega }left ( x ight )=sum_{y}expleft ( omega cdot Fleft ( y,x ight ) ight ) ]

参考资料:

  1. https://github.com/datawhalechina/team-learning/tree/master/机器学习算法基础 DataWhale小组学习资料
  2. 《统计学习方法》 李航著
  3. https://www.zhihu.com/question/35866596/answer/236886066 如何用简单易懂的例子解释条件随机场(CRF)模型? 知乎高赞回答
原文地址:https://www.cnblogs.com/liugd-2020/p/12799371.html