CRF算法(Conditional Random Fields)揭秘

CRF基本介绍

在机器学习中,建模线性序列结构的方法,除了HMM算法,另一个重要的模型就是CRF。HMM为了降低模型复杂性,对观测变量做了独立假设(即隐状态之间有相关性,而观测变量之间没有相关性),这在某种程度上损害了模型的准确性;CRF弥补了这个缺陷,它同样假设类别变量之间有相关性,但没有对观测变量之间做出任何假设(即可能有相关性,也可能没有相关性)。

CRF除了和HMM形成对比,前者是判别式模型,后者是生成式模型;另一方面,CRF还可看成是对最大熵模型的扩展,即它是一个结构化学习模型,而不是单个位置的分类模型。CRF如何被因子化,CRF公式如何推导,如何建立最大熵模型和CRF的公式联系,以及如何得到CRF图表示结构是本文的几个重点。本文还会提到,一些算法,刚开始被用于HMM,稍作修改也能用于线性链CRF,比如前向-后向算法、维特比算法。另外需要指出,用于线性链CRF的训练和推理算法,不能直接用于任意结构的CRF。

背景知识:条件熵(Conditional entropy)

信息论中,条件熵用于量化描述随机变量Y所需的信息量,在另一个随机变量X已知的情况下,写作H(Y|X),具体形式如下:

  (公式1)

其中\chi表示随机变量X和Y的样本集。注意,这里有可能出现0\, log0,可以认为等于0,因为

直觉上,可以把H(Y|X)看成是某个函数f(X,Y)的期望,即H(Y|X)=E(f(X,Y)),其中f是条件概率,被定义为:

它是公式1中负号放到\Sigma求和里面后的右半部分。f函数可看成当给定变量X=x时,为描述变量Y=y需要的额外信息量。因此通过计算所有的(x,y)数据对的f期望值,条件熵H(Y|X)就能测量出要想通过X变量解码出Y变量,平均意义上需要多少信息。

现在进一步要问,以上H(Y|X)具体怎么来的?首先假设Y的概率密度函数为p_{Y}(y),那么Y的熵H(Y)就是H(Y):=E(I(Y)),具体为:

(公式2)

其中I(y_{i})是当Y取y_{i}的互信息。因此,已知X为某个取值x时求Y的熵H(Y|X=x)根据条件期望,即代入公式2有:

(公式3)

注意,H(Y|X)表示对H(Y|X=x)求关于所有不同x取值的平均。换言之,H(Y|X)是对H(Y|X=x)关于每个x的加权求和,其中权重就是概率p(x),具体如下:

(公式4)

上式第1个等号根据定义;第2个等号使用了公式3;第3个等号调整,将两个\Sigma合并简化;第4个等号利用贝叶斯公式。公式4最后得到公式1

一些基本属性H(Y|X)=0当且仅当Y完全被X控制。H(Y|X)=H(Y)当且仅当Y和X是两个独立的随机变量。

条件熵的链式规则H(Y|X)=H(X,Y)-H(X),即当X的熵H(X)已知,那么Y的条件熵H(Y|X)可通过联合熵H(X,Y)减去H(X)得到。它的推导过程如下:

(公式5)

上式第1步来自公式4;第2步把log拆成相减的两项;第3步把\Sigma拆成两项;第4步对第一项套用熵的公式得到H(X,Y),对第二项消去y变量(对y求和);第5步继续套用熵的公式,得到H(X)

公式5扩展到多个随机变量,得到:

(公式6)

可以发现公式6和概率中的链式法则类似,只不过把乘法变为了加法。

条件熵的贝叶斯规则H(Y|X)=H(X|Y)-H(X)+H(Y),证明如下:因为有H(Y|X)=H(X,Y)-H(X),以及H(Y,X)=H(X|Y)+H(Y),别忘了H(X,Y)=H(Y,X),得证。特别的当Y条件独立于Z(当给定X),那么有H(Y|X,Z)=H(Y|X)

最大熵模型(Maximum Entropy Model)

最大熵模型是一个条件概率模型,它基于最大熵原则,意思是,当我们不具备对一个概率分布的完整信息时,唯一的无偏估计假设就是均匀分布。在该假设下,最恰当的概率分布就是在给定约束下的最大化熵的分布。根据公式1,对于条件模型p(y|x),对应的条件熵H(y|x)为:

(公式一&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值