条件随机场之浅出

1.随机场

当给每个位置中,按照某种分布随机赋予相空间(值空间)的值,其全体就叫做随机场。简单说就是给定一些候选值,然后随机的把这些候选值填入到每个位置。

2.概率图模型

概率图模型就是用图来表示变量概率的依赖关系,如下图所示我们看到概率图模型主要分为有向图模型和无向图模型。有向图模型如我们之前所介绍过的贝叶斯网络隐马尔科夫模型;无向图网络如马尔科夫随机场、条件随机场等;

                      

3.马尔科夫随机场

马尔科夫随机场就是符合马尔科夫性质的随机场,如下图所示,是一种概率无向图模型。马尔科夫性质如下:

局部马尔科夫性:给定了某个变量的邻接变量,则该变量和所有其它的变量无关(独立)

全局马尔科夫性:将局部马尔科夫性由变量扩展到集合,给定某个变量集的邻接变量集,则该变量集和其它的变量其无关。

成对马尔科夫性:将局部马尔科夫性反推,所有其它变量都已给定的情况下,两个不相邻的变量无关。

符合上面性质中任意一条,我们称为马尔科夫随机场。

                      

 

4.条件随机场概述

条件随机场就是有条件的马尔科夫随机场,即给定X的条件下,Y的分布符合马尔科夫随机场性质。有点类似于隐马尔可夫模型,不同的是条件随机场是一种判别式概率无向图模型。

生成式:使用联合概率分布进行建模,更关注的是变量和结果之间的关系,通俗的来说就是通过条件直接得到结果(可以理解为一道填空题)。常见的生成式模型有:隐马尔可夫模型、朴素贝叶斯模型、高斯混合模型GMM、LDA等;

判别式:使用条件概率建模,更关注结果之间的差异性,简单来说就是得到多个结果,然后选择概率最大的一个(可以理解为一道 选择题)。常见的判别式模型有:线性回归、决策树、支持向量机SVM、k近邻、神经网络等

使用条件随机场解决标注问题,一般更多考虑的是线性链条件随机场,即Y是线性分布的。其表达式为:P(Yi|X,Y1,Y2...Yn)=P(Yi|X,Yi−1,Yi+1)。对比HMM我们发现,因为HMM是有向图模型,所以其只需考虑上一个时刻(只有上一个时刻可以到达当前时刻)。而线性链条件随机场是无向图模型,所以前面和后面的相邻元素都会考虑(前后两条路径都可以到达当前位置)。

                                           

5.条件随机场的参数化表示

为了求解,我们需要将条件随机场使用数学公式表达出来。

上面已经知道条件分布函数为:P(Yi|X,Y1,Y2...Yn)=P(Yi|X,Yi−1,Yi+1)

现在需要将P(Yi|X,Yi−1,Yi+1)表达出来,更进一步的我们需要将P(Y|X)表达出来。其表达式如下:

                

接下来对上面的公式进行简单的解释:

1.t_{k}(y_{i-1},y_{i},x,i)s_{l}(y_{i},x,i)称为特征函数。t_{k}(y_{i-1},y_{i},x,i)为状态序列特征得分,表示y_{i}受到y_{i-1}的影响;s_{l}(y_{i},x,i)表示观测序列特征得分,表示y_{i}受到x_{i}的影响;特征函数的取值为1或者0,表示满足特征或者不满足特征。

2.λk和μl为权重,表示对应特征函数的重要程度或者正负方向

3.p(y|x)的分母Z(x)为所有可能的状态序列总的得分,分子为某一个序列的得分。都进行了exp指数化处理,用来拉开线性条件下高分与低分的距离。类似于逻辑回归进行多分类的softmax公式,最终得到的是某一个序列对应的概率。

6.构建条件随机场的特征函数

特征函数其实就是对序列进行打分的函数,用来表示不同序列的准确程度。上面的表达式是对特征函数的高度抽象,下面我们针对词性标注问题来具体构建我们的特征函数:

词性标注就是标出一个句子中每个词的词性,比如:袁冰妍是当今世界上最好看的人,对这句话进行词性标注会得到:袁冰妍(名词)是(连词)当今(副词)世界上(名词)最好看的(形容词)人(名词)。

上面的句子有6个词组成,正确的标注序列是:(名词、连词、副词、名词、形容词、名词),但是不正确的标注序列会有很多个。如何判断序列的正确程度,这是就该特征函数出马了。

现在我们正式定义一下CRF的特征函数,它是这样一个函数,接受四个参数:

1.x表示句子信息

2.i表示词的下标

3.y_{i}表示当前词的词性

4.y_{i-1}表示相邻的前一个词的词性

特征函数并不像我们所熟悉的其它函数一样,是一个具体的公式。而是一种高度的抽象,接受句子和相邻词的标注信息,对当前词的标注结果进行打分。好处就是我们可以针对具体的任务定义不同的特征函数,灵活性更高。不好的就是还得自己去定义,有点麻烦。可以看到特征函数中已经有了当前序列的信息,这就是我们上面说的判别式。已经得到序列的基础上,使用特征函数进行筛选过滤。结果为1表示符合特征函数,为0表示不符合特征函数。

特征函数的例子

下面针对词性标注问题举几个具体的特征函数的例子:

1.f1(y_{i},y_{i-1},x,i),当y_{i-1}为形容词时y_{i}为名词,f1为1,否则f1为0;这是一个正确的判别式,所以其λ权重应该为正,并且权重较大。

2.f1(y_{i},y_{i-1},x,i),当y_{i-1}为形容词y_{i}为形容词f1为1,否则f1为0;这是一个错误的判别式,所以其权重应该为负,表示相反的方向。

简化表达损失

我们将特征函数统一用f(y,x)表示,权重统一用w来表示。则最初的参数化表示就简化为下面这样:

                                                  

7.CRF+BiLSTM

下面聊一下具体的CRF应用,使用BiLSTM+CRF来进行命名实体识别(实体可以理解为名词的实例,比如袁冰妍是美女这个名词的一个实例,命名实体识别就是把这些实例属于哪些名词给找出来);

下面简要解释一下流程:

1.BiLSTM可以得到每一个单词对应的实体的得分值;

2.使用CRF对BiLSTM得到的组合进行过滤,以确保实体组合的有效性。

3.CRF目标函数如下,即真实路径概率比所有可能路径的概率(就是我们上一节所说的表达式的具体化)。如果要枚举所有的可能路径计算量会非常的大,为了简化计算。我们使用动态规划算法(将大问题分解为多个子问题,使用历史子问题的结果来求下一个子问题,是一种以空间换时间的算法)来求解每一时刻的全部路径,然后求和(其实就是前面说过的前向算法);然后我们可以使用梯度下降法进行优化。

               

4.当我们得到了模型之后,推理使用维特比算法(每一个时刻都取最大概率值,使用最后一时刻的最大概率进行回溯,过滤掉多余的路径,得到我们的最优序列,具体不在赘述!)

8.总结

本篇中我们介绍了条件随机场,类似于HMM,但是比HMM更加强大和灵活。是一种有条件的无向概率图模型,一种判别式模型。然后介绍了特征函数,这是其真正的强大之处。最后我们将条件随机场使用数学公式进行表达出来,然后将CRF和BiLSTM结合起来,作为神经网络中的一层,来进行命名实体识别。于HMM一样,在学习的时候我们使用前向算法,动态的求出下一位置的分值。在预测的时候使用维特比算法,得到最终的最优序列。

9.鬼灭之刀

我前生是一个给周武王赶车的车夫,面对仇敌的追杀,我毅然决然的选择了左边的弯道。再往前是一个下坡,我将马赶的飞快,回过头敌人就已经看不见了。文人雅士们都喜欢梅兰竹菊,高雅、淡泊、有气节。可是我只对韭菜情有独钟,因为韭菜包饺子好吃。它极其常见,还有点重口味,却让我得到了实实在在的快乐。对于生活中那些朴素却又不可缺少的事物,我总是没有什么抵抗力。作为一个男人,40多年的赶马生涯中,我唯一学会的就是,面对生活的苦难,咬着后槽牙说无所谓。我只是历史中一个寂寂无名的小人物,不会被任何人记住,即使活着的时候也没有什么人会在意我。为了使自己的意志不至于完全的消失,我曾在黑夜中将自己的秘密写进一个小盒子里。几千年来,我一直等待某一世能在梦中找到自己。昨天晚上盒子里的我终于又听到了人类微弱的呼吸声,我在等待,等待着被完全的唤醒。我要好好的看一看这21世纪,缤纷绚丽、美女如云。

燃爆全场!LiSA首唱《鬼灭之刃》最燃神曲《紅蓮華》完整版~【最高音画质收藏】【老织首次现场激情演唱动漫歌曲《紅蓮華》完整版】

 

猜你喜欢

转载自blog.csdn.net/gaobing1993/article/details/109039240