条件随机场(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. NorFlash、NandFlash、eMMC比较区别

    快闪存储器(英语:Flash Memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器.这种科技主要用于一般性数据存储,以及在电脑与其他数字产品间交换传输数据,如储存 ...

  2. React-Native基础_1.初识React-Native项目

    1.初识React-Native项目 'use strict'//使用严格模式 import React, { Component } from 'react';//导入React的Component ...

  3. [Python] dict字典的浅复制与深复制

    Python中针对dict字典有两种复制: (1)浅复制:利用 copy() 或者 dict() :复制后对原dict的内部子对象(方括号[]内元素)进行操作时,由浅复制得到的dict会受该操作影响 ...

  4. 更换pip源,解决pip install安装包慢的问题

    而pip是很强大的Python包安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以最好是将使用的pip源更换一下,这样就能解决被墙导致的装不上库的问题.网上有很多可用的源,例如豆瓣:http ...

  5. iOS如何限制使用SDK的版本? 解决iOS项目的版本兼容问题

      更新 2015-11-16 感谢微博好友@zyyy_000的评论,补充了为什么要在+ (void)load方法里面做Method Swizzling. 前言 最近,在做项目时,因为某种原因,突然要 ...

  6. 理解Scala中的Extractor

    引言 最近抱着<Programming in Scala>(英文第二版)在死啃Scala.在阅读第26章Extractor时,偶然在Stack Overflow上搜到一个帖子<Sca ...

  7. THREE.OrbitControls初始化设置位移/旋转/滚轮

    let oldController;//已知的一个controller //初始化旋转(鼠标左键的操作) let position=oldController.object.position; cam ...

  8. ResultSet.TYPE_SCROLL_SENSITIVE到底发生了什么?

    转自:https://blog.csdn.net/axman/article/details/3984103 这个问题我在几年前说过,但今天再次从CSDN上看到有人问这个问题,可以看出,真正懂这个问题 ...

  9. UITableView 滚动流程性优化

    影响 UITableView 滚动的流畅性的原因 1. 在代理方法中做了过多的计算占用了 UI 线程的时间 2.同上 3.Cell 中 view 的组织复杂   关于第一点,首先要明白 tablevi ...

  10. python函数参数总结

    python中函数参数有:默认参数.关键字参数.非关键字可变长参数(元组).关键字可变长参数(字典) 默认参数:在函数声明时,指定形参的默认值,调用时可不传入改参数(使用默认值)def foo(x): ...