http://x-algo.cn/index.php/2016/02/15/conditional-random-field-crf-theory-and-implementation/

条件随机场(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

计算的时候记录一下路径就可以了。

应用

  1. CRF++词性标注
  2. CRF++中文分词

条件随机场(CRF)理论及应用的更多相关文章

  1. 条件随机场(CRF) - 2 - 定义和形式(转载)

    转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618218.html 参考书本: <2012.李航.统计学习方法.pdf> 书上 ...

  2. 条件随机场(CRF) - 1 - 简介(转载)

    转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618222.html 首先我们先弄懂什么是"条件随机场",然后再探索其详 ...

  3. 条件随机场CRF(一)从随机场到线性链条件随机场

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估观察序列概率(TODO) 条件随机场CRF(三) 模型学习与维特比算法解码(TODO) 条件随机场(Condi ...

  4. 条件随机场CRF(三) 模型学习与维特比算法解码

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在CRF系列的前两篇,我们总结了CRF的模型基 ...

  5. 条件随机场CRF(二) 前向后向算法评估标记序列概率

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在条件随机场CRF(一)中我们总结了CRF的模 ...

  6. 条件随机场 (CRF) 分词序列谈之一(转)

    http://langiner.blog.51cto.com/1989264/379166 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.ht ...

  7. 条件随机场CRF

    条件随机场(CRF)是给定一组输入随机变量X的条件下另一组输出随机变量Y的条件概率分布模型,其特点是假设输出随机变量构成马尔科夫随机场.实际上是定义在时序数据上的对数线性模型.条件随机场属于判别模型. ...

  8. 条件随机场(CRF) - 1 - 简介

    声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...

  9. 条件随机场(CRF) - 2 - 定义和形式

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xueyingxue001/article/details/51498968声明: 1,本篇为个人对& ...

  10. 条件随机场CRF简介

    http://blog.csdn.net/xmdxcsj/article/details/48790317 Crf模型 1.   定义 一阶(只考虑y前面的一个)线性条件随机场: 相比于最大熵模型的输 ...

随机推荐

  1. Spring Data JPA使用keywords关键字实现CAST函数

    对不起,经过几天几夜的使用的研究得出这种方式是无法实现的,在查询上的关键字只有这些: https://docs.spring.io/spring-data/jpa/docs/2.1.x/referen ...

  2. ARM 汇编与C调用的若干问题(一般函数调用情况)

    ARM 汇编与C之间的函数调用需要符合ATPCS,建议函数的形参不超过4个,如果形参个数少于或等于4,则形参由R0,R1,R2,R3四个寄存器进行传递:若形参个数大于4,大于4的部分必须通过堆栈进行传 ...

  3. HDU 4764 Stone (2013长春网络赛,水博弈)

    Stone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  4. STM32 F4 ADC DMA Temperature Sensor

    STM32 F4 ADC DMA Temperature Sensor Goal: detecting temperature variations using a temperature senso ...

  5. stm-ledstrip : Driver and test routine for WS2811 RGB-LED

    stm-ledstrip : Driver and test routine for WS2811 RGB-LED #include "ws2812.h" #include < ...

  6. code.google.com/p/log4go 下载失败

    用 glide 下载 goim 的依赖包时报错,提示: code.google.com/p/log4go 找不到,即下载失败 主要是 code.google.com 网站已关闭导致的, 有人把它 fo ...

  7. WebLogic使用总结(四)——WebLogic部署Web应用

    一.打包Web应用 首先将要部署到WebLogic的Web应用打包成war包,具体操作步骤如下图所示: 选中要打包的[oams]项目→[Export...]

  8. Delphi的命令行编译命令

    Borland出品的Delphi,有着闪电般的编译速度,但是在界面控件使用较多.工程项目较大的时候,编译一个工程仍需要一段时间,打开庞大的Delphi IDE,也需要时间.其实,在一个工程开发结束,调 ...

  9. java ffmpeg视频转码(自测通过)

    import java.io.*; public class VideoTransfer { //ffmepg文件 安装目录 private static String ffmpeg = " ...

  10. tomcat内存溢出设置JAVA_OPTS

     答案1设置Tomcat启动的初始内存其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4.可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置三.实例,以 ...