条件随机场的简单理解

article/2025/11/6 21:23:22

目录

什么是条件随机场

条件随机场长怎么样

如何构建特征函数

前向—后向算法

条件随机场的概率计算问题

条件随机场的预测问题


什么是条件随机场

条件随机场的定义

条件随机场总的来说就是只要满足“条件随机场”这个条件,就可以根据定义的模型去求解我们需要求解的问题,而我们时长需要解决的问题以线性的居多,所谓线性就是满足“线性链条件随机场”,本文也只涉及对“线性链条件随机场”的讲解。

定义(线性链条件随机场) 设X=(X_1,X_2,...,X_n)Y=(Y_1,Y_2,...,Y_n)均为线性链表示的随机变量序列,若在给定随机变量序列X的条件下,随机变量序列Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔可夫性:

P(Y_i|X,Y_1,...,Y_{i-1},Y_i,...,Y_n)=P(Y_i|X,Y{i-1},Y_{i+1})

 i=1,2,...,n   当i=1,n时,只考虑单边

则称P(Y|X)为线性链条件随机场。

所谓线性简单的来说就是随机变量序列X各个节点之间的关系是呈线性的,序列Y也一 一对应着各个节点的X,而不是其他乱七八糟的关系,也就是满足马尔可夫性。

回忆一下马尔可夫链的两个假设

(1)齐次马尔可夫假设:即t时刻的状态只受t-1时刻状态的影响
(2)观测独立性假设:即任意时刻的观测只受该时刻所处状态的影响

在线性条件随机场里面t时刻的状态往往受到前后两个状态的相互影响从而有(条件概率分布):

P(Y_i|X,Y_1,...,Y_{i-1},Y_i,...,Y_n)=P(Y_i|X,Y{i-1},Y_{i+1})

设线性条件随机场的应用

它的应用场景与HMM隐马尔科夫模型的类似,因此我们要解决的问题也对应了前面HMM模型的三个问题:

1.概率计算问题:给定参数,计算观测序列出现的概率,如P(Y_i=y_i|x),P(Y_{i-1}=y_{i-1},Y_i=y_i|x)等为后面做准备。

2.学习问题:极大化训练数据的对数函数P,求满足P的参数。

3.预测问题:不用说肯定是输出最大的隐藏序列(标注序列)。


条件随机场长怎么样

条件随机场的参数化形式

我们上面给出了了条件随机场的条件分布函数:

P(Y_i|X,Y_1,...,Y_{i-1},Y_i,...,Y_n)=P(Y_i|X,Y{i-1},Y_{i+1})

但是我们又应该如何得到P(Y_i|X,Y{i-1},Y_{i+1})的表达呢?更近一步地,整个序列Y的条件概率分布P(Y|X)又应该怎么表达呢?

我们先来看教科书式的表达(参数化表达):

p(y|x)=\frac{exp(\sum_{i,k}\lambda _kt_k(y_{i-1},y_{i},x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i))}{Z(x)}

Z(x)=\sum_y exp(\sum_{i,k}\lambda _kt_k(y_{i-1},y_{i},x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i)) 

假设参数化形式的内部理解

1. t_k(y_{i-1},y_{i},x,i),s_l(y_i,x,i)称为特征函数,其中t_k(y_{i-1},y_{i},x,i)是对状态序列的特征提取,表示y_{i}的特征受y_{i-1}状态的影响。s_l(y_i,x,i)是对观测序列的特征提取,表示y_{i}x_{i}的影响,说到这里是不是很熟悉,没错,它跟HMM很相似,也体现了马尔可夫的两个假设(至于特征又是怎么提取的下面将会以一个例子来介绍)。特征函数的取值为0或1,满足某个特征就取1,不满足就取0。

2. \lambda _k,\mu_l表示特征函数的一个权值,表示某个特征的重要程度或者是正负方向。

3. 我们对求和项\sum_{i,k}\lambda _kt_k(y_{i-1},y_{i},x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i)做一个合并

得到  \sum_{k=1}^{K}w _k\sum_{i=1}^nf_k(y_{i-1},y_i,x,i)   其中K=k+l

令      f_k(y,x)=\sum_{i=1}^nf_k(y_{i-1},y_i,x,i)

则      \sum_{k=1}^{K}w _k\sum_{i=1}^nf_k(y_{i-1},y_i,x,i)=\sum_{k=1}^{K}w _kf_k(y,x)

求和项\sum_{k=1}^{K}w _kf_k(y,x)表示对序列y=(y_1,y_2,...,y_n)所有的特征求和的一个综合评分

4. 指数化e^{\varphi }的意义:数据的大小之于某种结果的贡献往往表现出自然指数的增长性,或者是说采用指数化往往比线性对某种目的的拟合性能更好,比如一个女生选男朋友,有三个对象,身高为(170,175,180),100分制的评分,似乎(80,85,100)比(80,90,100)更贴合女生的要求,指数化也是这样,用于拉开线性情况下高分与低分的距离。

5. Z(x)是对所有可能的状态序列y求和,其作用是归一化各种情况,以总和为1的形式给出每种情况的概率大小。


如何构建特征函数

OK,那到这里条件随机场的参数化形式就只剩下特征函数怎么求了

 

一个例子——词性标注问题 :(转自:http://www.jianshu.com/p/55755fc649b1 )

词性标注就是给一个句子中的每个单词注明词性。比如这句话:“Bob drank coffee at Starbucks”,注明每个单词的词性后是这样的:“Bob (名词) drank(动词) coffee(名词) at(介词) Starbucks(名词)”。

下面,就用条件随机场来解决这个问题。

以上面的话为例,有5个单词,我们将:(名词,动词,名词,介词,名词)作为一个标注序列,称为l,可选的标注序列有很多种,比如l还可以是这样:(名词,动词,动词,介词,名词),我们要在这么多的可选标注序列中,挑选出一个最靠谱的作为我们对这句话的标注。

怎么判断一个标注序列靠谱不靠谱呢?

就我们上面展示的两个标注序列来说,第二个显然不如第一个靠谱,因为它把第二、第三个单词都标注成了动词,动词后面接动词,这在一个句子中通常是说不通的。

假如我们给每一个标注序列打分,打分越高代表这个标注序列越靠谱,我们至少可以说,凡是标注中出现了动词后面还是动词的标注序列,要给它负分!!

上面所说的动词后面还是动词就是一个特征函数,我们可以定义一个特征函数集合,用这个特征函数集合来为一个标注序列打分,并据此选出最靠谱的标注序列。也就是说,每一个特征函数都可以用来为一个标注序列评分,把集合中所有特征函数对同一个标注序列的评分综合起来,就是这个标注序列最终的评分值。

定义CRF中的特征函数 
现在,我们正式地定义一下什么是CRF中的特征函数,所谓特征函数,就是这样的函数,它接受四个参数: 
1. 句子x=(x_1,x_2,...,x_n)(就是我们要标注词性的句子) 
2. i,用来表示句子x中第i个单词 
3. y_i,表示要评分的标注序列给第i个单词标注的词性 
4. y_{i-1},表示要评分的标注序列给第i-1个单词标注的词性

它的输出值是0或者1,0表示要评分的标注序列不符合这个特征,1表示要评分的标注序列符合这个特征。

几个特征函数的例子  
1.f_1(y_{i-1},y_i,x,i)y_{i}是“副词”并且第i个单词以“ly”结尾时,我们就让f_1=1,其他情况f_1=0。不难想到,f_1特征函数的权重\lambda_1应当是正的。而且\lambda_1越大,表示我们越倾向于采用那些把以“ly”结尾的单词标注为“副词”的标注序列 

2.f_2(y_{i-1},y_i,x,i)如果i=1l_i为动词,并且句子x是以“?”结尾时,f_2=1,其他情况f_2=0。同样,\lambda_2应当是正的,并且\lambda_2越大,表示我们越倾向于采用那些把问句的第一个单词标注为“动词”的标注序列。 
 
3.
f_3(y_{i-1},y_i,x,i)l_{i-1}是介词,l_{i}是名词时,f_3=1,其他情况f_3=0\lambda_3也应当是正的,并且\lambda_3越大,说明我们越认为介词后面应当跟一个名词。 

4.f_4(y_{i-1},y_i,x,i)如果l_{i}l_{i-1}都是介词,那么f_4=1,其他情况f_4=0。这里,我们应当可以想到\lambda_4是负的,并且\lambda_4的绝对值越大,表示我们越不认可介词后面还是介词的标注序列。

.................一系列的特征函数对序列y的每个节点进行评分求和,最后归一化就可以得到当前序列y的概率大小。

p(y|x)=\frac{exp(\sum_{k=1}^{K}w _kf_k(y,x))}{Z(x)}

Z(x)=\sum_y exp(\sum_{k=1}^{K}w _kf_k(y,x))


前向—后向算法

细看一下分子  

先回顾一下条件概率分布函数 p(y|x)=\frac{exp(\sum_{k=1}^{K}w _kf_k(y,x))}{Z(x)}的分子部分exp(\sum_{k=1}^{K}w _kf_k(y,x))

如果根据i展开应该是这样的:exp(\sum_{i=1}^{n+1} \sum_{k=1}^{K}w _kf_k(y_{i-1},y_i,x,i))=\prod _{i=1}^{n+1} (exp(\sum_{k=1}^{K}w _kf_k(y_{i-1},y_i,x,i)))

定义一个函数

M_i(y_{i-1},y_i|x)=exp(\sum_{k=1}^{K}w _kf_k(y_{i-1},y_i,x,i))            表示在x的条件下取得状态y_{i-1},y_i时所有特征的得分

定义一个M阶矩阵

M_i(x)=[M_i(y_{i-1},y_i|x)]   不 同的状态y_{i-1},y_i,对应不同的值,m表示y_i有m种状态

分布函数的新形式

p(y|x)=\frac{\prod _{i=1}^{n+1}M_i(y_{i-1},y_i|x)}{Z(x)}

Z(x)=(\sum_y\prod _{i=1}^{n+1}M_i(y_{i-1},y_i|x))表示对所有序列的非规范化得分的总和

前向—后向算法

对每个指标i=0,1,2,...,n+1,定义前向向量a_i(x)

起始单元:

a_0(y|x)=\left\{\begin{matrix} 1,\ \ \ y=start \\ 0,\ \ \ y\neq start \end{matrix}\right.

递推单元:

a_i^{T}(y_i|x)=a_{i-1}^{T}(y_{i-1}|x)M_i(y_{i-1},y_i|x),\ \ \ i=1,2,...,n+1

可表示为:

a_i^{T}(x)=a_{i-1}^{T}(x)M_i(x)

a_i^{T}(y_i|x)表示在已知序列y的情况下从位置0到i的得分,或叫非规范化概率

用图表示

 

 

同样,定义后向向量

\beta_{n+1}(y_{n+1}|x)=\left\{\begin{matrix} 1,\ \ \ y_{n+1}=stop \\ 0,\ \ \ y_{n+1}\neq stop\end{matrix}\right.

\beta_i^{T}(x)=\beta_{i+1}^{T}(x)M_{i+1}(x)

\beta_i^{T}(y_i|x)表示在已知序列y的情况下从末尾位置反向到i的得分,或叫非规范化概率

 

由前向后向算法不难得到

Z(x)=a_{n}^{T}(x)\cdot 1=1^T\cdot \beta_1^{T}(x),1为m维的单位向量。


条件随机场的概率计算问题

状态i为yi的概率

P(Y_i=y_i|x)=\frac{a_i^T(y_i|x)\beta_i(y_i|x))}{Z(x)},Z(x)=a_{n}^T(x)\cdot1=1^T\cdot\beta_1(x)

状态i-1为yi-1,状态i为yi的概率

P(Y_{i-1}=y_{i-1},Y_i=y_i|x)=\frac{a_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i)\beta_i(y_i|x))}{Z(x)}

期望值的计算


条件随机场的预测问题

预测问题就是给定条件随机场P(Y|X)和输入序列x,求条件概率最大的标记序列y^*,即对观测序列进行标注

y^*=arg\ max_y\ p_w(y|x)

      =arg\ max_y\ \frac{exp(w\cdot F(y,x))}{Z(x)}

      =arg\ max_y\ exp(w\cdot F(y,x))

      =arg\ max_y\ (w\cdot F(y,x))

其中

w=(w_1,w_2,..,w_k)

F(y,x)=(f_1(y,x),f_2(y,x),...,f_k(y,x))^T

f_k(y,x)=\sum_{i=1}^nf_k(y_{i-1},y_i,x,i),k=1,2,...,K

w\cdot F(y,x)表示根据指定序列的y,对每一个节点i=1,2,...,n中的每一个特征函数与权重的成绩乘积求和

是条件随机场预测问题成为非规范化概率(得分)最大的最优化路径问题。

维比特算法

 

曾记否,在讲HMM时我们也用了维比特算法求最优路径的,大概就是在每个节点i求使P(y_i=j|y_1,y_2,...,y_i-1,x)最大的y_{i-1}的标注是什么,在遍历完i后返向求取上一个标注,最终得到最优路径在这里也是一样。

为了对每一个节点进行展开计算,我们需要定义

F_i(y_{i-1},y_i,x)=(f_1(y_{i-1},y_i,x),f_2(y_{i-1},y_i,x),...,f_k(y_{i-1},y_i,x))^T,表示在节点i处各特征得分和的向量

\delta _1=w\cdot F_1(y_{0}=start,y_1,x),表示i=1节点处乘以权重向量后的得分和的向量

\delta _1(j)=w\cdot F_i(y_{i-1},y_i=j,x),j=1,2,...m可以表示\delta _i的每个分量,m表示状态的个数

\delta _i(l)=\underset{1\leq j\leq m}{max}(\delta _{i-1}(j)+w\cdot F_i(y_{i-1}=j,y_i=l,x)),l=1,2,...m表示在节点i-1处取得最大值的项连接到i处各个标注的得分

\varphi_i(l)=arg\underset{1\leq j\leq m}{max}(\delta _{i-1}(j)+w\cdot F_i(y_{i-1}=j,y_i=l,x)),l=1,2,...m记录上一个节点的最大位置

当i=n时 \underset{1\leq j\leq m}{max}\delta _n(j)就是非规范化概率的最大值

\varphi_n(j)=arg\underset{1\leq j\leq m}{max}(\delta _{n}(l))就是最优路径的终点y^*_n

将后一个节点的最优值作为当前节点的指针便可以得到当前节点的最优值得

所以y^*_i=\varphi _{i+1}(y^*_{i+1}),i=n-1,n-1,...,1

y^*=(y^*_1,y^*_2,...,y^*_n)就是使得概率最大化的最优标注序列。

到最优的标注序列y^*=()

 


未完待续


[1] 李航.统计学习方法[M].北京:清华大学出版社,2012:155-184 

[2] 如何轻松愉快地理解条件随机场(CRF)?[Online]. https://www.jianshu.com/p/55755fc649b1


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

相关文章

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层,一个输出层,不算输入层,之…

受限玻尔兹曼机(RBM)

受限玻尔兹曼机(RBM) 一起读懂传说中的经典:受限玻尔兹曼机 https://mp.weixin.qq.com/s?__bizMzA3MzI4MjgzMw&mid2650731098&idx1&snc7391caee3a567b4b046406d53f022f2&chksm871b3624b06cbf320f3725fe452d291e04a4a8c1beda…

人工智能(pytorch)搭建模型13-pytorch搭建RBM(受限玻尔兹曼机)模型,调通模型的训练与测试

大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型13-pytorch搭建RBM(受限玻尔兹曼机)模型,调通模型的训练与测试。RBM(受限玻尔兹曼机)可以在没有人工标注的情况下对数据进行学习。其原理类似于我们人类学习的过程&#xff0c…