条件随机场(CRF)是给定一组输入随机变量条件下,求另一组输出随机变量的条件概率分布的模型;其特点是假设输出随机变量构成马尔科夫随机场(后面阐明),条件随机场可以用于不同的预测问题,对自然措辞处理过程紧张是线性(linear chain)条件随机场,这时,问题变成了由输入序列对输出序列预测的判别模型,形式为对数 线性模型,学习方法为极大似然估计或者正则化的极大似然估计。条件随机场和隐马类似,对应得得三个基本问题:概率打算问题、学习问题和预测问题。
文章目录 [展开]
概率无向图模型(probabilistic undirected graphical model)又称为马尔科夫随机场,是一个可以由无向图表示的联合概率分布。

定义:设有联合概率分布于P(Y),由无向图G=(V,E)表示,在图G中,节点表示随机变量,边表示随机变量之间的依赖关系。如果联合概率分布P(Y)知足成对、局部或全局马尔科夫性,就称此联合概率分布为概率无线图模型
成对、局部或全局马尔科夫性,大口语便是说每一个节点的分布只和有边相连的节点有关系。
概率无向图的因子分解
因子分解是建立在最大团的理论之上,这里先先容最大团
定义(团和最大团):无向图G中任何两个节点均有边链接的节点自己称为团(clique)。若C是无向图的一个团,并且不能再加入任何一个G的节点使其成为一个更大的团,则称此C为最大团(maximal clique)。
下图中有两个节点组成的团有五个:{A,B},{B,C},{A,C},{C,D},{B,D};有两个最大团:{A,B,C},{B,C,D};而{A,B,C,D}不是一个团,由于A和D之间没有边。
定义(因子分解):将概率无向图模型的联合概率分布表示为其上最大团的随机变量的函数的乘机的形式的操作,成为概率无向图模型的因子分解(factorization)。
给定无向图模型G,个中C表示的是最大团, YCYC 表示C对应的随机变量,联合概率分布P(Y)可写作图中所有最大团C上的函数 φC(YC)φC(YC) 的乘积形式:
P(Y)=1Z∏CφC(YC)P(Y)=1Z∏CφC(YC)
个中Z是规范化因子:
Z=∑Y∏CφC(YC)Z=∑Y∏CφC(YC)
规范化因子担保P(Y)构成一个概率分布,函数 φCφC 称为势函数,这里哀求势函数是严格正的,常日定义的为指数函数
φC(YC)=e−E(YC)φC(YC)=e−E(YC)
条件随机场的定义定义(条件随机场):设X和Y是随机变量,P(Y|X)是在给定X的条件下的Y的条件分布,若随机变量Y构成一个无向图G=(V,E)表示的马尔科夫场,即:
P(Yv|X,Yw,w≠v)=P(Yv|X,Yw,w∼v)P(Yv|X,Yw,w≠v)=P(Yv|X,Yw,w∼v)
对任意的节点v成立,则称条件概率分布P(Y|X)为条件随机场。个中 w∼vw∼v 表示在图G=(V,E)中,节点v有边链接的所有节点w, w≠vw≠v 表示节点v以外的所有节点。
定义中并没有哀求X和Y具有相同的图构造,现实中,一样平常假设X和Y具有相同的图构造。本文紧张谈论下面两种线性链的情形。
根据定义,线性链的的条件随机场可以表示为(请不要纠结边界):
P(Yi|X,Y1,Y2,...,Yi−1,Yi+1,...,Yn)=P(Yi|X,Yi−1,Yi+1)P(Yi|X,Y1,Y2,...,Yi−1,Yi+1,...,Yn)=P(Yi|X,Yi−1,Yi+1)
线性条件随机场的参数化形式线性条件随机场中每个最大团都包含两个节点,当前节点为i前一个节点为i-1。特色粒度是在最大团的粒度,并且是两个相邻节点{i-1, i}。一样平常来说特色分为两类,浸染在边上的特色和浸染在节点上的特色,边上的第m维特色用 tmtm 表示,节点上的第l维特色用 slsl 表示。每个团的特色向量为 (t1,t2,...,tm,...,tM,s1,s2,...sl,...,sL)(t1,t2,...,tm,...,tM,s1,s2,...sl,...,sL) ,为了表示方便,常日用 (f1,f2,...,fM,fM+1,....,fM+L)(f1,f2,...,fM,fM+1,....,fM+L) 表示;类似线性模型,每个特色都要学习出来一个权重 w=(w1,w2,...,wM+L)w=(w1,w2,...,wM+L) 。
用公式表示即为:
P(y|x)=1Z(x)exp∑Kk=1wkfk(y,x)P(y|x)=1Z(x)exp∑k=1Kwkfk(y,x)
Z(x)=∑yexp∑Kk=1wkfk(y,x)Z(x)=∑yexp∑k=1Kwkfk(y,x)
fk(y,x)=∑ni=1fk(yi−1,yi,x,i)fk(y,x)=∑i=1nfk(yi−1,yi,x,i)
条件随机场的概率打算问题在已知参数和求给定不雅观测序列的概率的时候,只须要依次从前到后打算每一个最大团的向量乘积即可。
条件随机场的学习算法详细的实现算法有改进的迭代尺度法、梯度低落法以及拟牛顿法。
改进的迭代尺度法
条件随机场的预测算法预测算法和HMM类似,是维特比算法。
预测问题,便是从多个候选标注中挑选出来一种标注概率最高的。由于归一化因子不影响值的比较,以是只须要比较分子部分的『非规范化概率』。这个求最优的过程可以通过数学表示为:
maxy ∑ni=1w⋅Fi(yi−1,yi,x)maxy ∑i=1nw⋅Fi(yi−1,yi,x)
个中,
Fi(yi−1,yi,x)=(f1(yi−1,yi,x,i),f2(yi−1,yi,x,i),...,fk(yi−1,yi,x,i))TFi(yi−1,yi,x)=(f1(yi−1,yi,x,i),f2(yi−1,yi,x,i),...,fk(yi−1,yi,x,i))T
接下来便是利用维特比算法对每一个位置i,打算标注为 cjcj 的最大概率,对付每一个位置有多个可能的标注,定义 ϱi(j)ϱi(j) 表示第i个位置,标注序列是 cjcj 结束的最大概率,以是动态转移方程可以表示为:
ϱi(j)=max1≤l≤J{ϱi−1(l)+w⋅Fi(yi−1=l,yi=j,x)},l=1,2,3...Jϱi(j)=max1≤l≤J{ϱi−1(l)+w⋅Fi(yi−1=l,yi=j,x)},l=1,2,3...J
对第一个位置可以表示为:
ϱ1(j)=w⋅F1(y0=start,y1=j,x), j=1,2,...,Jϱ1(j)=w⋅F1(y0=start,y1=j,x), j=1,2,...,J
打算的时候记录一下路径就可以了。
运用CRF++词性标注CRF++中文分词转自:https://www.cnblogs.com/DjangoBlog/p/7448145.html