条件随机场(conditional random fields,简称 CRF,或CRFs)下文简称CRF,是一种典型的判别模型,相比隐马尔可夫模型可以没有很强的假设存在,在分词、词性标注、命名实体识别等领域有较好的应用。CRF是在马尔可夫随机场的基础上加上了一些观察值(特征),马尔可夫随机场<=>概率无向图模型。本篇将首先介绍CRF的一些基础知识,然后介绍线性链条件随机场模型,关于模型的学习算法将放在第二篇中介绍,第三篇介绍CRF的应用。

1主要概念

1.1概率无向图模型

  概率无向图模型是一种由无向图表示的联合概率分布,设有联合概率分布P(Y),Y是一组随机变量,用Y(i)表示,其中1<=i<=n,在无向图中用节点表示随机变量Y(i),节点的边表示随机变量的依赖关系。如果这些随机变量之间存在以下3个性质,那么就说这个联合概率分布为概率无向图模型。这3个性质分别是成对的马尔可夫性、局部的马尔可夫性、全局的马尔可夫性。这3个性质分别考察了给定周围环境的条件下,没有边直接相连的随机变量与随机变量、随机变量与随机变量组、随机变量组与随机变量组的独立性,这里的周围环境指的是除去要考察的随机变量(组)之外的所有随机变量。如果满足了独立性,那么就说随机变量(组)之间满足了对应的马尔可夫性。上述3个性质总结起来可以是没有直连边连接的任意两个节点是独立的。也可以这样理解:一个随机变量取什么值只与与其有直接边连接的节点有关系,没有直接的边连接就对这个节点代表的随机变量取值没影响。

1.2团与最大团

  无向图 G 中任何两个结点均有边连接的结点子集称为团。也就是说团<=>节点之间两两相连。

  最大团指的是已经没法向团中加入任何一个节点使之成为一个更大的团。

2CRF的工作原理

2.1联合概率分布的计算

如果根据贝叶斯公式直接求解P(Y1,Y2,Y3......Yn)这将是一件非常恐怖的事,所以我们的课本上讲联合概率分布的时候都是用两个随机变量,因为多个随机变量拆解起来太麻烦了。。。那怎么办呢?

如果随机变量A与B相互独立,那么P(A,B)=P(A)*P(B),同样,考虑到概率无向图模型的定义,(我们可以将联合概率分布拆解为概率无向图中所有最大团C的乘积的形式,,Z是规范化因子,但考虑到n个Y(c)相乘也是够麻烦的,如果能改成加和的关系就好了,于是就有了下面优化计算后的联合概率分布,纯属个人理解。。)我们可以将联合概率分布拆解为C的势函数的乘积形式,用公式表示为

注意Y(c)表示最大团对应的随机变量,Z是规范化因子,保证概率和为1,公式为

需要满足两点:其一是保证概率为绝对正值,另一保证概率方便计算。通常定义为指数函数

这样既能保证概率为正,又能变积为和,方便计算。

2.2线性链条件随机场

下图中,Y是随机变量,X是Y的观察值(特征),这些随机变量Y构成线性链条件随机场

在线性链条件随机场中,两个相邻的节点构成一个最大团,假设当前节点为i,那么特征考虑两大类:作用在节点i上的和作用在边(i-1与i相连)上的,在进行参数化推导的时候作用在边上的转移特征比作用在节点上的状态特征还需要多考虑Y(i-1)的取值,所以特征可以统一表示为

其中分别分别表示随机变量Y(i-1)、Y(i)的取值、观察值X的取值、在标记序列中的位置,K表示特征的个数,n表示待标记序列中最大团的个数。对状态特征函数而言,是会被忽略掉的。特征的取值通常为0或1,表示某个特征是否存在。

于是线性链条件随机场可以表示为

其中表示权重。

  有了特征,再乘之以权重,然后将特征与权重之积以加和的形式组织在一起,就可以用来取代2.1中的Y(c),这是多么完美的解决方案啊!将特征合理地组织起来,取代我们需要预测的东西,如果将前者视为原因,后者视为结果,这不就契合了因果关系的辩证法么,是特征的不同取值导致了预测的结果不同!(好像扯远了。。。)

2.3CRF的预测算法

预测问题,就是从多个候选标注中选出来一种标注概率最高的。因为分母Z是归一化因子,具有不变性,所以只需要考虑分子。故只需求得

其中,

为特征向量,是特征向量对应的权值向量,n是最大团的个数,i从1取到n表示对整个标注序列求解,y是变量,表示标注取值。

下面我们用维特比算法来求解上述最大值,首先需要指出的是维特比算法的本质是动态规划,而动态规划的关键步骤在于找到状态转移方程,这里

是维特比算法的状态转移方程,其中J表示标记的个数,表示第i个位置标注序列是C(j)结束的最大概率,这样当i取值为n的时候就表示最后一个位置标注为C(j)的最大概率,这时只需要遍历j即可找到哪个标注序列是最大概率,那么这个标注序列即为我们所求。

对第一个位置我们可以表示为

计算过程中需要记录路径,达到以空间换时间的效果。

条件随机场(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) - 1 - 简介

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

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

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

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

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

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

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

  9. 条件随机场CRF

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

  10. NLP --- 条件随机场CRF详解 重点 特征函数 转移矩阵

    上一节我们介绍了CRF的背景,本节开始进入CRF的正式的定义,简单来说条件随机场就是定义在隐马尔科夫过程的无向图模型,外加可观测符号X,这个X是整个可观测向量.而我们前面学习的HMM算法,默认可观测符 ...

随机推荐

  1. 求小于等于k长度的最大区间和

    题意 给出一个序列,求长度小于等于k的最大区间和并输出起点和终点 1<=n<=100000 1<=k<=n   题解:先算出前缀和,利用单调队列的性质,在单调队列中存储sum[ ...

  2. .net的session详解

    http://blog.csdn.net/justin_wkf/article/details/5746914#comments

  3. React-Native基础_3.Flex布局

    Flex布局介绍 /** * Sample React Native App * https://github.com/facebook/react-native * @flow */ 'use st ...

  4. Windows下安装Web.py快速指南

    环境介绍 首先介绍下安装使用的环境 - Windows 7 - Python 3.6 Web.py介绍 web.py是Python在Web领域一个轻量级的解决方案,所谓轻量,就是非常简单快速满足Web ...

  5. UE4 引擎基础类说明

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/76048437 作者:car ...

  6. Leetcode 590. N-ary Tree Postorder Traversal

    DFS,递归或者栈实现. """ # Definition for a Node. class Node: def __init__(self, val, childre ...

  7. ranch分析学习(三)

    接着上一篇继续研究 上一篇结尾的时候,我们谈到了连接,监听两个监督树,今天我们就来看看这两个监督树和他们的工作者都是干什么的,怎么实现的.文件编号接上篇. 6. ranch_acceptors_sup ...

  8. Android HOOK工具Cydia Substrate使用详解

    目录(?)[+] Substrate几个重要API介绍 MShookClassLoad MShookMethod 使用方法 短信监控实例   Cydia Substrate是一个代码修改平台.它可以修 ...

  9. 每天一个linux命令(文件操作):【转载】find命令之exec

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command ...

  10. BZOJ3325 [Scoi2013]密码【Manacher】【构造】【贪心】

    Description Fish是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信 ...