条件随机场(CRF)模型在给定一系列随机变量的条件下,另外一组随机变量的概率分布,其特点是假设输出随机变量构成马尔可夫随机场。
1. 随机场
提到随机场,就不得不提及随机过程,因为随机场是随机过程的推广。
随机过程:如果对于某一个固定的 ,都是随机变量,那么我们称是一个随机过程。直觉上,我们可以把随机过程理解为一族随即变量。并将叫做随机过程在时刻的状态。
随机场:随机场是随机过程在空间域上的推广。随机过程的基本参数是变量t,而随机场的基本参数是位置向量。因此,随机场可以视为定义在一个场域参数集上的随机变量系。
2. 马尔可夫随机场
马尔可夫随机场是随机场中的一个特例,它假设随机场中某一个位置的随机变量只和它相邻位置的随机变量有关,而和它不相邻的位置的随机变量无关。
3. 条件随机场
CRF又是马尔可夫随机场的一个特例。直观上,假设我们有两组随机变量X和Y,X已经给出了,而Y属于马尔可夫随机场,则我们称Y为条件随机场。我们给出条件随机场的数学定义:设X与Y是随机变量,P(Y|X)是在给定X的条件下Y的条件概率分布。若随机变量Y构成一个马尔可夫随机场,即 对任意节点v成立,则称条件概率分布P(Y|X)为条件随机场。
4.线性链条随机场
在实际工程应用当中,我们经常会用到条件随机场特例--线性链条随机场。
5. 线性链条件随机场的参数化形式
对于随机变量X和Y,线性链条件随机场的参数形式如下
其中规范场因子Z
在表达式中的tk、sl 是特征函数(tk 是定义在边上的特征函数,称为转移特征,依赖与当前和前一个位置;sl 是定义在结点上的特征函数,称为状态特征,依赖于当前的位置)。无论是节点特征函数还是局部特征函数,它们的取值只能是0或者1。即满足特征条件或者不满足特征条件。同时,我们可以为每个特征函数赋予一个权值,用以表达我们对这个特征函数的信任度。
假设我们在某一节点我们有K1K1个局部特征函数和K2K2个节点特征函数,总共有K=K1+K2K=K1+K2个特征函数。我们用一个特征函数来统一表示如下:
对转移与状态特征求和:
用wk表示特征的权值,即为:
若以w表示权值向量,即
以F(y,x)表示全局特征,即
则条件随机场可以写成如下形式:
5. 线性链条件随机场的三个基本问题
第一个问题是评估,即给定 linear-CRF的条件概率分布P(y|x)P(y|x), 在给定输入序列xx和输出序列yy时,计算条件概率P(yi|x)P(yi|x)和P(yi−1,yi|x)P(yi−1,yi|x)以及对应的期望. 本文接下来会详细讨论问题一。
第二个问题是学习,即给定训练数据集XX和YY,学习linear-CRF的模型参数wkwk和条件概率Pw(y|x)Pw(y|x),这个问题的求解比HMM的学习算法简单的多,普通的梯度下降法,拟牛顿法都可以解决。
第三个问题是解码,即给定 linear-CRF的条件概率分布P(y|x)P(y|x),和输入序列xx, 计算使条件概率最大的输出序列yy。类似于HMM,使用维特比算法可以tongshi很方便的解决这个问题。
具体算法步骤这里不做赘述,详情参考 统计学习方法
6. CRF与HMM的比较
CRF和HMM都是序列模型,有时候一些问题既可以用CRF模型也可以用HMM模型解决,例如标注问题。另外,HMM属于生成模型,而CRF属于判别模型,二者对于模型所做的假设也不同:HMM对状态序列做了马尔可夫假设,状态只和之前的状态有关,而CRF对标签之间做了马尔可夫假设,标签之间只和相邻的标签相关。
参考文献:
[1] 条件随机场CRF
[2] 统计学习方法
[3] 随机过程和随机场
[5] Quick Recipe: Build a POS tagger using a Conditional Random Field