`
touchinsert
  • 浏览: 1335332 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

CRF简介(一)

 
阅读更多

折闪电 2009年11月30日

CRF(Conditional random fields),是一种判别式图模型,因为其强大的表达能力和出色的性能,得到了广泛的应用。从

最通用角度来看,CRF本质上是给定了观察值集合(observations)的马尔可夫随机场。在这里,我们直接从最通用的角度来

认识和理解CRF,最后可以看到,线性CRF和所谓的高阶CRF,都是某种特定结构的CRF。

1. 随机场

简单地讲,随机场可以看成是一组随机变量的集合(这组随机变量对应同一个样本空间)。当然,这些随机变量之间可能

有依赖关系,一般来说,也只有当这些变量之间有依赖关系的时候,我们将其单独拿出来看成一个随机场才有实际意义。

2. Markov随机场(MRF)

这是加了Markov性质限制的随机场。首先,一个Markov随机场对应一个无向图。这个无向图上的每一个节点对应一个随

机变量,节点之间的边表示节点对应的随机变量之间有概率依赖关系。因此,Markov随机场的结构本质上反应了我们的先验

知识——哪些变量之间有依赖关系需要考虑,而哪些可以忽略。Markov性质是指,对Markov随机场中的任何一个随机变量,

给定场中其他所有变量下该变量的分布,等同于给定场中该变量的邻居节点下该变量的分布。这让人立刻联想到马式链的定

义:它们都体现了一个思想:离当前因素比较遥远(这个遥远要根据具体情况自己定义)的因素对当前因素的性质影响不大。

Markov性质可以看作是Markov随机场的微观属性,那么其宏观属性就是其联合概率的形式。

假设MRF的变量集合为S={y1,...yn},

P(y1,...yn)= 1/Z * exp{-1/T * U(y1,..yn)},其中Z是归一化因子,即对分子的所有y1,..yn求和得到。U(y1,..yn)一般称为

energy function, 定义为在MRF上所有clique-potential之和。T称为温度,一般取1。什么是click-potential呢? 就是在MRF

对应的图中,每一个clique对应一个函数,称为clique-potential。这个联合概率形式又叫做Gibbs distribution。Hammersley

and Clifford定理表达了这两种属性的等价性。

如果click-potential的定义和clique在图中所处的位置无关,则称该MRF是homogeneous;如果click-potential的定义和

clique在图中的朝向(orientation)无关,则称该MRF是isotropic的。一般来说,为了简化计算,都是假定MRF即是homogeneous

也是iostropic的。

3.从Markov随机场到CRF

现在,如果给定的MRF中每个随机变量下面还有观察值,我们要确定的是给定观察集合下,这个MRF的分布,也就是条件

分布,那么这个MRF就称为CRF(Conditional Random Field)。它的条件分布形式完全类似于MRF的分布形式,只不过多了一

个观察集合x,即P(y1,..yn|x) = 1/Z(x) * exp{ -1/T * U(y1,...yn,x)。U(y1,..yn,X)仍旧是click-potential之和。

4.训练

通过一组样本,我们希望能够得到CRF对应的分布形式,并且用这种分布形式对测试样本进行分类。也就是测试样本中每个

随机变量的取值。

在实际应用中,clique-potential主要由用户自己定义的特征函数组成,即用户自己定义一组函数,这些函数被认为是可以

用来帮助描述随机变量分布的。而这些特征函数的强弱以及正向、负向是通过训练得到的一组权重来表达的,这样,实际应用

中我们需要给出特征函数以及权重的共享关系(不同的特征函数可能共享同一个权重),而clicque-potential本质上成了对应

特征函数的线性组合。这些权重就成了CRF的参数。因此,本质上,图的结构是用户通过给出特征函数的定义确定的(例如,

只有一维特征函数,对应的图上是没有边的)还有,CRF的分布成了对数线性形式。

看到这个分布形式,我们自然会想到用最大似然准则来进行训练。对其取log之后,会发现,表达式是convex的,也就是

具有全局最优解——这是很让人振奋的事情。而且,其梯度具有解析解,这样可以用LBFGS来求解极值。

此外,也可以使用最大熵准则进行训练,这样可以用比较成熟的GIS和IIS算法进行训练。由于对数线性的分布形式下,最

大熵准则和最大似然准则本质上是一样的,所以两者区别不是很大。

此外,由于前面两种训练方法在每一轮迭代时,都需要inference,这样会极大地降低训练速度。因此普遍采用另一种近

似的目标函数,称为伪似然。它用每个随机变量的条件分布(就是给定其他所有随件变量的分布)之积来替代原来的似然函数,

根据markov性质,这个条件分布只和其邻居有关(Markov Blanket),这样在迭代过程中不需要进行全局的inference,速度会得

到极大的提升。我自己的经验表明,当特征函数很多取实数值时,伪似然的效果跟最大似然的差不多,甚至略好于后者。但

对于大量二元特征(binary-valued),伪似然的效果就很差了。

5.推断

如前所述,训练的过程中我们需要概率推断,分类的时候我们需要找出概率最大的一组解,这都涉及到推断。这个问

题本质上属于图模型上的概率推断问题。对于最简单的线性框架的结构,我们可以使用Viterbi算法。如果图结果是树形的,

可以采用信念传播(belief propogation),用sum-product得到概率,用max-product得到最优的configuration.但是对于任意图,

这些方法就无效了。一种近似的算法,称为loopy-belief propogation,就是在非树形结构上采用信念传播来进行推断,通过循

环传播来得到近似解。这么做据说在某些场合下效果不错。但是,在训练时如果采用近似推断的话,可能会导致长时间无

法收敛。

基于任意图上的概率推断算法称为junction tree。 这个算法能够保证对任意图进行精确推理。它首先把原来的图进行三角

化,在三角化的图上把clique按照某种方式枚举出来作为节点(实际上就是合并特征函数),clicque之间如果有交集,对应的节

点之间就有边,这样就得到一个新的图,通过对这个图求最大生成树,就得到了Junction tree. 最后在junction tree上进行信

念传播可以保证得到精确解。

本质上这3中算法都属于动态规划的思想。Viterbi的想法最直观,信念传播首先将特征函数都转换为factor,并将其与随机

变量组合在一起形成factor-graph, 这样在factor-graph上用动态规划的思想进行推断(即做了一些预处理)。junction tree的

做法是通过合并原有的特征函数, 形成一种新的图,在这个图上可以保证动态规划的无后效性,于是可以进行精确推理。(做

了更为复杂的预处理)

值得注意的是,junction tree虽然极大地避开了组合爆炸,但由于它要合并特征函数并寻找clique, 用户的特征函数

如果定义的维数过大,它得到新的clique也会很大,这样在计算的时候还是会很低效,因为在推断的过程中它需要遍历所有

clique中的配置,这和clique的大小是呈指数级的。所以,用户要避免使用维数过高的特征。

分享到:
评论

相关推荐

    CRF系统简介及汽机冲转过程中一台CRF泵跳闸的应对共8页.pdf

    CRF系统,全称为冷却水循环系统,是电力生产中至关重要的组成部分,主要负责为凝汽器和常规岛辅助冷却水系统(SEN)提供冷却水,以维持发电所需的真空度和设备冷却。本文将深入探讨CRF系统的结构、功能、运行机制...

    基于CRF++的中文分词 数据+CRF++工具+java源码.zip

    **中文分词与CRF++简介** 中文分词是自然语言处理(NLP)中的一个基础任务,因为中文没有明显的词边界,如英文中的空格,因此需要通过特定算法将连续的汉字序列切分成有意义的词语。CRF++是一种条件随机场...

    CRF ++ -0.58 中文分词

    **CRF++简介** CRF++ 是一个开源的条件随机场(Conditional Random Fields,简称CRF)工具包,主要用于序列标注任务,如中文分词、词性标注、命名实体识别等自然语言处理任务。该软件由Taku Kudo开发,版本0.58在...

    使用TensorFlow2.0中的Keras实现基于BiLSTM-CRF的NER.zip

    在本项目中,我们将探讨如何使用TensorFlow 2.0中的Keras库来实现一个基于双向长短期记忆网络(BiLSTM)与条件随机场(CRF)的命名实体识别(NER)系统。命名实体识别是自然语言处理(NLP)领域的一个关键任务,它...

    CRF工具包及调用指令

    CRF简介 条件随机场是一种概率图模型,它考虑了整个序列的信息,而不仅仅是当前观测值。与隐马尔科夫模型(HMM)相比,CRF能够更好地捕捉上下文信息,因此在许多NLP任务中表现出优越性能。 ### 2. 常用的CRF工具...

    crf++ 中文分词

    **一、CRF++简介** 条件随机场(CRF)是一种无向图模型,常用于序列标注任务。与传统的HMM(隐马尔科夫模型)相比,CRF可以考虑上下文信息,避免了“封闭状态”的问题,因此在中文分词等任务上表现更优。 **二、CRF...

    CRF的深入学习资料

    #### 二、CRF简介 条件随机场是一种概率模型,它为给定一组观测数据(特征)的情况下,目标变量(如标签或类别)之间的关系建模。与传统的分类模型假设每个数据点独立不同,CRF能够处理数据间的相互依赖性,并对...

    CRF for relational learning

    条件随机场(Conditional Random Fields, CRF)作为一种概率模型,在处理序列数据和结构化预测问题时展现出强大的能力。本文旨在介绍CRF 在关系学习中的应用,并通过详细分析经典论文《An Introduction to ...

    crf best instroduction

    #### 一、简介 条件随机场(Conditional Random Fields,简称CRF)是一种概率图模型,在自然语言处理(NLP)、计算机视觉等众多领域有着广泛的应用。CRF尤其适用于序列标注问题,例如命名实体识别(NER)、词性标注(POS ...

    基于CRF++的中文名实体识别程序 附完整代码 可直接运行

    一、CRF++简介 CRF++是由Taku Kudo开发的轻量级工具,支持多种语言的序列标注任务。条件随机场是一种统计建模方法,它考虑了序列数据中相邻元素之间的依赖关系,能有效地捕捉上下文信息,从而在实体识别任务中展现出...

    基于tensorflow的bilstm+crf的命名实体识别.zip

    **一、TensorFlow简介** TensorFlow是由谷歌开发的开源机器学习库,支持各种复杂的计算图和分布式训练。它提供了一个灵活的环境,用于构建和部署机器学习模型,广泛应用于深度学习领域。TensorFlow的灵活性和高效性...

    CRF封装JNI整合包(win+linux)

    2. **SWIG简介**:SWIG(Simplified Wrapper and Interface Generator)是一个工具,它能够自动生成C/C++代码与多种高级语言(如Java)之间的接口。在本案例中,SWIG用于生成Java调用C++代码的必要接口。 3. **创建...

    10-Bi-LSTM+CRF 实体识别.zip

    这里采用的是一种深度学习模型——双向长短时记忆网络(Bi-LSTM)与条件随机场(CRF)相结合的方法。 **双向LSTM(Bi-LSTM)**: LSTM(Long Short-Term Memory)是一种特殊的循环神经网络(RNN),能够有效地处理...

    (源码)基于BERT和CRF的知识库问答系统.zip

    本项目是一个基于BERT和CRF(条件随机场)模型的KBQA(知识库问答)系统。它利用命名实体识别(NER)技术识别问题中的实体,然后通过相似度匹配(SIM)模型找到知识库中与问题最匹配的答案。项目包括数据处理、模型...

    BERT+BiLSTM+CRF NER简单实战

    CRF(Conditional Random Field)是概率图模型的一种,常用于序列标注任务,如NER。相比于其他序列标注模型(如softmax),CRF考虑了整个序列的标签依赖性,可以更准确地处理实体间的边界问题,避免孤立标签的出现。...

    基于Bert+BiLSTM+CRF的命名实体识别.zip

    标题 "基于Bert+BiLSTM+CRF的命名实体识别.zip" 提示我们这是一个关于自然语言处理(NLP)的项目,特别是涉及到命名实体识别(NER)的任务。在这个任务中,模型通常用于从文本中识别出具有特定意义的实体,如人名、...

    NER_CRF_Model:使用条件随机字段的命名实体识别

    本项目“NER_CRF_Model”专注于利用条件随机字段(Conditional Random Fields, CRF)来实现这一目标。条件随机字段是一种概率模型,特别适合用于序列标注任务,因为它可以考虑上下文信息,从而在预测当前标签时考虑...

    让自然语言模型训练更轻松.zip

    crf data/ner/rnn_with_crf/config/config.json2 rnn + softmax data/ner/rnn_with_crf/config/config_without_crf.json3 伯特 + CRF data/ner/bert_with_crf/config/config.json4 bert + softmax da

    通过从嘈杂的标记数据中学习CRF来对中医细颗粒综合症进行细分的实证研究

    **条件随机场(CRF)简介**:CRF是一种概率图模型,广泛应用于序列标注和分类任务中。在本文所提出的场景下,CRF被用来对每个文本片段进行标记,以识别出其中包含的具体综合症信息。通过学习大量带有噪声的标记数据...

    基于Bi-LSTM + CRF+Keras的中文分词+词性标注Python源码+文档说明

    要将中文进行分割,直观的方式是通过为语句中的每一个字进行标记,以确定这个字是位于一个词的开头还是之中: 例如“成功入侵民主党的电脑系统”这句话,我们为其标注为: "成功 入侵 民主党 的 电脑系统" B I B ...

Global site tag (gtag.js) - Google Analytics