CRF总结

条件随机场理解

  1. 随机场理解
    先从随机变量说起。
    对于一个时间集合T内,每一个时间点t点,X(t)的数值都是随机的,那么X(t)称为随机过程。x(t)是依赖于时间的一组随机变量。它的分布函数叫做x(t)的一维概率分布函数。
    如果有一个变量,依赖于两个时间t1,t2,就称为二维随机变量,有二维概率分布函数。-。。。。。到n维概率分布函数
    两个随机过程之间的数字特征有:方差,期望,均值,协方差函数,互相关函数,自相关函数。
  2. 随机场的概念
    随机场就是随机过程在空间上的推广。随机过程的基本参数是时间变量,而随机场的变量是位置向量u(x,y,z).所以随机场就是定义在一个场域参数集合上的随机变量系。对于场域内的任一点,都有随机变量与它对应。
    所以,马尔科夫随机场,MRF就是空间上的马尔科夫链,认为一个事件的状态只与它的直接原因有关,与其他状态原因无关。
    3 .CRF条件随机场
  • 条件随机场,是给定随机变量X条件下,随机变量Y的马尔科夫随机场。
    在条件概率模型中P(Y/X)中,Y是输出变量,表示标记序列,x是输入变量,表示观测序列。训练时候利用训练数据库,通过极大似然估计得到条件概率模型,然后使用该模型预测。
    线性条件随机场:

    如上,X和Y是随机变量序列,给定X条件下,Y的条件概率分布构成条件随机场。
    CRF是一个无向图的概率模型,顶点代表变量,顶点之间的边代表两个变量之间依赖关系。常用的是链式CRF结构,如此可以表达长距离依赖性,和交叠特征的能力。所有特征可以进行全局归一化,得到全局最优解。(因为同一特征在各个位置都有表示,可以将同一个特征在不同位置求和,将局部特征转化为全局特征,从而得到全局最优解。)

    注意,HMM是生成时模型,用到EM算法。CRF是判别式模型,一般方法是最大似然估计,结合梯度下降,viterbi算法训练模型。
    4.CRF在NLP中的应用
    加例子
    句子是一个单词序列,观测序列就是单词本身以及一系列特征(例如词性,词长等),隐藏序列就是词的标记,例如分词的词边界等。
    词性标记就是给每个单词打标签。。CRF学习的过程就是描述一些特征配置:当前词语是xx,上个词xx,满足这种配置的,特征函数输出就是1,不然是0。每个词都有同样多的特征函数判断,所以是全局优化值。预测的过程就是利用每种特征配置给标签打分,然后打分结果加权求和,打分最高的标签,就是预测结果。

5.模型原理理解
特征表达方式:有两种,转移特征,两个状态之间的。另一种是状态特征。CRF学习的过程就是描述一些特征配置:当前词语是xx,上个词xx,满足这种配置的,特征函数输出就是1,不然是0.然后这些特征每个都有一个权重,要学习的就是这些权重。

比如为什么要套一个exp呢?一方面,要保证每一个factor是正的,factor可以大于一也可以不归一化,但一定要是正的。另一方面,我们最后要通过最大似然函数优化的,似然值是这些
factor的累乘,对每一个最大子团累乘。这么多项相乘没有人直接去优化的,都是取log变成对数似然,然后这些累乘变成累加了嘛,然后优化这个累加。无论是算梯度用梯度下降,还是另导数为零求解析解都很方便了(这个表达形态下的目标函数是凸的)。你套上exp之后,再取对数,那么每个因子就变成一堆特征乘权重的累积,然后整个对数似然就是三级累积,对每个样本、每个团、每个特征累积。这个形式就很有利了,你是求导还是求梯度还是怎样,你面对的就是一堆项的和,每个和是一个1或者一个0乘以一个

6.模型训练方法
-线性链的条件随机场跟线性链的隐马尔科夫模型一样,一般推断用的都是维特比算法。这个算法是一个最简单的动态规划。首先我们推断的目标是给定一个X,找到使P(Y|X)最大的那个Y嘛。然后这个Z(X),一个X就对应一个Z,所以X固定的话这个项是常量,优化跟他没关系(Y的取值不影响Z)。然后
exp也是单调递增的,也不带他,直接优化exp里面。所以最后优化目标就变成了里面那个线性和的形式,就是对每个位置的每个特征加权求和。比如说两个状态的话,它对应的概率就是从开始转移到第一个状态的概率加上从第一个转移到第二个状态的概率,这里概率是只exp里面的加权和。那么这种关系下就可以用维特比了。

  • 维特比原理
    首先你算出第一个状态取每个标签的概率,然后你再计算到第二个状态取每个标签得概率的最大值,这个最大值是指从状态一哪个标签转移到这个标签的概率最大,值是多
    少,并且记住这个转移(也就是上一个标签是啥)。然后你再计算第三个取哪个标签概率最大,取最大的话上一个标签应该是哪个。以此类推。整条链计算完之后,
    你就知道最后一个词去哪个标签最可能,以及去这个标签的话上一个状态的标签是什么、取上一个标签的话上上个状态的标签是什么,酱。这里我说的概率都是
    exp里面的加权和,因为两个概率相乘其实就对应着两个加权和相加,其他部分都没有变。
  1. 与HMM区别
    1)HMM是假定满足HMM独立假设。CRF没有,所以CRF能容纳更多上下文信息。
    2)CRF计算的是全局最优解,不是局部最优值。
    3)CRF是给定观察序列的条件下,计算整个标记序列的联合概率。而HMM是给定当前状态,计算下一个状态。
    4)CRF比较依赖特征的选择和特征函数的格式,并且训练计算量大

8.解码

转载于:https://www.cnblogs.com/lijieqiong/p/6673692.html

你可能感兴趣的:(CRF总结)