机器学习之条件随机场

  CRF是一种灵活的框架,它包含了用于视觉识别的各类各样的特征,特别的,CRF被用于学习低级(颜色和边缘)线索的最佳组合和预学习高级模块(基于部件检测器,bag-of-words分类器)对特定视觉识别问题(eg.图像分割)中图像模型提供推理功能。算法

  学习条件随机场以前,须要了解几率图模型的相关知识。框架

  几率图模型

  几率图模型是一类用结构表达各属性之间相关关系的几率模型,通常的,图中的一个结点表示一个或一组随机变量,结点之间的边则表示变量间的相关关系,从而造成了一张‘变量关系图’。若使用有向的边来表达变量之间的依赖关系,这样的关系图称为贝叶斯网或有向图模型,若使用无向边,则称为马尔科夫网或无向图模型机器学习

  1.隐马尔可夫模型(HMM)

  隐马尔可夫模型(hidden Markov Model,HMM)是结构最简单的一种贝叶斯网,主要用于时序数据建模,在语音识别和天然语言处理上有着普遍的应用。在HMM中变量分为两组,观测变量和状态变量(隐变量),状态变量通常未知,好比在高斯模型中,某一种样本的分布是参数为多少的高斯模型,这个参数就是隐变量。观测变量是能够观测到的值,通常为已知的输出值。在隐马尔可夫模型中,变量之间的依赖关系遵循如下规则:函数

  1)在任一时刻,观测变量的取值仅依赖于状态变量,即xt由yt肯定,与其余状态变量及观测变量的取值无关。学习

     2)t时刻的yt仅依赖于t-1时刻的状态yt-1,与前t-2个个状态无关,这就是马尔可夫链,即:系统下一时刻的状态仅由当前状态决定,不依赖于以往的任何状态。spa

                                                                              y1,y2...yn表示状态变量,x1,x2..xn表示观测变量3d

  基于上述的依赖关系,隐马尔可夫模型中全部变量的联合几率以下:blog

  状态变量与它的前一个变量有直接的关系。状态变量的取值存在一个几率值,在此状态变量的条件下观测变量的取值也存在一个几率值事件

  容易看出,想要肯定一个HMM模型须要如下参数:it

  1)状态转移几率矩阵:从当前状态转移到下一个状态的几率矩阵,一般记为A=[aij]N*N

               

    表示在任意时刻t,若状态为si,则在下一时刻为sj的几率

  2)根据状态输出观测值几率矩阵,一般记为B=[bij]N*M

    

   bij表示在任意时刻t,若状态为si,则观测值oj被获取的几率

  3)初始状态几率,模型在初始时刻各状态出现的几率,一般记为π=(π1,π2,...,πN):

         πi = p(y1=si

    表示模型的初始状态为si的几率。

当肯定了一个HMM模型的状态空间,观测空间,初始状态几率后,便按照下面的规则生成观测值序列:

  (1)设置t=1,并根据初始状态几率π选择初始状态y1,(根据初始状态几率向量)

  (2)根据状态yt和输出观测几率B选择观测变量取值xt,(由状态产生观测值)

  (3)根据状态yt和状态转移矩阵A转移模型状态,即肯定yt+1,(状态转移几率矩阵)

  (4)若t<n,(n表示状态数或者观测变量的数目),设置t=t+1,并转到第(2)步,不然中止

其中 yt∈{s1,s2,..,sN} 和 xt∈{o1,o2,...,oM}分别为第t时刻的状态和观测值

  在实际应用中,HMM模型常被关注的三个问题:

  (1)给定模型 λ=[A,B,π],如何有效计算其产生观测序列x={x1,x2,...,xn}的几率P(x|λ),或者说,如何评价模型与观测序列之间的匹配程度?

  (2)给定模型 λ=[A,B,π]和观测序列 x={x1,x2,...,xn},如何找到与此观测序列最匹配的状态序列 y={y1,y2,...,yn},或者说,如何根据观测序列推断出隐藏的模型状态。

  (3)给定观测序列 x={x1,x2,...,xn},如何调整模型参数 λ=[A,B,π]使得该序列出现的几率p(x|λ)最大,或者说,如何训练模型是其最好的描述观测数据(EM算法:指望值最大算法,使用最大似然估计)

  1.1 HMM评估

  HMM评估问题指的是:给定了模型的三个参数与观测值序列,求该观测值序列出现的几率。例如:对于赌场问题能够根据骰子掷出的结果序列来计算该结果序列出现的可能性,若小几率事件发生了,则可认为赌场的骰子有做弊的可能。解决该问题使用的前向算法(步步为营,自底向上的方式逐步增长序列的长度,直到得到目标几率值),在前向算法中,定义了一个前向变量,即给定观察者序列且t时刻的状态为si的几率:

 

 

   递推关系和终止条件以下:

  (我的理解)在递推关系中,a为状态转移矩阵,a(i,j):从si这个状态到sj这个状态,表示给定的观察者序列且t时刻的状态为si的几率,是一个联合几率,表示t时刻为si的几率乘上转移到下一个状态的几率,可是在前向变量里面还包含着一个观察者序列。求和表示把前j个状态的几率值加起来,最后乘上观测值几率(在第j个状态下,观测值的几率),最终结做为第t+1个时刻的前向变量。 

  终止条件:到达最后的一个状态变量或者观测变量。

  根据以上思路,可使用动态规划法,从最小的子问题开始,经过填表格的形式一步步的计算目标结果。

  1.2 HMM解码问题

  HMM解码问题指的是:给定模型的三个参数与观测值序列,求可能性最大的状态序列。如,在语音识别问题中,人说话造成的数字信号对应着观测值序列,对应的具体文字则是状态序列,从数字信号转化为文字正是对应着根据观测值序列推断最有可能的状态序列。(解决该问题使用的是Viterbi算法,与前向算法十分相似,Viterbi算法定义了一个Viterbi变量,也是采用动态规划的方法,自底向上逐步求解。)

  Viterbi算法公式:

 

   1.3 HMM学习问题

  HMM学习问题指的是:给定观测值序列,如何调整模型的参数使得该序列出现的几率最大。这便转化为机器学习问题,即从给定的序列中学习出一个HMM模型,这也正是EM算法的经典案例之一(在EM算法中采用的是最大似然估计)。其思想为:对于给定的观测值序列,若是咱们可以按照序列潜在的规律来调整模型的三个参数,则可使得该序列出现的可能性最大。假设状态序列已知,则很容易计算出该序列最契合的模型参数:

   公式的我的理解:

    (1):状态1到其余状态的值,根据x=y,等于1,不然等于0,这种规则肯定的

                                                            

    (2):aij表示状态转移几率矩阵,而仍表示状态转移矩阵

 

 

 

    (3):Q中由状态qj输出vk的次数/Q到qj的次数

 

  但通常状态值序列都是不可观测的,且即便给定观测值序列与模型参数,状态序列仍热遭遇组合爆炸。,所以上面的统计方法行不通,状态值序列看做为隐变量,这时即可以考虑使用EM算法来对该问题进行求解:(将序列拆分为两段)

  (1)首先对HMM模型的三个参数进行随机初始化

  (2)根据模型的参数与观测值序列,计算t时刻状态为i且t+1时刻状态为j的几率以及t时刻状态为i的几率。

 

 

 

 

   (3)接着即可以对模型的三个参数进行从新估计:

 

 

   (4) 重复步骤2-3,直至三个参数值收敛,使获得了最终的HMM模型

   2 马尔可夫随机场(MRF)

  马尔可夫随机场是是典型的马尔可夫网,是一种著名的无向图模型,图中的每一个结点都表示一个或一组变量,结点之间的边表示两个向量之间的依赖关系。马尔可夫随机场有一组势函数,也称因子,这是定义在变量子集上的非负实函数,主要用于定义几率分布函数

  马尔可夫随机场:对于图中结点一个子集,若其中任意两结点间都有边链接,则称该结点子集为一个团,若在一个团中,加入另外任何一个结点都再也不造成团,则称该团为极大团,换言之,极大团就是不能被其余团所包含的团。

  在马尔可夫随机场中,多个变量之间的联合几率分布能基于团分解为多个因子的乘积,每一个因子仅与一个团相关。具体来讲,对于n个变量x={x1,x2,...,xn},全部团构成的集合为C,与团Q∈C对应的变量集合记为xQ,则联合几率P(x)定义为

  

  x(Q)为变量的集合,φ(Q)为与团Q对应的势函数,用于对团Q中的变量关系进行建模,是定义几率分布的函数,Z表示规范化因子,以确保P(x)是被正肯定义的几率,在实际中,计算Z比较困难,但许多任务中不需得到Z的精确值。

  例如,如下图是一个简单的马尔可夫随机场:

 

 

   极大团:{x1,x2},{x2,x5,x6},{x2,x4},{x1,x3},{x3,x5},联合几率P(x)定义为:

 note:势函数φ256(x2,x5,x6)定义在极大团{x2,x5,x6}上,因为它的存在,使咱们不需再为团{x2,x5},{x2,x6},{x5,x6}构建势函数。

  在马尔可夫随机场中,如何获得条件独立性呢,借助分离的概念,以下图,若从结点集A的结点到结点集B的结点,则必须通过结点集C中的结点,则称结点集A和B被结点集C分离,C称为分离集,对马尔可夫随机场,有:

   全局马尔可夫性:给定两个变量子集的分离集,则这两个变量子集条件独立。

 

 

   局部马尔可夫性:给定某变量的邻接变量,则该变量与其余变量条件独立。

  形式化表示:令V为图的结点集,n(v)为结点v在图上的邻接点,n*(v)=n(v)∪{v},有xv⊥xV\n*(v)|xn(v),  xv\n*(v)表示结点中除去n*(v),这个结点。eg,在图14.4中:xa的邻接变量为xc,则xa与xb在xc的条件下独立

   成对马尔可夫性:给定全部其余变量,两个非邻接变量条件独立

  形式化表示:令图中的结点集和边集分别为V和E,对图中的两个结点u和v,若<u,v>∉E,则xu⊥xv|xV\<u,v>,xV\<u,v>表示除去u和v以外的其余顶点

   3 条件随机场(CRF)

   隐马尔可夫模型和马尔可夫随机场都属于生成式模型(对联合几率进行建模),条件随机场则是对条件分布进行建模。CRF试图对多个变量在给定观测值序列后的条件几率进行建模,若x={x1,x2,...,xn}为观测序列,y ={y1,y2,...,yn}为与之相应的标记序列,则条件随机场的目标是构建条件几率模型即 P(y|x),标记变量y能够上结构型变量,即份量之间具备某种相关性。eg 在天然语言处理的词性标注任务中,观测序列为语句(即单词序列),标记为相应的词性序列,具备线性序列结构,以下图(a),在语法分析任务中,输出标记则是语法树,具备树形结构,以下图(b)。

 

  令图 G=<V,E>表示结点与标记变量y中元素一一对应的无向图,yv表示与结点V对应的标记变量,n(v)表示结点v的邻接结点。若图中的每一个结点yv都知足马尔可夫性,即

 

 则(y,x)构成一个条件随机场。

  图G可具备任意结构,在实际应用中,尤为对标记序列建模时,最经常使用的还是以下图的链式结构,即链式条件随机场(chain-structured CRF),下图是咱们经常使用的链式条件随机场,其主要包含两种关于标记变量的团,即单个标记变量{yi}以及相邻的标记变量{yi-1,yi},与马尔可夫随机场定义联合几率相似,CRF也经过团以及势函数的概念来定义条件几率P(y|x)

   经过引入两类特征函数即可以定义出目标条件几率:

 公式解读:

   表示定义在观测序列的两个相邻标记位置上的转移特征函数,用于刻画相邻标记变量之间的相关关系以及观测序列对他们的影响,

   表示在观测序列的标记位置i上的状态特征函数,用于刻画观测序列对标记变量的影响,λj和uk为参数,z为规范因子。

  例如,词性标注:如何判断给出的标注序列靠谱不靠谱,转移特征函数主要断定两个相邻的标注是否合理,例如,动词+动词语法不通,状态特征函数断定观测值与对应的标注是否合理,例如:ly结尾的词-->副词较合理。所以咱们能够定义一个特征函数集合,用这个特征函数集合来为一个标准序列打分,根据此选出靠谱的标注序列。每个特征函数均可以用来为一个标准序列评分,把集合中全部特征函数对同一个标注序列的评分综合起来,就是这个标注序列最终的评分值。特征函数是一些经验的特性。

相关文章
相关标签/搜索