条件随机场(CRF)

article/2025/11/6 21:53:02

目录

1.定义

1.1 图

1.2 概率图模型(PGM)

(1)有向图的联合概率:

(2)概率无向图模型: 

1.3 马尔可夫性

1.4 团与最大团

1.5 概率无向图模型的联合概率分布

1.6 条件随机场

1.7 线性链条件随机场

2.条件随机场的不同形式

2.1 条件随机场的参数化形式

2.2 条件随机场的简化形式

2.3 条件随机场的矩阵形式

3.概率计算问题

3.1 前向-后向算法

3.2 概率计算

3.3 期望值计算

4.学习算法(参数估计)

5.预测算法(推断)

6.CRF++


条件随机场应该是机器学习领域比较难的一个算法模型了,难点在于其定义之多(涉及到概率图模型、团等概率)、数学上近似完美(涉及到概率、期望计算,最优化方面的知识),但是其在自然语言处理方面应用效果比较好,所以本文结合李航老师的《统计学习方法》学习一下。

1.定义

1.1 图

  图是由结点和连接结点的边组成的集合。结点和边分别记作v和e,结点和边的集合分别记作V和E,图记作G=(V,E)。无向图是指边没有方向的图。

1.2 概率图模型(PGM)

  概率图模型是一类用图的形式表示随机变量之间条件依赖关系的概率模型,是概率论与图论的结合。根据图中边有无方向,常用的概率图模型分为两类:有向图(贝叶斯网络、信念网络)、无向图(马尔可夫随机场、马尔可夫网络)。

(1)有向图的联合概率

 
  其中,的父节点。

 

 

  如上图所示,则有

(2)概率无向图模型: 

设有联合概率分布P(Y),由无向图G=(V,E)表示,在图G中,结点表示随机变量,边表示随机变量之间的依赖关系。如果联合概率分布P(Y)满足成对、局部或全局马尔可夫性,就称此联合概率分布为概率无向图模型或马尔可夫随机场。 
  尽管在给定每个节点的条件下,分配给该节点一个条件概率是可能的,无向图的无向性导致我们不能用条件概率参数化表示联合概率,而要从一组条件独立的原则中找出一系列局部函数的乘积来表示联合概率。 
  最简单的局部函数是定义在图结构中的团上的势函数,并且是严格正实值的函数形式。

  下面我们来看下上面出现的马尔可夫性、团的定义

1.3 马尔可夫性

 

 

1.4 团与最大团

  无向图G中任何两个结点均有边连接的结点子集称为团,若C是无向图G的一个团,并且不能再加进任何一个G的结点使其称为一个更大的团,则称此C为最大团。

  下图表示由4个结点组成的无向图。图中由2个结点组成的团有5个: 
。有2个最大团:.而不是一个团,因为没有边连接。

 

 

  将概率无向图模型的联合概率分布表示为其最大团上的随机变量的函数的乘积形式的操作,成为概率无向图模型的因子分解。

1.5 概率无向图模型的联合概率分布

  给定概率无向图模型,设其无向图为G,C为G上的最大团,表示C对应的随机变量。那么概率无向图模型的联合概率分布P(Y)可写作图中所有最大团C上的函数的乘积形式,即

 

 

  其中,Z是规范化因子,由式

 

 

  给出。规范化因子保证P(Y)构成一个概率分布。函数称为势函数。这里要求势函数是严格正的,通常定义为指数函数:

 

 

  概率无向图模型的因子分解由Hammersley-Clifford定理来保证。

1.6 条件随机场

  设X与Y是随机变量,P(Y|X)是在给定X的条件下Y的条件概率分布。若随机变量Y构成一个由无向图G=(V,E)表示的马尔可夫随机场,即

 

 

  对任意结点v成立,则称条件概率分布P(Y|X)为条件随机场。式中w~v表示在图G=(V,E)中与结点v有边连接的所有结点w,w≠v表示结点v以外的所有结点,,为结点v,u与w对应的随机变量。

1.7 线性链条件随机场

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

 

 

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

 

 

线性链条件随机场

 

 

 

X和Y有相同的图结构的线性链条件随机场

 

  在标注问题中,X表示输入观测序列,Y表示对应的输出标记序列或状态序列。

2.条件随机场的不同形式

2.1 条件随机场的参数化形式

  设P(Y|X)为线性链条件随机场,则在随机变量X取值为x的条件下,随机变量Y取值为y的条件概率具有如下形式: 
   

 

  其中,Z(x)是规范化因子

 

 

  参数解释

  (1)是定义在边上的特征函数,称为转移特征,依赖于当前和前一个位置 
  (2)是定义在及结点上的特征函数,称为状态特征,依赖于当前位置 
  (3)对应的权值 
  (4)特征函数取值为1或0:当满足特征条件时取值为1,否则为0。

  下面看一个简单的例子:

 

 

2.2 条件随机场的简化形式

  为了后续概率计算、参数估计、推断的方便,对条件随机场形式进行简化

  首先将转移特征和状态特征及其权值用统一的符号表示,设有个转移特征,个状态特征,K=+,记

 

 

  然后,对转移与状态特征在各个位置i求和,记作

 

 

  用表示特征的权值,即

 

 

  于是,条件随机场可表示为

 

 

  若以w表示权值向量,即

 

 

  以表示全局特征向量,即

 

 

  则条件随机场可以写成向量w与的内积的形式:

 

 

  其中,

 

 

2.3 条件随机场的矩阵形式

 

 

3.概率计算问题

3.1 前向-后向算法

  为了方便起见,像隐马尔可夫模型一样,引进前向-后向向量,递归地计算以上概率及期望值,这样的算法称为前向-后向算法

 

 

3.2 概率计算

 

 

3.3 期望值计算

 

 

4.学习算法(参数估计)

  条件随机场实际上是定义在时序数据上的对数线性模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现方法有改进的迭代尺度法IIS、梯度下降以及牛顿法。

 

 

5.预测算法(推断)

  条件随机场的预测问题是给定条件随机场P(Y|X)和输入序列(观测序列)x,求条件概率最大的输出序列(标记序列),即对观测序列进行标注。条件随机场的预测算法是著名的维特比算法.

 

 

  由上式可得:

 

 

  于是,条件随机场的预测问题成为求非规范化概率最大的最优路径问题

 

 

  这里,路径表示标记序列。其中

 

 

  注意,这时只需计算非规范化概率,而不必计算概率,可以大大提高效率。为了求解最优路径,将问题改写成如下形式:

 

 

  其中,

 

 

是局部变量。

  下面叙述维特比算法.

 

 

6.CRF++

  现在关于CRF的工具有很多,这里简单介绍一下CRF++

  CRF++包含Windows、Linux版本,tar_gz是Linux版本,zip是Windows版本。

  介绍一下Windows版本,Linux差不多,不过包含源码,感兴趣可以读一读

 

 

  (1)doc文件夹:官方主页的内容 
  (2)example文件夹:有四个任务的训练数据、测试数据和魔板文件 
  (3)sdk文件:CRF++的头文件和静态链接库 
  (4)crf_learn.exe:CRF++的训练程序 
  (5)crf_test.ext:CRF++的预测程序 
  (6)libcrfpp.dll:训练程序和预测程序需要使用静态链接库。

  以example文件夹下basenp为例:

  编写一个批处理文件如下:

<span style="color:#000000"><code><span style="color:#4f4f4f !important">..</span><span style="color:#4f4f4f !important">\</span><span style="color:#4f4f4f !important">..</span><span style="color:#4f4f4f !important">\</span>crf_learn <span style="color:#50a14f">-c</span> <span style="color:#006666 !important">10.0</span> template train<span style="color:#4f4f4f !important">.</span><span style="color:#4f4f4f !important">data</span> model <span style="color:#4f4f4f !important">>></span> train<span style="color:#50a14f">-info</span><span style="color:#4f4f4f !important">.</span>txt
<span style="color:#4f4f4f !important">..</span><span style="color:#4f4f4f !important">\</span><span style="color:#4f4f4f !important">..</span><span style="color:#4f4f4f !important">\</span>crf_test   <span style="color:#50a14f">-m</span> model test<span style="color:#4f4f4f !important">.</span><span style="color:#4f4f4f !important">data</span> <span style="color:#4f4f4f !important">>></span> test<span style="color:#50a14f">-info</span><span style="color:#4f4f4f !important">.</span>txt</code></span>

  运行exec_basenp.bat之前: 

  运行exec_basenp.bat之后: 

  CRF++工具包使用介绍

  更多详细介绍An Introduction to Conditional Random Fields


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

相关文章

条件随机场 (CRF)

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

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

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

简单理解条件随机场CRF

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

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

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

RBM理论推导

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

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

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

RBM系列1:预备知识

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

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

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

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

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

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

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

受限玻尔兹曼机(RBM)

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

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

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

受限玻尔兹曼机(RBM)原理总结

https://blog.csdn.net/l7H9JA4/article/details/81463954 授权转发自&#xff1a;刘建平《受限玻尔兹曼机&#xff08;RBM&#xff09;原理总结》 地址:http://www.cnblogs.com/pinard/p/6530523.html 前 言 本文主要关注于这类模型中的受限玻尔兹曼机&#xff08;Restrict…

特征工程(七)—特征学习RBM

1、MNIST数据集 """ MNIST数据集&#xff0c;包括6000个0-9手写数字图像&#xff0c;以及学习的真实值此处使用很低级的特征&#xff0c;而不是解释性很好的特征。每一个数据点包括784个特征&#xff08;灰度图像的像素值&#xff09; """impor…

特征学习-RBM与PCA应用在LR

Table of Contents 1. 基本信息查询 导入package2. 提取PCA 成分3. 提取RBM主成分 取出前20个最有代表性的特征提取后20个特征4. RBM在machine learning中效果 直接用LR模型采用PCA主成分的LR采用RBM主成分的LR 1. 基本信息查询 导入package import numpy as np import matpl…

受限玻尔兹曼机RBM

基本概念代码 基本概念 受限玻尔兹曼机&#xff08;RBM&#xff09;是一个两层神经网络&#xff0c;第一层被称为可见层&#xff0c;第二层被称为隐藏层&#xff0c;因为网络只有两层&#xff0c;所以又被称为浅层神经网络。 该模型最早由 Paul Smolensky 于 1986 年提出&…

理解RBMDBN

RBM 关于受限玻尔兹曼机RBM&#xff0c;网上很多博客[1][2]都总结推导RBM很详细&#xff0c;很少有人能通俗地解释一下RBM的用途和有点&#xff0c;我觉得[2]写得很好&#xff0c;可以参考辅助理解&#xff0c;下面简单总结一下我的理解和一些相关知识。 网络结构 RBM是一个…

中小企业RBM结合VRRP组网

组网拓扑图 FW-A配置&#xff1a; sysname FW1090-A # track 1 interface GigabitEthernet1/0/1 physical ///检测上行口 # track 2 interface GigabitEthernet1/0/2 physical ///检测下行口 # ospf 1 router-id 192.168.10.254 ///OSPF发布于核心互联路由 defa…

RBM受限玻尔兹曼机

受限玻尔兹曼机(RBM) 一、RBM的网络结构 RBM的网络结构如下图所示&#xff1a; RBM中包括两层&#xff0c;即&#xff1a; 可见层(visible layer)&#xff0c;图上的___v___隐藏层(hidden layer)&#xff0c;图上的___h___ 由上图可知&#xff0c;在同一层中&#xff0c;如…

RBM

目录 总结&#xff1a; 伯努利-伯努利RBM 概念&#xff1a; 公式定义 训练过程 高斯-伯努利RBM 概念&#xff1a; 总结&#xff1a; RBM是基于能量函数假设的&#xff0c;优化目标是使能量函数最小化&#xff0c;也设定为重构的可见层等于真实值的概率最大化。在利用极…