一、条件随机场是什么?

什么是条件随机场?我们先从它的命名开始说起,为什么是条件随机场这么奇怪的名字,为什么不叫飞机场、火葬场?通常数学上的命名是简单而直白的,大家听我一一解释。

条件

“条件”指的是:输出的结果是依照条件概率分布 P(Y|X) 来计算的 ,其中,

  • X = (X1, X2, ..., Xn) 是输入的观测序列,也就是词序列
  • Y = (Y1, Y2, ..., Yn) 是输出的标注序列,也就是标注结果

随机场

若干位置按照某种分布赋予一个,其全体就叫随机场。

又出现新的问题了,若干位置、某种分布是什么?请看下面的例子。

举个例子

假设我们已经通过 CRF 标注好了这样一句话。

词序列
标注结果 O O B-LOC I-LOC B-LOC I-LOC I-LOC

那么

  • 输入词序列就是:(我, 爱, 北, 京, 天, 安, 门)

  • 输出标注结果为:(O, O, B-LOC, I-LOC, B-LOC, I-LOC, I-LOC)

  • 输入输出经过某个分布 P(Y|X),线性链条件随机场(Linear-CRF)公式如下

二、条件随机场作用

从上面那个例子,我们可以了解到,条件随机场的在 NLP 领域的作用就是:标注(或者,命名实体识别)

从公式中我们可以看到,当前的标注结果 y,还会参考上一个标注的结果 y_i-1。也就是说,CRF 在标记数据的时候,会考虑前一个数据的标记信息,这对于解析句子语法结构来说是得天独厚的优势(例如:动词后面不能跟动词)。而这一点,是普通的分类器难以做到的。

三、线性链条件随机场的“进化”过程

前面突然出现一个线性链条件随机场,前人是怎么一步步改进得到的呢?

3.1 随机场->马尔可夫随机场

首先,我们来看看什么是随机场。“随机场”的名字取的很玄乎,其实理解起来不难。随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。还是举词性标注的例子:假如有一个十个词形成的句子需要做词性标注。这十个词每个词的词性可以在已知的词性集合(名词,动词…)中去选择。当我们为每个词选择完词性后,这就形成了一个随机场。

了解了随机场,我们再来看看马尔科夫随机场。马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它相邻的位置的赋值有关,和与其不相邻的位置的赋值无关。继续举十个词的句子词性标注的例子: 如果我们假设所有词的词性只和它相邻的词的词性有关时,这个随机场就特化成一个马尔科夫随机场。比如第三个词的词性除了与自己本身的位置有关外,只与第二个词和第四个词的词性有关。通常一个概率无向图模型,又称为马尔可夫随机场。

3.2 马尔可夫随机场->条件随机场

CRF 是马尔可夫随机场的特例,它假设马尔科夫随机场中只有 XY 两种变量, X 一般是给定的,而Y 一般是在给定 X 的条件下的输出。这样马尔科夫随机场就特化成了条件随机场。在我们十个词的句子词性标注的例子中,X是词,Y是词性。因此,如果我们假设它是一个马尔科夫随机场,那么它也就是一个 CRF。

对于 CRF,给出准确的数学语言描述:设 X 与 Y 是随机变量,P(Y|X) 是给定 X 时 Y 的条件概率分布,若随机变量 Y 构成的是一个马尔科夫随机场,则称条件概率分布 P(Y|X) 是条件随机场。

3.3 条件随机场->线性链条件随机场

注意在 CRF 的定义中,我们并没有要求 X 和 Y 有相同的结构。

而实现中,我们一般都假设X和Y有相同的结构,即:

X和Y有相同的结构的CRF就构成了线性链条件随机场(Linear chain Conditional Random Fields,简称 Linear-CRF)

3.4 对比

描述
随机场 随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场
马尔科夫随机场 马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它之前的位置的值有关,和与其不相邻的位置的赋值无关
条件随机场 CRF 是马尔科夫随机场的特例,它假设马尔科夫随机场中只有 X 和 Y 两种变量,X 一般是给定的,而 Y 一般是在给定X的条件下的输出
线性链条件随机场 X 和 Y 有相同的结构的 CRF 就构成了线性链条件随机场

学有余力的同学,想要挑战自己,可以看看下面链接1里的公式哈。

参考链接1:条件随机场CRF(一)从随机场到线性链条件随机场-博客园-刘建平Pinard
参考链接2:CRF条件随机场的原理、例子、公式推导和应用-知乎刘启林

简单理解条件随机场CRF相关推荐

  1. 条件随机场 python_如何直观地理解条件随机场,并通过PyTorch简单地实现

    条件随机场是一种无向图模型,且相对于深度网络有非常多的优势,因此现在很多研究者结合条件随机场(CRF)与深度网络获得更鲁棒和可解释的模型.本文结合 PyTorch 从基本的概率定义到模型实现直观地介绍 ...

  2. 如何轻松愉快的理解条件随机场(CRF)

    转载自  如何轻松愉快的理解条件随机场(CRF) 如何轻松愉快的理解条件随机场(CRF)? 理解条件随机场最好的办法就是用一个现实的例子来说明它. 但是目前中文的条件随机场文章鲜有这样干的,可能写文章 ...

  3. 轻松理解条件随机场(CRF)

    理解条件随机场最好的办法就是用一个现实的例子来说明它.但是目前中文的条件随机场文章鲜有这样干的,可能写文章的人都是大牛,不屑于举例子吧.于是乎,我翻译了这篇文章.希望对其他伙伴有所帮助. 原文在这里[ ...

  4. 条件随机场CRF的理解

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

  5. 如何轻松愉快地理解条件随机场(CRF)?

    转自:http://www.jianshu.com/p/55755fc649b1 理解条件随机场最好的办法就是用一个现实的例子来说明它.但是目前中文的条件随机场文章鲜有这样干的,可能写文章的人都是大牛 ...

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

    20210517 http://www.tensorinfinity.com/paper_170.html 上一节我们介绍了CRF的背景,本节开始进入CRF的正式的定义,简单来说条件随机场就是定义在隐 ...

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

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

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

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

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

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

最新文章

  1. c#用正则表达式获得指定开始和结束字符串中间的一段文本
  2. C++类的信息隐藏机制
  3. 一些在数字化转型的方面的公司和例子
  4. CRM_UI start port determination how is port number 44356 determined
  5. java射击游戏_Java Swing打猎射击游戏源码
  6. linux执行windows创建的脚本,如何在Windows 10上创建和运行Bash Shell脚本 | MOS86
  7. 动态规划(五)——0/1背包
  8. http://127.0.0.1/thinkphp5/public/index/teacher/delete/id/1.html 这样的URL下,页面收不到get参数...
  9. 光滑噪声数据常用的方法_数据挖掘部分课后习题
  10. 《信息化项目文档模板一——项目需求说明书》
  11. 基于灰狼优化算法的线性规划问题求解matlab程序
  12. cvte软件测试在线测评,CVTE笔试题总结归纳
  13. HBuilderX云打包提示cli版本和服务器的cli版本不一致
  14. ShadowGun 飘动的旗帜
  15. 如何裁剪PDF文件的页面大小
  16. c语言牛顿法求整数平方根,牛顿法求平方根-编程练习
  17. java 音频波形图_java读取wav文件(波形文件)并绘制波形图的方法
  18. 微信公众号授权,支付,退款总结【shoucang】
  19. 家庭花卉养殖技巧及技术收集
  20. 完美黑苹果-蓝牙wifi-os10.15

热门文章

  1. linux 地址寄存器地址,petalinux的app中直接访问AXI UART等寄存器地址
  2. python garch模型 forecast_python - 使用GARCH模型进行滚动预测 - 堆栈内存溢出
  3. matlab卷积码记忆长度,用matlab中simulink仿真卷积码参数设置
  4. 32位linux安装64位工具链,在64位系统(GNU工具链)上组装32位二进制文件
  5. jmeter吞吐量图形显示_Jmeter的吞吐量很低
  6. 【君思智慧园区】如何打造产业社区?产业社区的打造思路有哪些?
  7. java 爬虫学习 httpclient使用
  8. NOAUTH Authentication required
  9. WVD: Wigner-Ville Distibution
  10. SQLServer2012 附加数据库时出错