条件随机场(CRF)理论及应用
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
计算的时候记录一下路径就可以了。
应用
条件随机场(CRF)理论及应用的更多相关文章
- 条件随机场(CRF) - 2 - 定义和形式(转载)
转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618218.html 参考书本: <2012.李航.统计学习方法.pdf> 书上 ...
- 条件随机场(CRF) - 1 - 简介(转载)
转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618222.html 首先我们先弄懂什么是"条件随机场",然后再探索其详 ...
- 条件随机场CRF(一)从随机场到线性链条件随机场
条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估观察序列概率(TODO) 条件随机场CRF(三) 模型学习与维特比算法解码(TODO) 条件随机场(Condi ...
- 条件随机场CRF(三) 模型学习与维特比算法解码
条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在CRF系列的前两篇,我们总结了CRF的模型基 ...
- 条件随机场CRF(二) 前向后向算法评估标记序列概率
条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在条件随机场CRF(一)中我们总结了CRF的模 ...
- 条件随机场 (CRF) 分词序列谈之一(转)
http://langiner.blog.51cto.com/1989264/379166 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.ht ...
- 条件随机场CRF
条件随机场(CRF)是给定一组输入随机变量X的条件下另一组输出随机变量Y的条件概率分布模型,其特点是假设输出随机变量构成马尔科夫随机场.实际上是定义在时序数据上的对数线性模型.条件随机场属于判别模型. ...
- 条件随机场(CRF) - 1 - 简介
声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...
- 条件随机场(CRF) - 2 - 定义和形式
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xueyingxue001/article/details/51498968声明: 1,本篇为个人对& ...
- 条件随机场CRF简介
http://blog.csdn.net/xmdxcsj/article/details/48790317 Crf模型 1. 定义 一阶(只考虑y前面的一个)线性条件随机场: 相比于最大熵模型的输 ...
随机推荐
- 【BZOJ-3672】购票 树分治 + 斜率优化DP
3672: [Noi2014]购票 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 1177 Solved: 562[Submit][Status][ ...
- android应用程序签名(转)
概述 Android系统要求,所有的程序经过数字签名后才能安装.Android系统使用这个证书来识别应用程序的作者,并且建立程序间的信任关系.证书不是用于用户控制哪些程序可以安装.证书不需要授权中心来 ...
- PHP项目收藏
API接口管理系统 Github上的PHP资源汇总大全 Github.com上有哪些比较有趣的PHP项目 SOAP NuSOAP - SOAP Toolkit for PHP [官网] [教程] 通用 ...
- 改变窗体大小视图区图形也会跟着变化 MFC
怎样实现窗体缩放,视图区里的图形也会跟着变化 在CMFCView类中加入三个消息函数: 在类向导中选中CMFCView类,点击右键---->类向导------>消息--------> ...
- PeekMessage和GetMessage函数的主要区别
PeekMessage和GetMessage函数的主要区别 PeekMessage和GetMessage函数的主要区别有:1. GetMessage的主要功能是从消息队列中“取出”消息,消息被取出以后 ...
- Swift iOS 文件操作:沙盒(SandBox)、程序包(NSBundle)
1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程序都有一个单独的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒.所有的非代码文件 ...
- Command /usr/sbin/chown failed with exit code 1?
问题: 解答: 转自:http://stackoverflow.com/questions/7589771/command-usr-sbin-chown-failed-with-exit-code-1
- iOS中block简介-作用域
转:http://www.2cto.com/kf/201401/269467.html 用block可以定义任意的代码片段,将其像对象一样传入另一个方法:它是c级别的语法,和C语言中的函数指针非常相似 ...
- android 中theme.xml与style.xml的区别
from://http://liangoogle.iteye.com/blog/1848448 android 中theme.xml与style.xml的区别: 相同点: 两者的定义相同. <r ...
- 解决ADB server didn't ACK问题
ADB server didn't ACK | 浏览:7400 | 更新:2013-08-11 21:19 1 2 3 4 5 6 7 分步阅读 当我们通过eclipse开发Android应用时,会连 ...