条件随机场(CRF)概述

article/2025/11/6 21:24:37

转自:原文链接

条件随机场是一种判别模型,用于预测序列。他们使用来自先前标签的上下文信息,从而增加了模型做出良好预测所需的信息量。在这篇文章中,我将讨论一些将介绍 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(yx)=p(x)p(y)p(xy)
换成分类任务的表达式:
p ( 类 别 ∣ 特 征 ) = p ( 特 征 ∣ 类 别 ) p ( 类 别 ) p ( 特 征 ) p(类别|特征)=\frac{p(特征|类别)p(类别)}{p(特征)} p()=p()p()p()
通常特征 X X X会包含很多元素 x i x_i xi,类别 Y Y Y也会包含很多类别 y k y_k yk,所以
p ( 特 征 ∣ 类 别 ) → p ( X ∣ Y = y k ) p(特征|类别)\rightarrow p(X|Y=y_k) p()p(XY=yk)
然后我们假设所有特征之间都是相互独立的,因此公式可以转换为:
p ( X ∣ Y = y k ) = ∏ i n p ( X = x i ∣ Y = y k ) p ( X ) = p ( x 1 x 2 … x n ) p(X|Y=y_k) = \prod_i^np(X=x_i|Y=y_k)\\ p(X)=p(x_1x_2\dots x_n) p(XY=yk)=inp(X=xiY=yk)p(X)=p(x1x2xn)
比如,我们想求 p ( 皮 薄 , 红 , 脆 , 水 分 多 ∣ 苹 果 甜 ) p(皮薄,红,脆,水分多 | 苹果甜) p(,,,),则可以通过 p ( 皮 薄 ∣ 苹 果 甜 ) ∗ p ( 红 ∣ 苹 果 甜 ) ∗ p ( 脆 ∣ 苹 果 甜 ) ∗ p ( 水 分 多 ∣ 苹 果 甜 ) p(皮薄 | 苹果甜)*p(红 | 苹果甜)*p(脆 | 苹果甜)*p(水分多 | 苹果甜) p()p()p()p()得到。
带入到 p ( 类 别 ∣ 特 征 ) p(类别|特征) p()可以得到:
p ( Y = y k ∣ X ) = p ( Y = y k ) ∏ i n p ( X = x i ∣ Y = y k ) p ( x 1 x 2 … x n ) 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=ykX)=p(x1x2xn)p(Y=yk)inp(X=xiY=yk)
由于分母是常数,所以可以直接省略,因为朴素贝叶斯分类器的目的是为了找到使 p ( Y = y k ∣ X ) p(Y=y_k|X) p(Y=ykX)最大的 y k y_k yk
p ( y k ∣ X ) ≈ p ( y k ) ∏ i n p ( x i ∣ y k ) p(y_k|X) \approx p(y_k) \prod_i^np(x_i|y_k) p(ykX)p(yk)inp(xiyk)
所以朴素贝叶斯分类器的公式如下:
y ^ k = a r g m a x y k p ( y k ) ∏ i n p ( x i ∣ y k ) \hat y_k = argmax_{y_k}p(y_k)\prod_i^np(x_i|y_k) y^k=argmaxykp(yk)inp(xiyk)

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

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

条件随机场的数学概述

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

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

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

每个特征函数都基于前一个词和当前词的标签,并且是 0 或 1。为了构建条件字段,我们接下来为每个特征函数分配一组权重(λ值),公式如下(回想一下逻辑回归,记得CRF基本原理是将逻辑回归应用于序列输入):
P ( y ∣ X , λ ) = 1 Z ( X ) e x p ∑ i = 1 n ∑ j λ j f i ( X , i , y i − 1 , y i ) 其 中 : Z ( X ) = ∑ y ′ ∈ y ∑ i = 1 n ∑ j λ j f i ( X , i , y i − 1 ′ , y i ′ ) 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(yX,λ)=Z(X)1expi=1njλjfi(X,i,yi1,yi)Z(X)=yyi=1njλjfi(X,i,yi1,yi)
为了估计参数 (λ),我们将使用最大似然估计。我们首先取分布的负对数(softmax通常和它搭配),以使偏导数更易于计算:

为了在负对数函数上应用最大似然,我们将采用argmin(因为最小化负数将产生最大值)。为了找到最小值,我们可以对 lambda 进行偏导,并得到:
在这里插入图片描述
我们使用偏导作为梯度下降的一个步骤。梯度下降迭代地更新参数值,步长很小,直到值收敛。我们最终的 CRF 梯度下降更新方程是:

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

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

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

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

CRF的应用

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


http://chatgpt.dhexx.cn/article/YgtpmS9s.shtml

相关文章

条件随机场CRF的理解

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

条件随机场的简单理解

目录 什么是条件随机场 条件随机场长怎么样 如何构建特征函数 前向—后向算法 条件随机场的概率计算问题 条件随机场的预测问题 什么是条件随机场 条件随机场的定义 条件随机场总的来说就是只要满足“条件随机场”这个条件,就可以根据定义的模型去求解我们需…

nlp基础—9.条件随机场模型(CRF算法)

文章目录 引言一、概率无向图模型1. 概率无向图模型的定义2. 概率无向图模型的因子分解 二、条件随机场的定义与形式1. 条件随机场的定义2. 条件随机场的参数化形式3. 条件随机场的简化形式4.条件随机场的矩阵形式 三、条件随机场的三个基本问题1.概率计算问题2. 学习问题3. 预…

条件随机场模型

条件随机场模型(Conditional Random Fields, CRF) 条件随机场是给定一组输入随机变量条件下,另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。线性链条件随机场,是输入序列对输出…

CRF 条件随机场

目录 1. 基本概念 1.1 各种随机场 1.2 CRF模型的训练原理 1.3 条件随机场的参数化形式 1.4条件随机场对应的简化概率表达 2. 例子 定义CRF中的特征函数 从特征函数到概率 CRF与逻辑回归的比较 CRF与HMM的比较 HMM和CRF区别 3. Tensorflow实现 tf.contrib.c…

NLP之条件随机场

条件随机场(conditional random fields, CRFs)由J. Lafferty等人(2001)提出,近几年来在自然语言处理和图像处理等领域中得到了广泛的应用。 CRF是用来标注和划分序列结构数据的概率化结构模型。言下之意,就…

条件随机场CRF

1 条件随机场CRF:从条件随机场到线性链条件随机场 条件随机场(Conditional Random Fields, 以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型,在自然语言处理中得到了广泛应用。 1.1 什么样的问题需要CRF模型 这里举一个简单的…

条件随机场的肤浅理解

条件随机场(Conditional Random Field,CRF)是自然语言处理的基础模型,是一个无向图概率模型。经过长期的发展目前已经广泛应用于词性标注、图像分类等众多场景。 一、基本概念 随机场 : 给定一组随机变量: X { X 1 , X 2 , X …

条件随机场详解

为了更好地理解条件随机场,这里主要以命名实体识别为例子,介绍如何和LSTM结合,进行NER。 首先什么是NER,就是针对一句话的每个词,都标注出它们的词性,比如输入一句"Dog play football"&#xff…

条件随机场(CRF)

目录 1.定义 1.1 图 1.2 概率图模型(PGM) (1)有向图的联合概率: (2)概率无向图模型: 1.3 马尔可夫性 1.4 团与最大团 1.5 概率无向图模型的联合概率分布 1.6 条件随机场 …

条件随机场 (CRF)

背景 CRF和HMM是有相似性的,最后都是使用Verterbi算法来进行最优状态转移序列的确定。CRF主要用于序列标注问题。 本质:通过1D卷机学习近邻信息,然后输入到CRF定义好的计算方式中。 一些实现的库,并不能主观反应出CRF的计算方式&…

条件随机场简介(Conditional Random Fields, CRF)

首先,我们来看看什么是随机场。随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。以词性标注为例:假如我们有一个十个词组成的句子需要做词性标注,这十个词每个词…

简单理解条件随机场CRF

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

条件随机场(CRF)的详细解释

条件随机场(CRF)由Lafferty等人于2001年提出,结合了最大熵模型和隐马尔可夫模型的特点,是一种无向图模型,常用于标注或分析序列资料,如自然语言文字或是生物序列。近年来在分词、词性标注和命名实体识别等序列标注任务中取得了很好…

RBM理论推导

RBM(Restricted Boltzmann Machine) 上面这个图就是一个RBM模型,它包括三个部分,最下面的可视层(visible layer),中间的权重连边(无向),上面的隐藏层&#xf…

受限玻尔兹曼机RBM简述与Python实现

生成式模型 生成式模型的理念大同小异,几乎都是用一个模型产生概率分布来拟合原始的数据分布情况,计算两个概率分布的差异使用KL散度,优化概率模型的方法是最小化对数似然,可以用EM算法或梯度优化算法。 今天表现比较好的生成模…

RBM系列1:预备知识

受限玻尔兹曼机是一种可用随机神经网络来解释的概率图模型。它由Smolensky于1986年在玻尔兹曼机(BM)的基础上提出,所谓“随机”,是指这种网络中的神经元是随机神经元,其输出只有两种状态(激活和未激活&…

深度学习20-限制玻尔兹曼机RBM

玻尔兹曼机来源于玻尔兹曼分布,而玻尔兹曼分布的创立者是路德维希玻尔兹曼,这个原理来源于他首次将统计学用于研究热力学,即物质的状态概率和它对应的能量有关。比如,我们常用熵来形容物体的混乱程度,同时如果我们的定…

【深度学习】受限玻尔兹曼机 (RBM) 初学者指南

一、说明 受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是一种基于能量模型的人工神经网络。它只有一个隐层,将输入层和隐层中的每个神经元互相连接,但不同层的神经元之间没有连接。RBM是一种无向的概率图模型&am…

matlab rbm 语音,Deep Belief Network 学习笔记-RBM

Deep Belief Network 学习笔记-RBM By Placebo (纯属个人笔记) 第一次知道deep learning,是上学期dengli博士来实验室的一次报告,他讲到,当神经网络的层数大于2时(即一个hidden层,一个输出层,不算输入层,之…