条件随机域(场)(conditional random fields,简称 CRF,或CRFs),是一种判别式概率模型,是随机场的一种,常用于标注或分析序列资料,如自然语言文字或是生物序列。

如同马尔可夫随机场,条件随机场为具有无向的图模型,图中的顶点代表随机变量,顶点间的连线代表随机变量间的相依关系,在条件随机场中,随机变量 Y 的分布为条件机率,给定的观察值则为随机变量 X。原则上,条件随机场的图模型布局是可以任意给定的,一般常用的布局是链结式的架构,链结式架构不论在训练(training)、推论(inference)、或是解码(decoding)上,都存在效率较高的算法可供演算。

“条件随机场”被用于中文分词和词性标注等词法分析工作,一般序列分类模型常常采用隐马尔可夫模型(HMM),像基于类的中文分词。但隐马尔可夫模型中存在两个假设:输出独立性假设和马尔可夫性假设。其中,输出独立性假设要求序列数据严格相互独立才能保证推导的正确性,而事实上大多数序列数据不能被表示成一系列独立事件。而条件随机场则使用一种概率图模型,具有表达长距离依赖性和交叠性特征的能力,能够较好地解决标注(分类)偏置等问题的优点,而且所有特征可以进行全局归一化,能够求得全局的最优解。摘自百度百科。

CRF

CRF即条件随机场(Conditional Random Fields),是在给定一组输入随机变量条件下另外一组输出随机变量的条件概率分布模型,它是一种判别式的概率无向图模型,既然是判别式,那就是对条件概率分布建模。

CRF较多用在自然语言处理和图像处理领域,在NLP中,它是用于标注和划分序列数据的概率化模型,根据CRF的定义,相对序列就是给定观测序列X和输出序列Y,然后通过定义条件概率P(Y|X)来描述模型。

CRF的输出随机变量假设是一个无向图模型或者马尔科夫随机场,而输入随机变量作为条件不假设为马尔科夫随机场,CRF的图模型结构理论上可以任意给定,但我们常见的是定义在线性链上的特殊的条件随机场,称为线性链条件随机场。

概率无向图模型

前面说到CRF的输出随机变量是一个概率无向图模型,那么现在看看该模型。

概率无向图模型是由无向图表示的联合概率分布,假设联合概率分布P(Y)通过无向图来表示,则在图中节点表示随机变量,边表示随机变量之间的依赖关系,联合概率分布P(Y)满足马尔科夫性则称其为概率无向图模型,或者是马尔科夫随机场。

如下图,图是一个由节点和边组成的结构体,无向是指边没有方向,整个图记作G=(V,E),其中圆形V为节点的集合,E为边的集合。

线性链条件随机场

无向图的结构理论上可以是任意的,但在NLP中对于标记处理问题,对其建模主要用最简单最普通的链式结构,即线性链条件随机场。如下图,可以看到节点为线性链结构,节点对应了序列Y的元素,而观察序列X不做任何独立性假设,但X序列的结构也可以是线性链结构。

概率的定义

如何训练CRF

啥时考虑CRF

如果信息是与时间或空间的前后有关联时要考虑到CRF。

-----------------------------------------------------------------------------------------------

  log-linear模型的输入是一系列几乎接近自然语言的特征方程,这种抽象的东西拿来做语义识别自然是再好不过了。语义识别有一个重要的步骤,叫做 ”给句子贴标签“,简而言之,就是给定一个句子,通过识别其中一些特征:比如存在人名,地名,日期,商品名称,从而判断这个句子的属性(做交易,下任务,更改设置等。) 能够准确的识别句子中的这些 tag 可以有助于理解一个句子。但是要怎样来确定某个单词是不是地名或者人名呢?光靠首字母是否大小写或者和对应的库去匹配显然是不够好的。

  为了更好的完成任务,引入上下文成了一个有意义的手段。对自然语言或者大部分信号而言,在某信号之前的上个信号有着重要的意义(比如我使用了重要的,那么下个词多半是名词)。所以构建了以相邻信号作为特征方程的模型,成为条件随机场。

  普通的log-linear模型长这样:

  如果把上下文考虑进特征方程,那么它的特征方程大概长这样:

  (x-) 代表整个句子,(y-)代表标签序列。一个n个词(x的长度)的句子显然有m个标签(tag的容量)。因为句子的长度一般都不同,但“标签”的集合却可以是相同的(词性总归就那么几个),所以,我们需要恒定数目的特征方程(一般情况下特征方程的数目是m*n).

  故考虑设计了上述形式的子特征方程,以 y_i-1 (这表示某标签序列的第i-1个标签)以及第i个标签形成的子特征方程遍历整个句子。最后将子特征方程遍历的结果求和,作为总特征方程的返回值。子特征方程可以是以下形式(如果符合则返回1,否则返回0)

  f1.前面为名词,则后面一个词开头为M

  f2.前面为副词,则后面一个词是形容词

  f3.前面为形容词,则后面一个词以y结尾

  显然对于一般情况下的句子而言,上述子特征方程求和后会给 F_j 一个比较大的值(因为符合语法规则)。注意每个 f_ 里都只能有两个词性。当我们有很多这样的规则时,正确的规则(名次后面接动词)会被训练成较高的权重,而错误的规则则会被赋予较低的权重,最后得到的词性序列会有较高的正确性。

CRF 模型的数学分析

  拿到CRF模型后,我们要想办法能够通过训练得到 一组合适的参数w_j,以实现分类器的构造。但是在拿到参数之前,还是需要做些准备工作,比如:获得各阶导数的表达式。ok,由于我们引入了 子特征方程 f_ 并且 F_与f_ 存在求和关系,所以这里的算法会比较复杂。

  整体的表达式长这样:

  如果把 f_j 带入,表达式长这样:

  (外围部分被忽略了)

  最终目标也就变成了:

  这里做了一个乘法结合律,把wj和fj放在了一起,总结成了一个g函数。是不是   “一个”   g函数呢?这倒是不一定。。。。。。。

  对于任意一个 i ,gi 都是不同的方程。和 gi 有关的参数是两个,这两个参数都是tag。那么假设 tag的集合里有m个元素,则gi的总个数是 m^2(所有的tag组合都要遍历)。也就是说,对长度为n的一个句子,都要算 n*m^2 次(此处可能有误)。。。。

  计算次数这么多显然有点问题。故考虑设计一种递归的算法,来减小计算的规模。这里不详细讲述。

模型迭代所使用的梯度

  要对 log-linear 模型进行标定,当然是要想办法使模型参数最符合训练集合了。最符合训练集合的意思就是要想办法使得在某组参数下,训练集发生的概率达到最大。不妨对概率取对数,使得式子线性化。

  ok,到此为止,已经求出了各个参数导数的表达形式,F_j(x,y)是很容易求的,对任意训练集这都是已知的。而后面的E求起来却比较麻烦,它需要把所有可行的标签带入Fj中,并且乘以p(这里p也好求,给定wj,p就是已知的)但是这样子梯度的计算量就非常大。相当于每一次迭代都需要对 标签集 进行遍历,计算量很大,不过机智的计算机科学家设计了算法通过预测p的分布,来描述E。具体的算法不再赘述,总之,条件随机场模型是一种可考虑多因素,对物体进行多标签分类的模型。其训练过程需要有监督学习,对机器人视觉来说,有监督学习并不是一件简单的事情。物体的外形也很难和物体的标签联系起来(圆的是杯子还是茶叶罐?)所以条件随机场对计算机视觉会更有效,基于纹理颜色形状等信息的二维图像更适合去探究其意义。

====================================================================================

【机器学习】条件随机场CRF算法 梳理相关推荐

  1. 【机器学习基础】一文读懂用于序列标注的条件随机场(CRF)模型

    模型前的铺垫 我们先引入一个假设,假设一个句子的产生只需要两步: 第一步:基于语法产生一个合乎文法的词性序列 第二步:对第一步产生的序列中的每个词性找到符合这个词性的一个词汇,从而产生一个词汇序列,便 ...

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

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

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

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

  4. 条件随机场(CRF)相对于HMM,MEMM的优势

    条件随机场(CRF)相对于HMM,MEMM的优势 首先,CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注的建模,像词性标注,True casing.但隐马模型一个最大的缺点就是 ...

  5. 简明条件随机场CRF介绍 | 附带纯Keras实现

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 笔者去年曾写过文章<果壳中的条件随机场(CRF In A Nutshell)>[1], ...

  6. 条件随机场(CRF)相关理论知识

    文章目录 无向概率图模型 条件随机场 CRF 实例 线性链条件随机场的简化形式 线性链条件随机场的矩阵形式 linear-CRF的三个基本问题 1,概率计算问题 前向后向概率概述 前向后向概率计算 l ...

  7. 长文详解基于并行计算的条件随机场CRF

    六月 北京 | 高性能计算之GPU CUDA培训 6月22-24日三天密集式学习  快速带你入门阅读全文> 正文共3974个字,29张图,预计阅读时间18分钟. 之前写过CRF的详解,只是为了让 ...

  8. python期望输出隐藏_【归纳综述】马尔可夫、隐马尔可夫 HMM 、条件随机场 CRF 全解析及其python实现...

    PR Structured Ⅲ:马尔可夫.隐马尔可夫 HMM .条件随机场 CRF 全解析及其python实现 Content 归纳性长文,不断更新中...欢迎关注收藏 本章承接概率图知识 马尔可夫不 ...

  9. 条件随机场CRF的理解

    1.个人理解和总结 对比HMM的状态转移概率矩阵和发射概率矩阵CRF有自己的定义在边上的特征函数(相当于转移概率)和定义在节点上的特征函数(相当月发射概率) 序列标注HMM可以根据转移概率矩阵和发射概 ...

最新文章

  1. Flask-模板渲染
  2. 【学术相关】你在读博士期间明白的最深刻的道理是什么?
  3. spring mvc(注解)上传文件的简单例子
  4. PHP中迭代器是什么?
  5. Spring Annotations我从没有机会使用第2部分:@ConfigurationProperties
  6. 浅谈mpvue项目目录和文件结构
  7. 爬虫 动态生成useragent的功能 fake-useragent库
  8. SMPP协议,CMPP协议是啥子
  9. ubuntn 常用命令和快捷键汇总
  10. Aimo:盘姬工具箱CruiserEXP forWin.
  11. python下载和pycharm下载
  12. [Irving]Sql Server 日期、时间、比较
  13. 硬盘维修彻底揭密 新手必读
  14. Mariadb-my.cnf文件详解
  15. IdentityServer4总结
  16. 双11秒杀场景设计,一看就懂!
  17. Python人工智能完整学习路线,让你惊艳到爆
  18. 我爱计算机的作文500,我爱电脑四年级优秀作文
  19. 源来Intel——开放原子全球峰会
  20. 热点项目|近期Github热门项目Top5

热门文章

  1. 《小说朗读器》采集功能升级
  2. 如何在gambit中简化带隔板的模型(转载)
  3. 如何开发一个游戏工作室?
  4. object of abstract class type “...“is not allowed
  5. 某MDU产品OMCI软件升级加速方案
  6. python2输出中文乱码各种办法都不行_Python中文全攻略 中文乱码 输出中文乱码
  7. L2-1 拯救007(升级版)
  8. 使用javaScript计算中文字符串长度
  9. 华为桌面云虚拟机安装Windows 11体验
  10. 常用的性能测试工具介绍:LoadRunner和JMeter