条件随机场(conditional random field,CRF)模型初探

0. 引言

0x1:为何会有条件随机场?它解决了什么问题?

在开始学习CRF条件随机场以前,咱们须要先了解一下这个算法的前因后果,它是在什么状况下被提出的,是从哪一个算法演进而来的,它又解决了哪些问题,它有哪些优缺点。html

实际上咱们能够不太严谨地这么说,HMM -> HEMM -> CRF,它们之间是逐渐演进的结果。node

隐马尔可夫模型(Hidden Markov Model,HMM)、最大熵马尔可夫模型(Maximum Entropy Markov Model,MEMM)、以及条件随机场(Conditional Random Field,CRF)是序列标注中最经常使用也是最基本的三个模型。HMM首先出现,MEMM其次,CRF最后。三个算法主要思想以下:算法

1. HMM模型是对转移几率和表现几率直接建模,统计共现几率。
2. MEMM模型是对转移几率和表现几率创建联合几率,统计时统计的是条件几率,但MEMM容易陷入局部最优,是由于MEMM只在局部作归一化。
3. CRF模型中,统计了全局几率,同时在作归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置(label bias)的问题。

1. 3种不一样算法在标注问题中的计算要素

用一个例子说明上述区别,对于一个标注任务网络

H(状态序列)= ”s s b e b c e”
O(观测序列)= “我爱北京天安门“

咱们分别来看三种算法在训练过程当中须要计算的组成要素:框架

1. 对于HMM的话,其判断这个标注成立的几率为 
P = 
    P(初始状态几率) * 
    P(初始状态转移到s)*P(‘我’表现为s) * 
    P(s转移到s)*P(‘爱’表现为s) * 
    P(s转移到b)*P(‘北’表现为b) *
    P(b转移到e)*P(‘京’表现为b) *
    P(e转移到b)*P(‘天’表现为b) *
    P(b转移到c)*P(‘安’表现为b) *
    P(c转移到e)*P(‘门’表现为b) * 
训练时,要统计状态转移几率矩阵和表现矩阵。

2. 对于MEMM的话,其判断这个标注成立的几率为 
P = 
    P(初始状态几率) *
    P(初始状态转移到s|’我’表现为s)*P(‘我’表现为s) * 
    P(s转移到s|’爱’表现为s)*P(‘爱’表现为s) * 
    ..
    P(c转移到e|‘门’表现为b)*P(‘门’表现为b)
训练时,要统计条件状态转移几率矩阵和表现矩阵。

3. 对于CRF的话,其判断这个标注成立的几率为 
P =  
    F(初始状态转移到s,’我’表现为s) *
    F(s转移到s, ‘爱’表现为s) * 
    F(s转移到b, ‘北’表现为b) *
    F(b转移到e, ‘京’表现为b) *
    F(e转移到b, ‘天’表现为b) *
    F(b转移到c, ‘安’表现为b) *
    F(c转移到e, ‘门’表现为b) * 
F为一个函数,是在全局范围统计归一化的几率而不是像MEMM在局部统计归一化的几率。

2. CRF算法对HMM和HEMm的主要改进点

1)CRF避免了HMM中的严格的独立性假设条件

咱们知道,要再实际问题中应用HMM算法,隐马尔可夫模型做了两个基本假设:dom

1. 齐次马尔科夫性假设:即假设隐藏的马尔柯夫链(隐状态序列)在任意时刻 t 的状态只依赖于前一时刻的状态,与其余时刻的状态及观测无关,也与当前时刻 t 无关:
2. 观测独立性假设:即假设任意时刻的观测只依赖于该时刻的马尔柯夫链的状态(观测与隐状态一一对应),与其余观测及状态无关。观测序列彼此之间是独立同分布的(这点相似于朴素贝叶斯的独立同分布假设)

输出独立性假设(即要求观测序列之间是独立同分布的)要求序列数据严格相互独立才能保证推导的正确性,而事实上大多数序列数据不能被表示成一系列独立事件。而条件随机场CRF则使用一种几率图模型,具备表达长距离依赖性交叠性特征的能力,可以较好地解决标注(分类)偏置等问题的优势,并且全部特征能够进行全局归一化,可以求得全局的最优解。机器学习

2)CRF避免了HEMM的标记偏置问题(在进行序列标注时由于训练样本的分布不充分致使的过拟合)

咱们用一个例子来讲明标记偏置问题函数

用Viterbi算法解码MEMM,状态1倾向于转换到状态2,同时状态2倾向于保留在状态2。学习

可是咱们基于训练样本计算获得的解码过程,却不符合Viterbi算法的预期结果:大数据

路径1-1-1-1的几率: 0.4 * 0.45 * 0.5 = 0.09
路径2-2-2-2的几率: 0.2 * 0.3 * 0.3 = 0.018
路径1-2-1-2的几率: 0.6 * 0.2 * 0.5 = 0.06
路径1-1-2-2的几率: 0.4 * 0.55 * 0.3 = 0.066

单纯从训练样本计算获得经验几率可知,最优路径为1-1-1-1。

然而,仔细观察可发现上图中stat1 中每一个结点都倾向于转移到stat2,这明显是和直觉不相符的,同时还发现start3/4/5在这批训练样本的的转移几率为零(终止了)。

这是为何呢?由于状态2能够转换的状态比状态1要多,从而使转移几率下降,即MEMM倾向于选择拥有更少转移的状态。

形成这一现象有很大可能只是由于这批训练样本抽样方式有问题,或者样本数量太少而致使规律分布产生了偏置。咱们若是基于这种不完整的规律分布去进行模型训练学习,获得的模型必定也是不能彻底表达真实的规律自己的。

从HEMM的数学公式上来分析产生这一问题的缘由。

直接看MEMM公式:

P(I|O) = \prod_{t=1}^{n}\frac{ exp(\sum_{a})\lambda_{a}f_{a}(o,i) }{Z(o,i_{i-1})} , i = 1,\cdots,n

∑ 求和的做用在几率中是归一化,可是这里归一化放在了指数内部,管这叫local归一化

HEMM中的viterbi求解过程,是用dp的状态转移公式,由于是局部归一化,因此MEMM的viterbi的转移公式的第二部分出现了问题,致使dp没法正确的递归到全局的最优。

 \delta_{i+1} = max_{1 \le j \le m}\lbrace \delta_{i}(I) + \sum_{i}^{T}\sum_{k}^{M}\lambda_{k}f_{k}(O,I_{i-1},I_{i},i) \rbrace

这就是所谓的标注偏置问题。实际上,形成这一问题的根本缘由是每一个节点分支数不一样,因为MEMM的局部归一化特性,使得转出几率的分布不均衡,最终致使状态的转移存在不公平的状况。

CRF则是利用一种全局的优化思路来定向解决的,即便出现了上图所示的某个状态的next转移几率为1,在训练过程当中也不会得出转移几率为1的模型参数。

3. 3种算法的比较(简易图示)

HMM

HMM模型将标注任务抽象成马尔可夫链,一阶马尔可夫链式针对相邻标注的关系进行建模,其中每一个标记对应一个几率函数。HMM是一种产生式模型,定义了联合几率分布p(x,y) ,其中x和y分别表示观察序列和相对应的标注序列的随机变量。

为了可以定义这种联合几率分布,产生式模型须要枚举出全部可能的观察序列(须要获取全部完整的几率分布),这在实际运算过程当中很困难,因此咱们能够将观察序列的元素看作是彼此孤立的个体, 即假设每一个元素彼此独立(和naive bayes相似),任什么时候刻的观察结果只依赖于该时刻的状态。

上图很好诠释了HMM模型中存在两个假设:一是输出观察值(蓝色)之间严格独立,二是状态的转移过程当中当前状态只与前一状态有关(一阶马尔可夫模型)。

MEMM

HMM模型在大量真实语料中观察序列的场景中会遇到表征力不足的瓶颈。由于观测序列在大数据集下更多的是以一种多重的交互特征形式表现的,观察元素之间普遍存在长程相关性。例如,在命名实体识别任务中,因为实体自己结构所具备的复杂性,利用简单的特征函数每每没法涵盖全部特性,这时HMM的假设前提使得它没法使用复杂特征(它没法使用多于一个标记的特征。),这个时候就须要引入最大熵名。

简单来讲,MEMM把HMM模型和maximum-entropy模型的优势集合成一个统一的产生式模型,这个模型容许状态转移几率依赖于序列中彼此之间非独立的特征上,从而将上下文信息引入到模型的学习和识别过程当中,达到了提升识别的准召率的效果。

上图说明MEMM模型克服了观察值之间严格独立产生的问题,可是因为状态之间的假设理论,使得该模型存在标注偏置问题。

CRF

咱们知道,MEMM并不完美,它存在明显的标记偏置问题。因而CMU的教授JohnLafferty提出了更先进的CRF模型。

CRF模型具备如下特色:

1)CRF在给定了观察序列的状况下,对整个的序列的联合几率有一个统一的指数模型,它具有一个比较吸引人的特性就是其损失函数的凸面性;
(2)CRF具备很强的推理能力,而且可以使用复杂、有重叠性和非独立的特征进行训练和推理,可以充分地利用上下文信息做为特征,还能够任意地添加其余外部特征,使得模型可以获取的信息很是丰富;
(3)CRF解决了MEMM中的标记偏置问题,这也正是CRF与MEMM的本质区别所在,最大熵模型在每一个状态都有一个几率模型,在每一个状态转移时都要进行归一化。若是某个状态只有一个后续状态,那么该状态到后续状态的跳转几率即为1。这样,无论输入为任何内容,它都向该后续状态跳转。而CRF是在全部的状态上创建一个统一的几率模型,这样在进行归一化时,即便某个状态只有一个后续状态,它到该后续状态的跳转几率也不会为1。

上图显示CRF模型解决了标注偏置问题,去除了HMM中两个不合理的假设。固然,模型相应得也变复杂了

0x2:条件随机场简介

条件随机场(conditional random field CRF)是给定一组输入随机变量条件下另外一组输出随机变量的条件几率分布模型,其特色是假设输出随机变量构成马尔科夫随机场。

条件随机场能够用于不一样的预测问题,咱们本文集中精力讨论线性链条件随机场(linear chain conditional random filed),这时,问题变成了由输入序列对输出序列预测的判别模型,形式为对数线性模型,其学习方法一般是极大似然估计或正则化的极大似然估计。

Relevant Link: 

http://www.52ml.net/1709.html

0x3:从一个从例子提及——词性标注问题

咱们从一个具体的例子开始,来对CRM创建一个感性上的认识。

所谓词性标注问题,就是给一个句子中的每一个单词注明词性。好比这句话:“Bob drank coffee at Starbucks”,注明每一个单词的词性后是这样的:“Bob (名词) drank(动词) coffee(名词) at(介词) Starbucks(名词)”。

下面,就用条件随机场来解决这个问题。

如咱们能够这样进行词性标注:“Bob (名词) drank(动词) coffee(名词) at(介词) Starbucks(名词)”:做为一个标注序列,称为l。
同时咱们知道,可选的标注序列有不少种,好比l还能够是这样:“Bob (名词) drank(动词) coffee(动词) at(介词) Starbucks(名词)”
...

咱们的任务是,在这么多的可选标注序列中,挑选出一个最靠谱的做为咱们对这句话的标注。

怎么判断一个标注序列靠谱不靠谱呢?这里就要借助有监督学习的算法了,输入一个训练样本集,获得一个标注序列,使其”最符合训练样本集“中的几率分布,则说明这个标注序列最靠谱。

咱们先从感性层面来讨论这个问题,

就咱们上面展现的两个标注序列来讲,第二个显然不如第一个靠谱,由于它把第2、第三个单词都标注成了动词,动词后面接动词,这在一个句子中一般是说不通的。

假如咱们给每个标注序列打分,打分越高表明这个标注序列越靠谱,咱们至少能够说,凡是标注中出现了动词后面仍是动词的标注序列,要给它负分!!

上面所说的动词后面仍是动词就是一个特征函数,咱们能够定义一个特征函数集合,用这个特征函数集合来为一个标注序列打分,并据此选出最靠谱的标注序列。把集合中全部特征函数对同一个标注序列的评分综合起来,就是这个标注序列最终的评分值。

1. 定义CRF中的特征函数

咱们继续围绕这个例子,讨论CRF中的特征函数定义的问题。
  • 句子s(就是咱们要标注词性的句子)
  • i,用来表示句子s中第i个单词
  • l_i,表示要评分的标注序列给第 i 个单词标注的词性(至关于词性序列的下标)
  • l_i-1,表示要评分的标注序列给第 i-1 个单词标注的词性
它的输出值是 0 或者 1, 0 表示要评分的标注序列不符合这个特征,1 表示要评分的标注序列符合这个特征。这种 0/1 取值的特征函数相似神经网络中的单个神经元。
Note:这里,咱们的特征函数仅仅依靠当前单词的标签和它前面的单词的标签对标注序列进行评判,这样创建的CRF也叫做线性链CRF,这是CRF中的一种简单状况。

1)几个特征函数的例子

围绕词性标注这个例子,咱们来人工定义几个特征函数:
:当l_i是“副词”而且第i个单词以“ly”结尾时,咱们就让f1 = 1,其余状况f1为0。
不难想到,模型通过训练后,f1 特征函数的权重 λ1 应当是正的(向训练样本拟合)。并且 λ1 越大,表示咱们越倾向于采用那些把以“ly”结尾的单词标注为“副词”的标注序列。或者说训练样本中这个规律特征表现地越明显。

:若是i=1,l_i=动词,而且句子s是以“?”结尾时,f2=1,其余状况f2=0。

一样,λ2应当是正的,而且λ2越大,表示咱们越倾向于采用那些把问句的第一个单词标注为“动词”的标注序列。

:当l_i-1是介词,l_i是名词时,f3 = 1,其余状况f3=0。

λ3也应当是正的,而且λ3越大,说明咱们越认为介词后面应当跟一个名词。

:若是l_i和l_i-1都是介词,那么f4等于1,其余状况f4=0。

这里,咱们应当能够想到λ4是负的,而且λ4的绝对值越大,表示咱们越不承认介词后面仍是介词的标注序列。

在实际的工程项目中,特征函数的选择是一个很是重要的过程,它取决于咱们具体的业务场景。例如在入侵检测场景中,咱们可能选取文本ascii序列模型做为特征,这意味着咱们创建了一个先验假设:”正常的文本和异常的文本在ascii序列模式上存在明显的不一致“

2.  对特征函数赋予对应的权重,获得几率表示 - 相似深度神经网络中的激活函数求值过程

定义好一组特征函数后,咱们要给每一个特征函数f_j赋予一个权重λ_j。

而后,只要有一个句子s,有一个标注序列 l,咱们就能够经过对权重的加权计算来获得一个评分值,即对标记序列 l 评分。而特征函数是否激活取决于标记序列当天 l_i 的值是否知足特征条件。

上式中有两个求和,外面的求和用来求每个特征函数f_j评分值的和,里面的求和用来求句子中每一个位置的单词的的特征值的和。

对这个分数进行指数化和标准化(规范化到【0,1】值域中),咱们就能够获得标注序列l的几率值 p(l | s ),以下所示

3. 构建条件随机场CRF的基本要素

为了建一个条件随机场,咱们首先要定义一个特征函数集,每一个特征函数都以整个句子s,当前位置i,位置i和i-1的标签为输入。而后为每个特征函数赋予一个权重,而后针对每个标注序列l,对全部的特征函数加权求和,必要的话,能够把求和的值转化为一个几率值。

Relevant Link:

https://www.jianshu.com/p/55755fc649b1
https://www.cnblogs.com/Dr-XLJ/p/5466856.html
https://www.zhihu.com/question/35866596

 

1. 条件随机场模型

0x1:几率无向图模型

几率无向图模型(probabilistic undirected graphical model),又称为马尔科夫随机场(markov random field),是一个能够由无向图表示的联合几率分布。

1. 几率无向图模型定义

图(graph)是由节点(node)及链接节点的边(edge)组成的集合。节点的边分别记做 v 和 e,节点和边的集合分别记做 V 和 E,图记做 G =(V,E)。无向图是指边没有方向的图。由于理论上几率转移矩阵中全部节点间都是能够互相转移的。

几率图模型(probabilistic graphical model)是由图表示的几率分布。设有联合几率分布 P(Y),是一组随机变量。由无向图 G =(V,E)表示几率分布 P(Y),即在图 G 中,节点表示一个随机变量;边表示随机变量之间的几率依赖关系。

给定一个联合几率分布 P(Y)和表示它的无向图 G。首先定义无向图表示的随机变量之间存在的成对马尔科夫性(pairwise markov property)局部马尔科夫性(local markov property)全局马尔科夫性(global markov property)

1)成对马尔科夫性

设 u 和 v 是无向图 G 中任意两个没有边链接的节点,节点 u 和 v 分别对应随机变量 Yu 和 Yv。其余全部节点为 O,对应的随机变量组是 Yo。成对马尔科夫性是指给定随机变量组 Yo的条件下随机变量 Yu 和 Yv 是条件独立的,即:

2)局部马尔科夫性

是无向图 G 中任意一个节点,W 是与 v 有边链接的全部节点, O 是v,W 之外的其余全部节点。v 表示的随机变量是 Yv,W 表示的随机变量组是 Yw,O 表示的随机变量组是 Yo。局部马尔科夫性是指在给定随机变量组 Yw 的条件下,随机变量 Yv 与随机变量 Yo是独立的,即:

3)全局马尔科夫性

设节点集合 A,B 是在无向图 G 中被节点集合 C 分开的任意节点集合,以下图所示

节点集合 A,B,C 所对应的随机变量组分别是 Ya,Yb,Yc。全局马尔科夫性是指给定随机变量组 Yc 条件下随机变量组 Ya 和 Yb 是条件独立的,即:

以上三种特性都知足一种:

有限依赖特性,超过必定范围的随机变量之间是条件独立的。其实,HMM本质也是一种有限依赖特性。

设有联合几率分布 P(Y),由无向图 G =(V,E)表示,在图 G 中,节点表示随机变量,边表示随机变量之间的依赖关系。若是联合几率分布P(Y)知足成对、局部或全局马尔科夫性,就称此联合几率分布为几率无向图模型(probabilistic undirected graphical model),或马尔科夫随机场(markov random field)。

2. 几率无向图模型的因子分解

对给定的几率无向图模型,咱们但愿将总体的联合几率写成若干子联合几率的乘积的形式,也就是将联合几率进行因子分解,这样便于模型的学习与计算。实际上,几率无向图模型的最大特色就是易于因子分解。

1)团与最大团

无向图 G 中任何两个节点均有边链接的节点子集称为团(clique)。若 C 是无向图 G 的一个团,而且不能再加进任何一个 G 的节点使其成为一个更大的团,则称此 C 为最大团(maximal clique)。

下图表示由4个节点组成的无向图:

图中由2个节点组成的团有5个:{Y1,Y2}、{Y2,Y3}、{Y3,Y4}、{Y4,Y2}、{Y1,Y3};

有2个最大团:{Y1,Y2,Y3}、{Y2,Y3,Y4};

注意,{Y1,Y2,Y3,Y4}不是一个团,由于 Y1 和 Y4 没有边链接,这对应在几率分布中即这2个随机变量之间没有几率依赖关系。

将几率无向图模型的联合几率分布表示为其最大团上的随机变量的函数的乘积形式的操做,称为几率无向图模型的因子分解(factorization)。

给定几率无向图模型,设其无向图为 G,C 为 G 上的最大团,Yc表示 C 对应的随机变量。那么几率无向图模型的联合几率分布 P(Y)可写做图中全部最大团 C 上的函数的乘积形式,即:,其中, Z 是规范化因子(normalization factor):

规范化因子保证 P(Y)构成一个几率分布,函数称为势函数(potential function)。

这里要求势函数必须是严格正的,一般定义为指数函数:

2)Hammerslev-Clifford定理

几率无向图模型的因子分解由Hammerslev-Clifford定理来保证。

几率无向图模型的联合几率分布 P(Y)能够表示为以下形式:

其中,C 是无向图的最大团,Yc是 C 的节点对应的随机变量,是 C 上定义的严格正函数,乘积是在无向图全部的最大团上进行的。

有了几率无向图的基础知识铺垫,咱们接下来讨论条件随机场。

0x2:条件随机场的定义与形式

1. 条件随机场的定义

条件随机场(conditional random field)是在给定随机变量 X 的条件下,随机变量 Y 的马尔科夫随机场。咱们这里主要讨论定义在线性链上的特殊的条件随机场,称为线性链条件随机场(linear chain conditional field)。

线性链条件随机场能够用于标注等问题。这时,在条件几率模型 P(Y | X)中,Y 是输出变量,表示标记序列,X 是输入变量,表示须要标注的观测序列。也把标记序列称为状态序列(在隐马尔可夫模型中标记序列即隐状态序列)。

学习时,利用训练数据集经过极大似然估计或正则化的极大似然估计获得条件几率模型;预测时,对于给定的输入序列 x,求出条件几率最大的输出序列

1)条件随机场 - 通常的条件随机场

设 X 与 Y 是随机变量,P(Y | X)是在给定 X 的条件下 Y 的条件几率分布。若随机变量 Y 构成一个由无向图 G =(V,E)表示的马尔科夫随机场,即:对任意节点 v 成立,则称条件几率分布P(Y | X)为条件随机场。式中 w ~ v 表示在图 G =(V,E)中与节点 v 有边链接的全部节点 w,w != v 表示节点 v 之外的全部节点。

能够看到,条件随机场的定义是一个泛化的随机变量之间有限依赖的关系。同时也能够看到,HMM本质上是随机场的一种形态。

在定义中没有要求 X 和 Y 具备相同的结构。可是在实际使用中,通常假设 X 和 Y 有相同的图结构,

咱们这里只讨论以下所示的线性链条件随机场:

在这种状况下,X = (X1,X2,...,Xn),Y = (Y1,Y2,...,Yn),最大团是相邻两个节点的集合

2)线性链条件随机场定义

设 X = (X1,X2,...,Xn),Y = (Y1,Y2,...,Yn)均为线性链表示的随机变量序列,若在给定随机变量序列 X 的条件下,随机变量序列 Y 的条件几率分布 P(Y | X)构成条件随机场,即知足马尔科夫性:

(即某个隐状态只取决于其所在最大团以及条件变量 X)

则称 P(Y | X)为线性链条件随机场。

在标注问题中,X 表示输入观测序列,Y 表示对应的输出标记序列或状态序列。

2. 条件随机场的参数化形式

根据Hammerslev-Clifford定理(最大团因子分解)定理,能够给出线性链条件随机场 P(Y | X)的因子分解式,各因子是定义在相邻两个节点(对于线性链条件随机场来讲,最大团就是相邻节点的集合)上的函数。

1)线性链条件随机场的参数化形式

设 P(Y | X)为线性链条件随机场,则在随机变量 X 取值为 x 的条件下,随机变量 Y 的取值为 y 的条件几率具备以下形式:

其中,

式中,是特征函数,是对应的权值。Z(X)是规范化因子,求和是在全部可能的输出序列上进行的。

上面式子是线性链条件随机场模型的基本形式,表示给定输入序列 x,对输出序列 y 预测的条件几率。

是定义在边上的特征函数,称为转移特征,依赖于当前和前一个位置;

是定义在节点上的特征函数,称为状态特征,依赖于当天位置;

都依赖于位置,是局部特征函数。

一般,特征函数取值为 1 或0;当知足条件时取值为1,不然为0。

条件随机场彻底由特征函数,和对应的权值肯定。

线性链条件随机场也是对数线性模型(log linear model)

2)关于线性链条件随机场的一个简单的例子

设有一个标注问题:输入观测序列为 X = (X1,X2,X3),输出标记序列为 Y =(Y1,Y2,Y3),Y1,Y2,Y3取值于 {1,2}。

假设特征和对应的权值以下:

这里只写明特征取值为 1 的条件,取值为 0 的条件省略(由于0的结果为0,不影响加和式的结果):

下同:

对给定的观测序列 x,求标记序列为 y = (y1,y2,y3)=(1,2,2)的非规范化条件几率:

P(y1 = 1,y2 = 2,y3 = 2 | x)= exp(1 + 0.2 + 1 + 0.5 + 0.5)

由于只有知足特征条件时才为1,不然为0,因此这里实际上是在进行权值加和,将知足条件(转移特征、状态特征)的权值进行加和。

3. 条件随机场的简化形式

条件随机场还能够由简化形式表示,咱们再来看一下线性链条件随机场的参数化形式:

咱们注意到上式中同一个特征在各个位置都有定义,为了简化,能够对同一个特征在各个位置求和,将局部特征函数转化为一个全局特征函数,这样就能够将条件随机场写成权值向量和特征向量的内积形式,即条件随机场的简化形式。

为了简便说明,首先将转移特征和状态特征及其权值用统一的符号表示。设有 K1 个转移特征,K2 个状态特征,K = K1 + K2,记:

而后,对转移与状态特征在各个位置 i 求和,记做:

表示特征的权值,即:

因而,条件随机场能够简化表示为:

若以 w 表示权值向量,即:

以 F(y,x)表示全局特征向量,即:

则条件随机场能够写成向量 w 与 F(y,x)的内积的形式:

,其中,

4. 条件随机场的矩阵形式

条件随机场还能够由矩阵表示。假设线性链条件随机场,表示对给定观测序列 x,相应的标记序列 y 的条件几率。引进特殊的起点和终点状态标记,这时能够经过矩阵形式表示。

对观测序列 x 的每个位置 i = 1,2,...,n+1,定义一个 m 阶矩阵(m 是标记 yi 取值的个数)

这样,给定观测序列 x,相应标记序列 y 的非规范化几率能够经过该序列 n+1 个矩阵适当元素的乘积表示。

因而,条件几率 =

其中,为规范化因子,是 n+1 个矩阵的乘积的(start,stop)元素:

注意,表示开始状态与终止状态,规范化因子是以 start 为起点,stop 为终点经过状态的全部路径 y1y2...yn的非规范化几率之和。

1)一个简单的例子

给定一个下图所示的线性链条件随机场

观测序列 x,状态序列 y,i = 1,2,3,n = 3,标记,假设 y0 = start = 1,y4 = stop = 1,各个位置的随机矩阵 M1(x)、M2(x)、M3(x)、M4(x)分别是:

目标是求状态序列 y 以 start 为起点 stop 为终点全部路径的非规范化几率及规范化因子。

解:

首先先求从 start 到 stop 的全部路径,对应于

y = (1,1,1)

y = (1,1,2)

y = (1,2,1)

y = (1,2,2)

y = (2,1,1)

y = (2,1,2)

y = (2,2,1)

y = (2,2,2)

各路径对应的非规范化几率分别是:

而后求规范化因子,经过计算矩阵乘积 M1(x)M2(x)M3(x)M4(x)可知,其第一行第一列的元素为:

刚好等于从 start 到 stop 的全部路径的非规范化几率之和。

 

2. 条件随机场算法策略

条件随机场的几率计算问题是给定条件随机场 P(Y | X),输入序列 x 和输出序列 y,计算条件几率以及相应的数学指望的问题。和HMM隐马同样,引进前向-后向向量,递归地计算以上几率及指望值。这样的算法称为前向-后向算法

条件随机场是一种判别式模型,它的策略和其余几率统计机器学习模型同样,即经验风险最小化策略。即咱们须要计算相关联合几率和条件几率的极值。

0x1:前向-后向算法

对每一个指标 i = 0,1,....,n+1,定义前向向量

递推公式为:

又可表示为:

表示在位置 i 的标记为 yi而且到位置 i 的前部分标记序列的非规范化几率,yi 可取的值有 m 个,因此是 m 维列向量。

一样,对每一个指标 i = 0,1,....,n+1,定义后向向量

,又可表示为:

表示为在位置 i 的标记为 yi 而且从 i+1 到 n 的后部分标记序列的非规范化几率。

0x2:几率计算

按照前向-后向向量的定义,很容易计算标记序列在位置 i 是标记 yi 的条件几率,和在位置 i-1 与 i 是标记 yi-1 和 yi 的条件几率:

其中,

0x3:指望值的计算

利用前向-后向向量,能够计算特征函数关于联合分布 P(X,Y)和条件分布 P(Y | X)的数学指望。

特征函数关于条件分布 P(Y | X)的数学指望是:

假设经验分布为,特征函数关于联合分布 P(X,Y)的数学指望是:

有了上式,对于给定的观测序列 x 与标记序列 y,能够经过一次前向扫描计算,经过一次后向扫描计算,从而计算全部的几率和特征的指望。

 

3. 条件随机场的学习算法

咱们上一小结讨论了,咱们须要经过前向后向算法获得以及,接下来从算法工程实现上来讨论如何基于训练数据集进行代数计算。

给定训练数据集,估计条件随机场模型参数的问题,即条件随机场的学习问题。条件随机场模型其实是定义在时序数据上的对数线性模型,其学习方法包括:极大似然估计正则化的极大似然估计

具体的优化实现算法有:改进的迭代尺度法IIS梯度降低法、以及拟牛顿法

0x1:改进的迭代尺度法

已知训练数据集,由此能够经验几率分布,能够经过极大化训练数据的对数似然函数来求模型参数。

训练数据的对数似然函数为:

把条件随机场的函数带入,上式对数似然函数为:

改进的迭代尺度法经过迭代的方法不断优化对数似然函数该变量的下界,达到极大化对数似然函数的目的。

咱们看到,迭代尺度算法能够适用于任何的目标函数,算法自己是一种能够通用的计算框架,它能够适用于任何机器学习目标函数。

0x2:拟牛顿法

条件随机场模型学习还能够应用牛顿法或拟牛顿法,对于条件随机场模型:

学习的优化目标函数(损失函数)是:

其梯度函数是:

1. 条件随机场模型学习的BFGS算法

输入:特征函数 f1,f2,....,fn;经验分布

输出:最优参数值;最优模型

1)选定初始点,取为正定对称矩阵,置 k = 0;

2)计算梯度函数,若 gk = 0,则中止计算;不然转 3);

3)由求出

4)一维搜索:求使得:

5)置

6)计算,若,则中止计算;不然,按下式求出

,其中,

7)置 k = k + 1,转 3)

 

4. 条件随机场的预测算法

条件随机场的预测问题是给定条件随机场 P(Y | X)和输入序列(观测序列)x,求条件几率最大的输出序列(标记序列),即对观测序列进行标注。

条件随机场的预测算法采用 维特比算法

条件随机场向量内积形式为:

因而,条件随机场的预测问题成为求非规范化几率最大的最优路径问题。

这里,路径表示标记序列,其中,

注意,这里只须要计算非规范化几率,而不须要计算几率,能够大大提升效率。为了求解最优路径,将上式写成以下形式:

其中,是局部特征向量。

0x1:条件随机场预测中的维特比算法

首先求出位置 1 的各个标记 j = 1,2,...,m 的非规范化几率:

通常地,由递推公式,求出到位置 i 的各个标记 l = 1,2,...,m 的非规范化几率的最大值,同时记录非规范化几率最大值的路径,

直到 i = n 时终止,这时求得非规范化几率的最大值为

以及最优路径的终点

由此最优路径终点返回

求得最优路径

预测问题本质上就是最大似然估计,在数学上就是求极值。

1. 应用维特比算法求给定输入序列对应的最优输出序列 - 最大似然估计

设有一个标注问题:输入观测序列为 X = (X1,X2,X3),输出标记序列为 Y =(Y1,Y2,Y3),Y1,Y2,Y3取值于 {1,2}。

假设特征和对应的权值以下:

这里只写明特征取值为 1 的条件,取值为 0 的条件省略(由于0的结果为0,不影响加和式的结果):

下同:

利用维特比算法求最优路径问题:

1)初始化:

i = 1,

2)递推:

最优标记序列:

Copyright (c) 2018 LittleHann All rights reserved

相关文章
相关标签/搜索