CRF的前世今生(二)

2019-10-07  本文已影响0人  机器学习与自然语言处理

CRF在本质上是属于log linear model,在log linear model中有两类比较重要的模型:

  1. logistic regression
  2. conditional random field
    image.png
    首先看一下log linear model 的标准书写方法
    image.png
    左边是判别模型的条件概率,右式是这个条件概率的计算方法,其中,F_j(x,y)是feature function,表示x和y之间的某种关系,更通俗的理解方式可以将这个整体看作是j个特征,针对具体的数据集来说,F_j(x,y)是已知的。w_j是这个模型的参数,是需要估计和训练的,分母中的z(x,w)可是看作是归一化项。
    multinomial logistic regression为例
    image.png
    在这里,定义
    F_j(x,y)=x_i ·I(y=c),x∈R^d, y∈ \{1,2,…,c\}
    c表示分类的类别,x表示一个d维的向量,I(y=c)是一个indicator fuction,满足条件时为1,不满足条件时为0,假设x有d种不同的取值,类别的数量c = 3,所以j有 3 * d种取值. 同时只有当y = c 时,有I_{(y=c)}=1,否则为0。所以有:
    image.png
    y=1带入上面的公式有
    image.png
    进一步,将w按照类别分成3个部分有:
    image.png

以上的推到就是一个多元逻辑回归的推导过程,通过定义一个feature function,就可以得到一个特定的模型,如果我们改一下定义featurefunction的方式,是不是模型也就变了。
既然feature function这么重要,就再讨论一下feature function


将上面这个feature fuction 拆分成两部分,,前者只考虑从数据角度如何提取特征,后者只分析label,比如x 可以有如下取值
image.png
前面讨论了离散特征的处理方法,如果输入的数据是一个序列,我们应该如何处理呢?再回到最开始的公式中,以词性标注为例,
其中,x表示一个可观测的序列,y表示这个序列的标签。为了让特征函数更能体现时序的性质,将feature function进行一步改写:
image.png
这样将时刻,时刻,输入都联系在了一起。用一个图来表示就是这个样子
image.png
在这个图中,可以看到当前时刻的y和上一时刻的y,以及输入x之间的特征函数的值,
接下来看crf中两个主要的问题: image.png
接下来就有:
image.png
红框中标注的部分可以通过crf的前向算法和后向算法求出。这些都可以计算出来
所以的梯度可以通过以下方式计算
image.png
上一篇下一篇

猜你喜欢

热点阅读