条件随机场(CRF)的理解

Posted johnrain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了条件随机场(CRF)的理解相关的知识,希望对你有一定的参考价值。

Motivation

学习CRF的过程中,我发现很多资料,教程上来就给一堆公式,并不知道这些公式是怎么用的。 所以我想以面向问题的形式,分享一下自己对CRF用于序列标注问题的理解

问题定义

应该注意以下几点:

  • 输入(x)是观测序列,是先验条件
  • 输出(Y)是标注序列,也称为状态序列

我们举个例子:(《统计学习方法》 例11.1)

设有一标注问题:输入观测序列为(X=(X_1,X_2,X_3)),输出标记序列为(Y=(Y_1,Y_2,Y_3))(Y_1,Y_2,Y_3)取值于(gamma={1,2})

我们可以得到以下模型图:
技术分享图片

当模型输入句子 ”Dog caught the cat“ 时,我们希望模型能够输出标注序列:“n v a n”的概率最大

那么如何根据这个状态图计算出序列”n v a n“的出现的概率呢?

这里就引出了概率无向图模型:(注:个人认为条件随机场模型是一个概率无向图模型,而线性链条件随机场是一个有向图模型)

条件随机场

这里我们对于上图中的图模型,我们定义两种特征: 状态特征和转移特征

  • 状态特征: 定义在结点上,表示这个结点是否拥有某个属性
  • 转移特征: 定义在边上,表示两个状态是否会因为某个特征而转移

对于上面的问题中,我们可以直觉性地定义一些特征,例如:状态特征可以是({脊椎动物,哺乳动物,爬行动物,地点, 时间,动作}),转移特征可以理解有({动物后面接动词jump,人后面接动词love,名词后面接代词,动词后面接代词,形容词后面接名词}),这些就是我们对于一些直观特征,当然还有很多隐藏特征我们无法用语言来解释,也没有必要解释。

因此我们用数学语言来表达这些特征:
假设我们定义了(K_1) 个转移特征 $ {t_1,t_2,...,t_{K_1}} $ ,定义了(K_2)个状态特征 ({s_1,s_2,...,s_{K_2}}) ,当一个结点拥有状态特征(s_j)时,(s_j=1),否则,(s_j=0)
例如:dog 拥有状态特征:{脊椎动物,哺乳动物}
[ s_j=s_j(y_i,x,i) in {0,1} ]

Reference

《统计学习方法》 李航





以上是关于条件随机场(CRF)的理解的主要内容,如果未能解决你的问题,请参考以下文章

条件随机场之CRF++源码详解-开篇

如何轻松愉快地理解条件随机场(CRF)

条件随机场之CRF++源码详解-预测

条件随机场(CRF)的理解

条件随机场(CRF)占坑,待补充

条件随机场(CRF)-基础