转自:原文链接

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

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

什么是判别分类器

机器学习模型有两个常见的分类,生成式和判别式。条件随机场是一种判别分类器,因此,它们对不同类之间的决策边界进行建模. 另一方面,生成模型对数据的生成方式进行建模,在学习之后,可用于进行分类任务。举个简单的例子,朴素贝叶斯是一种非常简单且流行的概率分类器,是一种生成算法,而逻辑回归是一种基于最大似然估计的分类器,是一种判别模型。让我们看看如何使用这些模型来计算标签预测:
朴素贝叶斯分类器基于贝叶斯公式:
p(y∣x)=p(y)p(x∣y)p(x)p(y|x)=\frac{p(y)p(x|y)}{p(x)}p(y∣x)=p(x)p(y)p(x∣y)​
换成分类任务的表达式:
p(类别∣特征)=p(特征∣类别)p(类别)p(特征)p(类别|特征)=\frac{p(特征|类别)p(类别)}{p(特征)}p(类别∣特征)=p(特征)p(特征∣类别)p(类别)​
通常特征XXX会包含很多元素xix_ixi​,类别YYY也会包含很多类别yky_kyk​,所以
p(特征∣类别)→p(X∣Y=yk)p(特征|类别)\rightarrow p(X|Y=y_k)p(特征∣类别)→p(X∣Y=yk​)
然后我们假设所有特征之间都是相互独立的,因此公式可以转换为:
p(X∣Y=yk)=∏inp(X=xi∣Y=yk)p(X)=p(x1x2…xn)p(X|Y=y_k) = \prod_i^np(X=x_i|Y=y_k)\\ p(X)=p(x_1x_2\dots x_n)p(X∣Y=yk​)=i∏n​p(X=xi​∣Y=yk​)p(X)=p(x1​x2​…xn​)
比如,我们想求 p(皮薄,红,脆,水分多∣苹果甜)p(皮薄,红,脆,水分多 | 苹果甜)p(皮薄,红,脆,水分多∣苹果甜),则可以通过p(皮薄∣苹果甜)∗p(红∣苹果甜)∗p(脆∣苹果甜)∗p(水分多∣苹果甜)p(皮薄 | 苹果甜)*p(红 | 苹果甜)*p(脆 | 苹果甜)*p(水分多 | 苹果甜)p(皮薄∣苹果甜)∗p(红∣苹果甜)∗p(脆∣苹果甜)∗p(水分多∣苹果甜)得到。
带入到 p(类别∣特征)p(类别|特征)p(类别∣特征)可以得到:
p(Y=yk∣X)=p(Y=yk)∏inp(X=xi∣Y=yk)p(x1x2…xn)p(Y=y_k|X) = \frac{p(Y=y_k) \prod_i^np(X=x_i|Y=y_k)}{p(x_1x_2\dots x_n)}p(Y=yk​∣X)=p(x1​x2​…xn​)p(Y=yk​)∏in​p(X=xi​∣Y=yk​)​
由于分母是常数,所以可以直接省略,因为朴素贝叶斯分类器的目的是为了找到使p(Y=yk∣X)p(Y=y_k|X)p(Y=yk​∣X)最大的yky_kyk​。
p(yk∣X)≈p(yk)∏inp(xi∣yk)p(y_k|X) \approx p(y_k) \prod_i^np(x_i|y_k)p(yk​∣X)≈p(yk​)i∏n​p(xi​∣yk​)
所以朴素贝叶斯分类器的公式如下:
y^k=argmaxykp(yk)∏inp(xi∣yk)\hat y_k = argmax_{y_k}p(y_k)\prod_i^np(x_i|y_k)y^​k​=argmaxyk​​p(yk​)i∏n​p(xi​∣yk​)

逻辑回归分类器是基于Logistic函数的,已知如下:
f(x)=11+e−x=ex1+exf(x) = \frac{1}{1+e^{-x}} = \frac{e^x}{1+e^x}f(x)=1+e−x1​=1+exex​
上述也是逻辑分布在μ=0,γ=1μ=0, γ=1μ=0,γ=1的分布函数。回想一下朴素贝叶斯是通过贝叶斯公式从p(X∣yk)p(X|y_k)p(X∣yk​)推出的p(yk∣X)p(y_k|X)p(yk​∣X),然而我们可以利用逻辑回归直接建模p(yk∣X)p(y_k|X)p(yk​∣X),同时也避免了线性回归的输出不在0-1之间(通过对线性输出进行对数odds)。
为了学习逻辑回归中两个类之间的决策边界,分类器学习与每个数据点相关的权重(θ值),写法如下:
二元分类时,p(yk∣X;θ)=11+exp(−(θ0+∑f=1Fθfxf))=11+exp(θTX)多元分类时,使用softmax:p(yk∣X;θ)=exp(θcTX)∑fexp(θfTX)二元分类时,p(y_k|X;\theta) = \frac{1}{1+exp(-(\theta_0+\sum_{f=1}^F\theta_fx_f))}=\frac{1}{1+exp(\theta^TX)} \\ 多元分类时,使用softmax:p(y_k|X;\theta) = \frac{exp(\theta_c^TX)}{\sum_fexp(\theta^T_fX)}二元分类时,p(yk​∣X;θ)=1+exp(−(θ0​+∑f=1F​θf​xf​))1​=1+exp(θTX)1​多元分类时,使用softmax:p(yk​∣X;θ)=∑f​exp(θfT​X)exp(θcT​X)​
此时我们最后得到的分类yky_kyk​也是通过寻找最大概率得到的。
y^=argmaxykp(yk∣X)\hat y = argmax_{y_k}p(y_k|X)y^​=argmaxyk​​p(yk​∣X)
如果把 p(yk∣X)p(y_k|X)p(yk​∣X)又通过贝叶斯转换得到p(X∣yk)p(yk)p(X|y_k)p(y_k)p(X∣yk​)p(yk​),就又得到了先前的朴素贝叶斯生成分类器。然而p(X∣yk)p(yk)p(X|y_k)p(y_k)p(X∣yk​)p(yk​)又等于p(X∣yk)p(X|y_k)p(X∣yk​),即X,ykX,y_kX,yk​的联合分布。这一观察结果支持了生成分类器的早期定义。通过对类之间的联合概率分布进行建模,在给定标签 Y 和联合概率分布的情况下,生成模型可用于获取和“生成”输入点 X。类似地,判别模型通过学习条件概率分布,学习了分隔数据点的决策边界。因此,给定一个输入点,它可以使用条件概率分布来计算它的类别。

这些定义如何应用于条件随机场(Conditional Random Field, CRF)?条件随机场是一种判别模型,其基本原理是将逻辑回归应用于序列输入。如果熟悉隐马尔可夫模型(HMM),就会发现它们与 CRF 有一些相似之处,其中之一是它们也用于序列输入。HMM 使用状态转移矩阵和输入向量来学习发射(观测)矩阵,并且在概念上类似于朴素贝叶斯。HMM 是一种生成模型。

条件随机场的数学概述

讨论了上述定义后,我们现在将讨论条件随机场,以及如何使用它们来学习序列数据。
正如我们在上一节中所展示的,我们对条件分布建模如下:
y^=argmaxyp(y∣x)\hat y = argmax_{y}p(y|x)y^​=argmaxy​p(y∣x)
在 CRF 中,我们的输入数据是连续的,在对数据点进行预测时,我们必须考虑先前的上下文。为了建模这种行为,我们将使用特征函数,它有多个输入值,它们将是:

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

我们将特征函数定义为:
f(X,i,li−1,li)f(X,i,l_{i-1},l_i)f(X,i,li−1​,li​)
特征函数的目的是表达数据点所代表的序列的某种特征。例如,如果我们使用 CRF 进行词性标注,那么:
如果 li−1l_{i - 1}li−1​ 是名词,lil_{i}li​ 是动词,那我们认为f(X,i,li−1,li)=1f (X, i, l_{i - 1}, l_{i} ) = 1f(X,i,li−1​,li​)=1,也可以理解为这种顺序是合理的。否则为 0 。
类似地,如果 li−1l_{i - 1}li−1​ 是动词且lil_{i}li​是副词,则f(X,i,li−1,li)=1f (X, i, l_{i - 1}, l_{i} ) = 1f(X,i,li−1​,li​)=1 。否则为 0 。

每个特征函数都基于前一个词和当前词的标签,并且是 0 或 1。为了构建条件字段,我们接下来为每个特征函数分配一组权重(λ值),公式如下(回想一下逻辑回归,记得CRF基本原理是将逻辑回归应用于序列输入):
P(y∣X,λ)=1Z(X)exp∑i=1n∑jλjfi(X,i,yi−1,yi)其中:Z(X)=∑y′∈y∑i=1n∑jλjfi(X,i,yi−1′,yi′)P(y | X,\lambda) = \frac{1}{Z(X)}exp{\sum_{i=1}^n\sum_j\lambda_jf_i(X,i,y_{i-1},y_i)}\\ 其中:Z(X)=\sum_{y'\in y}\sum^n_{i=1}\sum_j \lambda_jf_i(X,i,y'_{i-1},y'_i)P(y∣X,λ)=Z(X)1​expi=1∑n​j∑​λj​fi​(X,i,yi−1​,yi​)其中:Z(X)=y′∈y∑​i=1∑n​j∑​λj​fi​(X,i,yi−1′​,yi′​)
为了估计参数 (λ),我们将使用最大似然估计。我们首先取分布的负对数(softmax通常和它搭配),以使偏导数更易于计算:

为了在负对数函数上应用最大似然,我们将采用argmin(因为最小化负数将产生最大值)。为了找到最小值,我们可以对 lambda 进行偏导,并得到:

我们使用偏导作为梯度下降的一个步骤。梯度下降迭代地更新参数值,步长很小,直到值收敛。我们最终的 CRF 梯度下降更新方程是:


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

CRF 与隐马尔可夫模型有何不同

从前面的部分可以看出,条件随机场与隐马尔可夫模型有何不同。尽管两者都用于对顺序数据进行建模,但它们是不同的算法。

隐马尔可夫模型是生成的,并通过对联合概率分布建模来给出输出。另一方面,条件随机场具有判别性,并对条件概率分布进行建模。CRF 不依赖独立性假设(标签相互独立),并避免标签偏差。一种看待它的方法是,隐马尔可夫模型是条件随机场的一种非常特殊的情况,而是使用恒定的转移概率。HMMs 基于朴素贝叶斯,我们说它可以从逻辑回归中推导出来,而 CRF 就是从其中推导出来的。

CRF的应用

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

条件随机场(CRF)概述相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. 条件随机场CRF的理解

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

最新文章

  1. PowerShell的开源实现
  2. 牛客华为机试第4题python
  3. go panic recover 异常处理
  4. python断点续传下载_Python版本,图片,视频断点续传下载
  5. 1.4 获取字符串长度(length())
  6. 云炬金融每日一题20211010
  7. msb Lesson00_Object_Class.scala
  8. 山东大学 2020级数据库系统 实验三
  9. SAP License:SAP FI/CO 基本概念
  10. ANDROID开发java.lang.NoClassDefFoundError: com.baidu.location.LocationClient的解决办法
  11. L1-047 装睡 (10 分)—团体程序设计天梯赛
  12. linux的系统监视器图片_Linux中一个高效的资源监控器Bpytop
  13. 卷积神经网络学习路线(十一)| Stochastic Depth(随机深度网络)
  14. 邮件群发软件使用攻略
  15. 华为太极magisk安装教程_【玩机必会技能】小米手机通用刷TWRP RECOVERY|ROOT|刷第三方ROM教程...
  16. tar -zxvf是什么意思
  17. 计算机数制与转换教案,《数制转换》教案
  18. 逆袭增长1300万播放,UP主仅靠20万粉登顶B站!
  19. 华为语音解锁设置_华为手机该怎么实现语音翻译?其实超级简单,这里教你
  20. android 深度自定义View

热门文章

  1. 数列的极限与函数的极限
  2. 计算机网络新手实操,嗜血印新手操作入门指南 游戏基础玩法攻略介绍
  3. Typora 更改编辑器、源代码模式的宽度、块代码的颜色
  4. mmrotate自定义数据集安装部署训练测试
  5. 数码相机或智能手机的SD卡数据格式化后如何恢复
  6. 51nod 1289 大鱼吃小鱼
  7. 3D建模师做多了女人会不会找不到老婆?次世代美少女战士建模流程讲解
  8. anyrtc到底是做什么的?
  9. GNU开发工具——SVN简介
  10. 适合Vue用户的React教程,你值得拥有