条件随机场(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. 20165202 week4课下补做

    1.相关知识点的总结 编程实现1!+2!+3!+... + N!的功能,N由命令行传入,比如类名为SumofRecur, java SumofRecur 8 给出1!+2!+3!+... + 8!的值 ...

  2. c# 系统校时工具类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace HuaT ...

  3. python删除list中元素的三种方法

    a.pop(index):删除列表a中index处的值,并且返回这个值. del(a[index]):删除列表a中index处的值,无返回值. del中的index可以是切片,所以可以实现批量删除. ...

  4. tableView 三级展开 嵌入collocationView

    目前有个需求,需要在写一个文件夹结构的类型,tableView分类显示 collocationView 遇到的问题是:tableView cell中嵌套了 collocationView 后,coll ...

  5. IE只是开始!

    Study is boring,but devotion make it is easy!

  6. wampserver搭建本地服务器

    打开..\wamp\bin\apache\apache2.4.9\conf\httpd.conf配置文件, <Directory "c:/wamp/www/"> # # ...

  7. Spring之基本关键策略

    目的 为了简化Java开发. 策略 基于POJO(普通Java类)的轻量级和最小侵入性编程: 通过依赖注入(DI)和面向接口实现松耦合: 基于切面和惯例进行声明式编程: 通过切面和模板减少样板式代码. ...

  8. rancher下的kubernetes之一:构建标准化vmware镜像

    学习kubernetes的时候,我们需要在kubernetes环境下实战操作,然而kubernetes环境安装并不容易,现在通过rancher可以简化安装过程,咱们来实战rancher下的kubern ...

  9. CFE Bootloader详解 — 引导过程

    CFE命令 CFE引导过程 系统加电后,CFE从boot.S (src/shared/boot.S)开始执行,完成判断芯片类型.设置时钟.初始化缓存.把自身加载进RAM等任务后,跳转到c_main() ...

  10. 《DSP using MATLAB》示例Example 9.5

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...