条件随机场conditional random field,给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型。特点是假设输出随机变量构成马尔可夫随机场。条件随机场可用于不同的预测问题。主要的线性链条件随机场,是对输入序列对输出序列预测的判别模型,形成为对数线性模型,学习方法常为极大似然估计或正则化极大似然估计,可应用于标注问题,2001年Lafferty提出。

首先放一个链接:轻松理解CRF

理解:http://blog.csdn.net/xiangyong58/article/details/51381477

1 概率无向图模型

probabilistic undirected graphical model,又称为马尔可夫随机场(Markov random filed)是一个由无向图表示的联合概率分布。

1.1 模型定义

图graph结点(node)和连接结点的边(edge)组成的集合。结点记作ν,边e,结点集合V,边集合E,图记作(V,E),无向图指的是没有方向。

概率图模型(probabilistic graphical model)是由图表示的概率模型。设联合概率分布P(Y),Y是一组随机变量,由无向图G(V,E)表示概率分布,即在图中,ν表示一个随机变量Yν,Y=Yν;边e表示随机变量的依赖关系。

给定一个联合概率分布P(Y)和表示它的无向图G,首先定义无向图表示的随机变量之间存在的成对马尔可夫性(pairwise Markov property),局部马尔可夫性(local Markov property)和全局马尔可夫性(global Markov property)。

pairwise Markov property:G图上任意两个没有连接的结点μ和ν对应的随机变量Yμ,Yν,其他结点用O表示,对应的随机变量为Yo,则成对Markov property指的是给定随机变量组Yo条件下随机变量Yμ,Yν是条件独立的,即



local Markov property:设ν是G的任意一个结点,W是与ν有边连接的所有结点,O是与ν和W以外的其他所有结点,那么本定义指的是给定随机变量组Yw条件下随机变量Yν与随机变量组Yo是独立的,即



在P(Yo|Yw)>0时,等价于(做除法即可得到)

global Markov property:设结点集合A,B是在无向图G中被结点集合C分开的任意结点集合,本定义是指给定随机变量组Yc条件下随机变量组YA和YB是条件独立的,即

概率无向图模型的定义:设有联合概率分布P(Y),由无向图G=(V,E)表示,在图G中结点表示随机变量,边表示随机变量之间的依赖关系。如果联合概率分布P(Y)满足成对,局部或全局马尔可夫性就称为马尔可夫随机场(Markov random filed)。

目标:给定马尔可夫随机场希望求得其概率,那么如果将整体的联合概率分布写成若干联合概率的乘积形式,也就是将联合概率进行因子分解。而概率无向图模型最大的特点就是易于因子分解。

1.2 因子分解

团与最大团:无向图中任何两个结点均有边连接的结点子集称为团(clique);若C是无向图G的一个团,并且不能再加进任何一个G的结点使其称为更大的一个团,则称C为最大团(maximal clique)。

因子分解(factorization):将概率无向图的联合概率分布表示为其最大团上的随机变量函数的乘积形式的操作。

给定概率无向图模型,设为G,C为G上最大团,Yc表示C对应的随机变量,那么概率无向图模型的联合概率分布P(Y),可写作最大团C上函数的乘积形式:

,其中Z是规范化因子(normalization factor)保证了P(Y)构成一个概率分布;

函数称为势函数(potential function),要求势函数必须为严格正的,因此常定义为指数函数:

2 条件随机场的定义

条件随机场(conditional random field,CRF):给定随机变量X条件下,随机变量Y的马尔可夫随机场。这里主要介绍线性链上特殊的条件随机场——线性链条件随机场(linear chain conditional random field)。这是,条件概率模型P(Y|X)中Y是输出变量,表示标记序列;X是输入变量表示需要标注的观测序列。也把标记序列称为状态序列。学习时,利用训练数据集通过极大似然估计或正则化极大似然估计得到条件概率模型;预测时,对于给定的输入序列x,求出条件概率最大的输出序列Y hat。

条件随机场数学定义:设X,Y是随机变量,P(Y|X)是给定X条件下Y的条件概率分布。若随机变量Y构成一个由无向图G=(V,E),表示的马尔可夫随机场,即

对任意结点ν成立,则称条件概率分布P(Y|X)为条件随机场,w~ν表示在图G中与结点ν有边连接的所有结点w,表示结点ν以外的所有结点,Yν,Yμ,Yw表示结点ν,μ,w对应的随机变量。

线性链条件随机场数学定义:设X=(X1,X2,…,Xn),Y=(Y1,Y2,…,Yn)均为线性链表示的随机变量序列,若给定随机变量序列X条件下,随机变量序列Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔可夫性:

,i=1,2,…n(i=1和i=n时只考虑单边)

称P(Y|X)为线性链条件随机场。标注问题中,X表示输入观测序列,Y表示对应的输出标记序列或状态序列。

2.2 条件随机场的参数化形式

由线性链的特点可知,其最大团为相邻的结点,由因子分解定理可知P(Y|X)可以因子分解。

线性链条件随机场的参数化形式:设P(Y|X)为线性链条件随机场,则在随机变量X取值为x条件下,随机变量Y取值为y条件概率形式为:

其中,

式中tk和sl是特征函数,λk和μl是对应的权值,Z(x)是规范化因子,求和是在所有可能的输出序列上进行。

本式为线性链条件概率随机场模型的基本形式,表示给定输入序列x,对输出序列y预测的条件概率。tk是定义在边上的特征函数,称为转移特征,依赖于当前和前一个位置;sl是定义在结点上特征函数,称为状态特征,依赖于当前特征。tk和sl都依赖于位置,是局部特征。通常,特征函数tk和sl取值为1 or 0;当满足特征条件时取1,否则为0;条件随机场完全由特征函数tk和sl及对应的权值λk和μl确定。线性链条件随机场也是对数线性模型(log linear model)。

2.3 条件随机场的简化形式

条件随机场的原始公式中同一特征在各个位置都有定义,可以对同一特征在各个位置求和,将局部特征函数转化为一个全局特征函数,这样就可以将条件随机场写成权值向量和特征向量的内积形式,即条件随机场的简化形式。

首先将转移特征和状态特征及其权值用统一符号表示,设K1个转移特征,K2个状态特征,K=K1+K2,记



对转移和状态特征在各个位置i求和,记作,



用wk表示权值,即



条件随机场可表示为



若w表示权值向量,即

若F(y,x)表示全局特征向量,即

条件随机场写成w和F的内积形式:

,其中

2.4 条件随机场的矩阵形式

Pw(y|x)表示对给定观测序列x,相应的标记序列y的条件概率,引进特殊的起点和终点状态标记y0=start,yn+1=stop,这时Pw可通过矩阵形式表示。

对观测序列x的每一个位置i=1,2,…,n+1,定义一个m阶矩阵(m是标记yi的取值个数):



因此,给定观测序列x,标记序列y的非规范化概率通过n+1个矩阵的乘积表示,于是,条件概率Pw为:

,Zw(x)是规范化因子

注意:规范化因子是从start到stop通过状态的所有路径y1y2.。。yn的非规范化概率之和。

3 条件随机场的概率计算问题

条件随机场概率计算问题是给定条件随机场P(Y|X),输入序列x和输出序列y,计算条件概率P(Yi=yi|x),P(Yi-1=yi-1|x)以及相应的数学期望。为了计算方便,引入前向-后向向量,递归地计算以上概率问题及期望值——前向-后向算法。

3.1 前向-后向算法

对每个指标i=0,1,…, n+1,定义前向向量αi(x):



递推公式为:



又可以表示为

表示在位置i标记是yi并且到位置i的前部分标记序列的非规范化概率,yi可取的值由m个,所以αi(x)是m维向量(m是yi的取值个数)。

同样,对每个指标i=0,1,…,n+1,定义后向向量βi(x):



递推公式:



又可以表示为:

βi(yi|x)表示在位置i的标记为yi并且从i+1到n的后半部分标记序列的非规范化概率。

由前向-后向向量得到规范化因子:1是元素均为1的m维列向量。

3.2 概率计算

标记序列在位置i是标记yi的条件概率和位置i-1与i是标记yi-1和yi的条件概率为:





其中,

3.3 期望值的计算

利用前向-后向向量可以计算特征函数关于联合分布P(X,Y)和条件P(Y|X)的数学期望。

特征函数fk关于条件分布P(Y|X)的数学期望是

,k=1,2,3…,K,其中

假设经验分布为,特征函数fk关于联合分布P(X,Y)的数学期望是



对于转移特征:

对于状态特征:,同理。

4 条件随机场的学习算法

学习算法指的是给定条件随机场估计条件随机场模型参数。CRF实际上是定义在时序数据上对数线性模型,学习算法包括:极大似然估计,正则化极大似然估计。具体的优化实现算法是改进的IIS,GD,及拟牛顿法。

4.1 改进的迭代尺度法IIS

已知训练集可知经验概率分布通过极大化训练数据的对数似然函数来求模型参数。

训练数据对数似然函数为



代入Pw的等式得,



改进的迭代尺度法通过迭代的方法不断优化对数似然函数该变量的下界,达到极大化对数似然函数的目的。假设模型的当前参数向量为,向量的增量为,更新参数向量为w+δ=(w1+δ1,…,wk+δk)T,在每次迭代过程中,IIS通过依次求解L得到

关于转移特征tk的更新方程



关于状态特征sl更新方程



其中,T是所有数据(x,y)中出现所有特征数总和



条件随机场模型学习的改进的迭代尺度算法:



问题:T为所有数据(x,y)的特征总数,对不同的数据(x,y)可能取值不同,为了处理这个问题,定义松弛特征:

,S是一个常数, 通常选择S要 足够大,使得s(x,y)>=0。这时总特征总数取S。

那么,对于转移特征tk,δk的更新方程是



其中,

对状态特征sl,δk的更新方程是



其中,

以上称为算法S。在S中需要使常数S取足够大,这样每步的迭代增量向量会变大,算法收敛会变慢。因此算法T将解决这个问题。算法T对每个观测序列x计算其特征总数的最大值T(x),

利用前向-后向递推公式,得T(x)=t.两个更新方程为:



there,ak,t是特征tk的期待值,δk=logβk(βk是上述方程唯一的实根,可用牛顿法求得);

bl,t是特征sl的期待值,δl=logγl(γl是上述方程唯一的实根,可用牛顿法求得);

4.2 拟牛顿法

对于条件随机场模型:



学习的优化目标函数是:

其梯度函数是:

BFGS算法:

5 条件随机场的预测算法

条件随机场的预测问题是给定条件随机场P(Y|X)和输入序列(观测序列)x,求条件概率最大的输出序列(标记序列)y*,对观测序列进行标注。条件随机场的预测算法是维特比算法

目标:



于是,CRF预测问题成为求非规范概率最大的最优路径问题,这里,路径表示标记序列。

其中,



只需计算非规范概率而不必求解概率。为了求解最优路径将上式max修改为,其中

局部特征向量。

讲解维特比算法:

首先位置1的各个标记j=1,2,3,..,m的非规范化概率:

递推公式,求得位置i的各个标记j=1,2,3,…,m的非规范概率,同时记录非规范化概率最大值的路径:





直到i=n时终止。这时求得非规范化概率最大值

最优路径的终点:

由终点回溯:

求得最优路径

条件随机场的维特比算法:

总结:CRF模型主要是对含有序列的信息打上标签,尤其是词性标注;这里主要理解CRF的主要工作过程,IIS,拟牛顿法,Viterbi算法都是常见的通用算法,可用于解决很多问题,理解即可。

 

标注-CRF条件随机场的更多相关文章

  1. 【算法】CRF(条件随机场)

    CRF(条件随机场) 基本概念 场是什么 场就是一个联合概率分布.比如有3个变量,y1,y2,y3, 取值范围是{0,1}.联合概率分布就是{P(y2=0|y1=0,y3=0), P(y3=0|y1= ...

  2. CRF 条件随机场工具包

    CRF - 条件随机场 工具包(python/c++) 项目案例 ConvCRF+FullCRF https://github.com/MarvinTeichmann/ConvCRF 需要的包Opti ...

  3. CRF条件随机场简介

    CRF(Conditional Random Field) 条件随机场是近几年自然语言处理领域常用的算法之一,常用于句法分析.命名实体识别.词性标注等.在我看来,CRF就像一个反向的隐马尔可夫模型(H ...

  4. CRF条件随机场

    CRF的进化 https://flystarhe.github.io/2016/07/13/hmm-memm-crf/参考: http://blog.echen.me/2012/01/03/intro ...

  5. Machine Learning系列--CRF条件随机场总结

    根据<统计学习方法>一书中的描述,条件随机场(conditional random field, CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出 ...

  6. CRF条件随机场简介<转>

    转自http://hi.baidu.com/hehehehello/item/3b0d1f8ba1c2e5c698255f89 CRF(Conditional Random Field) 条件随机场是 ...

  7. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

  8. Viterbi(维特比)算法在CRF(条件随机场)中是如何起作用的?

    之前我们介绍过BERT+CRF来进行命名实体识别,并对其中的BERT和CRF的概念和作用做了相关的介绍,然对于CRF中的最优的标签序列的计算原理,我们只提到了维特比算法,并没有做进一步的解释,本文将对 ...

  9. CRF条件随机场在机器视觉中的解释

    CRF是一种判别模型,本质是给定观察值集合的马尔科夫随机场(MRF),而MRF是加了马尔科夫性质限制的随机场. 马尔科夫性质:全局.局部.成对 随机场:看做一组随机变量的集合(对应于同一个样本空间), ...

随机推荐

  1. thinkPHP数据库操作

    thinkPHP如果要对数据库操作,一般来说首先要做的是在配置文件中链接数据库,然后用M方法实例化一张表,然后就是对表的操作了 可以开启调试功能查看程序执行的sql语句: 1.开启调试功能(默认是已经 ...

  2. virsh 常用操作

    virsh list 显示在运行的 虚拟机    virsh list --all 显示在运行和停止的虚拟机    ssh 192.168.0.115 通过网络连接子机   如果没有网络 可以通过 v ...

  3. NoSQL性能测试工具YCSB-Running a Workload

    写在前面 目前,在系统设计中引入了越来越多的NoSQL产品,例如Redis/ MongoDB/ HBase等,其中性能指标往往会成为权衡不同NoSQL产品的关键因素.对这些产品在性能表现和产品选择上的 ...

  4. Redis进阶实践之十三 Redis的Redis-trib.rb文件详解

    一.简介     事先说明一下,本篇文章不涉及对redis-trib.rb源代码的分析,只是从使用的角度来阐述一下,对第一次使用的人来说很重要.redis-trib.rb是redis官方推出的管理re ...

  5. 利用mock提高效率

    利用mock提高效率 谈到mock,就不得不讲前后端分离.理想情况下前后端不分离,由全栈的人以product和infrastructure的维度进行开发,效率是最高的.近些年来业务的复杂度越来越高,真 ...

  6. JavaScript面向对象入门

    什么是JavaScript? 我们可以从几个方面去说JavaScript是什么: 基于对象 javaScript中内置了许多对象供我们使用[String.Date.Array]等等 javaScrip ...

  7. PHP实现网页爬虫

    抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐.LZ总结了几种常用的.易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单. 一 ...

  8. Batch Normalization&Dropout浅析

    一. Batch Normalization 对于深度神经网络,训练起来有时很难拟合,可以使用更先进的优化算法,例如:SGD+momentum.RMSProp.Adam等算法.另一种策略则是高改变网络 ...

  9. acdrem1083 人民城管爱人民 DP

    思路:d(i, 0)表示从节点i到达大运村的最短路径,d(i, 1)表示从节点i到达大运村的次短路径. 1.最短路:当做DAG处理即可. 2.次短路:假设当前在u点处,下一个节点是v.v到终点的最短路 ...

  10. 学生信息管理系统(c语言)

    ①注意: 程序中使用了sleep()函数.system()函数 关于 sleep() 函数 sleep() 函数的头文件和用法会因环境的不同而有所不同. 具体见-sleep()函数功能及用法 关于sy ...