作者:Ravish Chawla
编译:ronghuaiyang

导读

一个简单明了的对条件随机场的说明,给大家一个非常直观的印象,CRF到底是个什么东西,能干什么用。

条件随机场是一种用于序列预测的判别模型。它们使用来自以前标签的上下文信息,从而增加了模型做出良好预测的信息量。在这篇文章中,我将讨论一些介绍CRFs的主题。先给大家过一遍:

  1. 什么是判别分类器(以及它们与生成分类器的比较)
  2. 条件随机场的数学概述
  3. 条件随机场与隐马尔可夫模型有何不同
  4. 条件随机场的应用

什么是判别分类器

机器学习模型有两种常见的类别:生成模型和判别模型。条件随机场是一种判别分类器,它对不同类别之间的决策边界进行建模。另一方面,生成模型是对数据如何生成进行建模,这些模型在学习之后可以用来进行分类。举个简单的例子,朴素贝叶斯是一种非常简单和流行的概率分类器,是一种生成模型,而逻辑回归是一种基于最大似然估计的分类器,是一种判别模型。让我们看看这些模型如何用来计算标签预测:

朴素贝叶斯分类器是基于朴素贝叶斯算法的分类器,它的描述如下:

朴素贝叶斯算法

我们可以把分类器做出的预测表示为一个条件概率,我们使用朴素贝叶斯算法进行分解:

朴素贝叶斯算法的推导

Logistic回归分类器是基于Logistic函数,即:

Logistic函数

为了在Logistic回归中学习两个类之间的决策边界,分类器学习与每个数据点相关的权值(Theta值),表示为:

Logistic回归分类器的推导

利用Logistic回归分类器,我们可以看到我们在最大化条件概率,利用贝叶斯规则,我们可以得到朴素贝叶斯分类器所使用的生成分类器。

将P(y | x)代入贝叶斯方程:

把贝叶斯法则用到Logistic回归分类器中

把它等价于先验和似然性的乘积,因为在argmax中,分母P(x)不提供任何信息。

该结果是较早得到的朴素贝叶斯算法生成分类器。

我们进一步可以看到P(x | y) * P(y)等于P(x, y),这是x和y的联合分布,这一观察结果支持了生成模型的早期定义。通过对类与类之间的联合概率分布建模,生成模型可以得到给定标签Y和联合概率分布并“生成”输入点X。同样,判别模型通过学习条件概率分布,学习了数据点之间的决策边界。所以,给定一个输入点,它可以使用条件概率分布来计算它的类。

这些定义如何应用于条件随机场?条件随机场是一种判别模型,其基本原理是对序列输入应用逻辑回归。如果你熟悉隐马尔可夫模型,你会发现它们与CRFs有一些相似之处,其中之一是它们也用于序列输入。HMMs利用过渡矩阵和输入向量来学习发射矩阵,在概念上与朴素贝叶斯相似。HMMs是一个生成模型。

条件随机场的数学介绍

在讨论了上述定义之后,我们现在将讨论条件随机场,以及如何使用它们来学习序列数据。

如前一节所示,我们对条件分布建模如下:

条件分布

在CRFs中,我们的输入数据是顺序的,在对数据点进行预测时,必须考虑前面的上下文。为了对这种行为进行建模,我们将使用特征函数,它将有多个输入值,为:

  1. 输入向量集合X
  2. 我们预测的数据点的位置i
  3. X中数据点i-1的标签
  4. X中数据点i的标签

我们将特征函数定义为:

特征函数

特征函数的目的是表示数据点所表示的序列的某种特征。例如,如果我们将CRFs用于词性标注,则:

f (X, i, L{i - 1}, L{i} ) = 1 如果 L{i - 1}是名词并且 L{i} 是动词. 0 其他。

同样, f (X, i, L{i - 1}, L{i} ) = 1 如果 L{i - 1} 是动词并且 L{i} 是副词. 0 其他。

每个特征函数都基于前一个单词和当前单词的标签,并且要么是0,要么是1。为了构建条件场,我们接下来为每个特征函数分配一组权重(lambda值),算法将学习这些权重:

条件随机场的概率分布

为了估计参数(lambda),我们使用最大似然估计。为了应用该技术,我们首先对分布取负对数,使偏导数更容易计算:

条件随机分布的负对数似然

要对负对数函数应用最大似然,我们将使用argmin(因为最小化负函数将产生最大似然性)。为了求最小值,我们可以求导,得到:

对lamda求偏导

我们把求偏导数作为梯度下降的一个步骤。梯度下降迭代更新参数值,每次一小步,直到值收敛。CRF的最终梯度下降更新方程为:

CRF的梯度下降更新方程

总结一下,我们使用条件随机场,首先定义所需的特征函数,初始化随机值的权重,然后迭代地应用梯度下降,直到参数值(在本例中是lambda)收敛。我们可以看到CRFs类似于Logistic回归,因为它们使用条件概率分布,但是我们通过将特征函数作为序列输入来扩展算法。

CRFs和HMM有什么不同?

从前面几节中,条件随机场与隐马尔可夫模型的区别是显而易见的。虽然这两种方法都用于对顺序数据建模,但它们是不同的算法。

隐马尔可夫模型具有生成性,通过对联合概率分布建模给出了输出。另一方面,条件随机场具有判别性,并对条件概率分布进行了建模。CRFs不依赖于独立假设(即标签彼此独立),并且避免了标签偏差。一种理解它的方法是隐马尔可夫模型是条件随机场的一个非常特殊的例子,转移概率使用了常数。HMMs基于朴素贝叶斯,我们说它可以从逻辑回归得到,CRFs就是从逻辑回归得到的。

条件随机场的应用

由于CRFs具有对顺序数据建模的能力,因此通常会在自然语言处理中使用CRFs,并且在该领域有许多应用。我们讨论的其中一个应用是词性标记。句子的词性依靠以前的单词,并利用特征函数,利用这一点,我们可以学习如何区分句子中的哪个单词对应哪个POS。另一个类似的应用是命名实体识别,或从句子中提取专有名词。条件随机场可以用来预测任意序列中多个变量相互依赖的情况。其他应用包括图像中的局部区域识别和基因预测。

英文原文:https://medium.com/ml2vec/overview-of-conditional-random-fields-68a2a20fa541

请长按或扫描二维码关注本公众号

全连接条件随机场_条件随机场CRF简介相关推荐

  1. 全连接层 时间复杂度_神经网络全连接层(3)

    CNN网络基础结构 神经网络-全连接层(3) 上一回我们聊完了算法,这回我们正式开始写代码.上回在做公式推导的时候,我们实际上只是针对一个数据样本进行推导,而实际中,计算和训练都是一批一批完成的.大多 ...

  2. mysql查询条件格式_条件格式

    在前两篇:.NET Core部署到linux(CentOS)最全解决方案,常规篇与.NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)我们对.ne ...

  3. 【CV】DeepLab:使用DCNN、空洞卷积和全连接条件随机场的图像语义分割网络

    论文名称:DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Full ...

  4. 全连接条件随机场_CRF条件随机场

    概念   条件随机场(Conditional Random Fields, 以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型,在自然语言处理中得到了广泛应用. 引入   假设我 ...

  5. 使用左 右 全 内连接及使用where条件语句的区别

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 使用左. ...

  6. MySQL数据库基础(多表关联查询、内外全连接、复合条件查询、子查询)

    文章目录 一.笛卡尔积查询 二.内.外.全连接查询 三.复合条件查询 四.子查询 五.EXIST判断 本篇文章主要介绍MySQL里的多表关联查询,其中包括了笛卡尔积查询.内连接查询.外连接查询.全连接 ...

  7. mysql创建全外连接的视图_「MySql学习」Mysql学习系列之常用数据库查询语句

    一.简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等.10.5pt;font-family:"A ...

  8. fastreport.net 交叉表居中显示_浅析Sql中内连接、外连接、全连接、交叉连接的区别...

    外连接(out join) 外连接分为外左连接(left outer join)和外右连接(right outer join) 注释:left outer join 与 left join 等价, 一 ...

  9. mysql外连接插座_深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接...

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和 ...

最新文章

  1. python 申请内存空间、用于创建多维数组_python 申请内存空间,用于创建多维数组的实例...
  2. ICCV 2019:谷歌获最佳论文!中国入选论文最多,中科院、清华领跑
  3. ​GNN教程:Weisfeiler-Leman算法!
  4. 蓝色版苹果iPhone 12开箱上手视频流出;谷歌回应司法部反垄断诉讼:存在严重漏洞;​Git 2.29 稳定版发布|极客头条
  5. 大数高精加减乘除(洛谷P1601、P2142、P1303、P1480题题解,Java语言描述)
  6. MongoDB查询某个字段存在的语句
  7. 支付宝上线AR扫识别垃圾功能,十大“拎不清”垃圾令小姐姐捂脸
  8. 64位双系统Ubuntu 14.04 LTS + Caffe + CUDA 7.5 + Opencv 3.0 安装配置实战
  9. python web开发中跨域问题的解决思路
  10. iOS【面试】2018年面试题集锦
  11. 【matlab】解决每次打开.m文件都会弹出新窗口
  12. 在BizTalk Server 2006 R2 中调用 WCF Services – Part 3
  13. iPhone的mysql客户端_苹果系统Sequel Pro—MySQL客户端工具一个大坑
  14. linux下最全的快捷键大全
  15. 分享一个简单唯美的404页
  16. 收藏!从十篇顶会论文解读计算机视觉的未来之路!
  17. 记一次磁盘PV丢失事件
  18. linux 定时任务 非root,linux下的计划任务——只执行一次的定时任务,
  19. php处理抢购类功能的高并发请求,php处理抢购类
  20. 《痞子衡嵌入式半月刊》 第 70 期

热门文章

  1. hystrix 全局熔断_跟我学Spring Cloud(Finchley版)14Feign使用Hystrix
  2. cgi web 调用多次启动_全面了解CGI、FastCGI、PHPFPM
  3. java编写一个集合类_Java集合类
  4. python3.0下载用什么浏览器_无法让Python下载网页源代码:“不支持浏览器版本”...
  5. java mapreduce程序_简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行...
  6. 【递推】Ayoub and Lost Array
  7. Linux查看系统cpu个数、核心书、线程数
  8. 谈谈重载(overload)覆盖(override)与隐藏
  9. js的client、scroll、offset详解与兼容性
  10. python写一段脚本代码自动完成输入(目录下的所有)文件的数据替换(修改数据和替换数据都是输入的)【转】...