zoukankan      html  css  js  c++  java
  • 条件随机场(CRF)

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xueyingxue001/article/details/51498968
    声明:

             1,本篇为个人对《2012.李航.统计学习方法.pdf》的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址)。

             2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面。

             3,如果有内容错误或不准确欢迎大家指正。

             4,如果能帮到你,那真是太好了。

             书上首先介绍概率无向图模型,然后叙述条件随机场的定义和各种表示方法,那这里也按照这个顺序来。

    概率无向图模型(马尔可夫随机场)

             其实这个又叫做马尔可夫随机场(MRF),而这里需要讲解的条件随机场就和其有脱不开的关系。

     模型定义

             首先是无向图。那什么是无向图呢?

             其实无向图就是指没有方向的图....我没有开玩笑,无向图真是这玩意。只不过这里我们研究的无向图的细节是:这个图是有节点和连接节点的边组成的集合,像下面这样:

                      

             然后上面的节点表示一个个随机变量,边表示随机变量之间的依赖关系。

             为了方便用数学语言描述,我们把节点和边分别记作v和e,节点和边的集合分别记作V和E,于是图就记作G=(V, E)。

             无向图清楚了,那什么是概率无向图模型?是这样。

             假设有联合概率分布P(Y),Y是属于某个集合的一组随机变量。如果用无向图G=(V, E)表示概率分布p(Y)的话,那在图G中,节点v∈V就表示一个随机变量Yv, Y = (Yv)v∈V;边e∈E表示随机变量之间的概率依赖关系。而如果P(Y)满足成对、局部或全局马尔可夫性的话,就称此联合概率分布为概率无向图模型,或马尔可夫随机场。

             那么问题来了:什么是“成对、局部、全局马尔可夫性”。

             成对马尔可夫性:

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

                                P(Yu,Yv|Yo) = P(Yu|Yo)P(Yv|Yo)

             局部马尔可夫性:

                       设v∈V是无向图G中任意一个节点,W是与v有边连接的所有节点,O是v、W以外的其他所有节点。v表示随机变量是Yv,W表示的随机变量组是YW,O表示的随机变量组是Yo。局部马尔可夫性是指在给定随机变量组YW的条件下随机变量Yv与随机变量组Yo是独立的,即

                                P(Yu,Yv|Yw) = P(Yv|Yw)P(Yo|Yw)

                       在 P(Yo|YW)> 0时,等价地,

                                P(Yv|Yw)= P(Yv|Yw, Yo)

             全局马尔可夫性:

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

                               

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

                                P(YA,YB| YC) = P(YA|YC)P(YB|YC)

             好了,那下面让我们再次总结下概率无向图模型。

             概率无向图模型:

                       假设有联合概率分布P(Y),用无向图G=(V, E)表示,在图G中,节点表示随机变量;边表示随机变量之间的概率依赖关系。如何联合概率分布P(Y)满足成对、局部或全局马尔可夫性的话,就称此联合概率分布为概率无向图模型,或马尔可夫随机场。

             以上是概率无向图模型的定义,而实际上,我们更关心如何求其联合概率分布P(Y)。于是,为了求解给定的概率无向图模型,我们希望将整体的联合概率写成若干个子联合概率的乘积形式,也就是将概率进行因子分界,这样便于模型的学习与计算。而事实上,概率无向图模型的最大特点就是便于因子分解。

     概率无向图模型的因子分解

             首先介绍因子分解时需要了解的两个概念:团与最大团。

             团:无向图G中任何两个结点均有边连接的节点子集成为团。

             最大团:若C是无向图G的一个团,并且不能再加进任何一个G的节点使其成为一个更大的团,则称此C为最大团。

             如下图所示:

                      

             图11.3表示由4个节点组成的无向图。图中有2个节点组成的团有5个:{Y1, Y2},{Y2, Y3}, {Y3, Y4}, {Y4, Y2}, {Y1, Y3}。有两个最大团:{Y1, Y2, Y3和{Y2, Y3, Y4}。而{Y1, Y2,Y3, Y4}不是一个团,因为Y1和Y4没有边连接。

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

             好了,需要了解的定义了解了,那我们就看看如何把这些定义用到联合概率P(Y)上。

             给定概率无向图模型,设其无向图为G,C为G上的最大团,YC表示C对应的随机变量。那么概率无向图模型的联合概率分布P(Y)可写作图中所有最大团C上的函数ΨC(YC)的乘积形式,即:

                      

             其中,Z是规范化因子

                      

             规范化因子保证P(Y)构成一个概率分布。函数函数ΨC(YC)称为势函数。因为要求势函数ΨC(YC)是严格正的,于是通常定义为指数函数:

                      

             概率无向图模型的因子分解由下述定理来保证。

     Hammersley-Clifford定理

                       概率无向图模型的联合概率分布P(Y)可以表示为如下形式:

                               

                       其中,C是无向图的最大团,YC是C的节点对应的随机变量,ΨC(YC)是C上定义的严格正函数,乘积是在无向图所有的最大团上进行的。

    条件随机场(CRF)的定义与形式

             我们再回顾下马尔可夫随机场(MRF),即概率无向图模型。

             马尔可夫随机场对应一个无向图。这个无向图上的每个节点对应一个随机变量,节点之间的边表示节点对应的随机变量之间有概率依赖关系。(因此,MRF的结构其本质反映了我们的先验知识 -- 哪些变量之间有依赖关系需要考虑,哪些可以忽略。)

             然后我们再看看什么是条件随机场(CRF)。

             其实弄懂了MRF之后,CRF就很好理解了,因为如果给定的MRF中每个随机变量下面还有观察值,那么我们的目标就是要确定给定观察集合下的MRF分布,也就是条件分布,而这种条件分布就是条件随机场。

             简单的说,条件随机场(CRF)类似于MRF,只不过CRF比MRF多了一个观察集合,或者说,CRF本质上就是给定了观察值集合的MRF。

             下面给出定义。

     CRF定义

             定义1:条件随机场

             设G=(V,E)是一个无向图,Y={Yv|v∈V}是以G中节点v为索引的随机变量Yv构成的集合。在给定X的条件下,如果每个随机变量Yv服从马尔可夫性,即

                      

             那么条件概率分布P(Y|X)就是一个条件随机场。

             上式中的w ~ v表示在图G=(V, E)中与节点v有边连接的所有节点,w≠v表示v以外的所有节点,Yv,Yu, Yw为w对节点v,u,w对应的随机变量。

            

             需要说明的是:在定义中并没有要求X和Y具有相同的结构(不过,在现实中一般假设X和Y有相同的图结构),这里主要考虑无向图G=(V,E)为如图11.4与11.5所示的线性链的情况:

                      

             即:G=( V={1,2, ..., n}, E={(i, i+1)}) , i = 1, 2, ..., n-1。

             在此情况下:X =(X1, X2, ..., Xn), Y = (Y1, Y2, ..., Yn),最大团是相邻两个结点的集合。

             根据上面的情况,线性链条件随机场有如下定义。

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

             设X = (X1, X2,..., Xn), Y = (Y1, Y2, ..., Yn)均为线性链表示的随机变量序列,若在给定随机变量序列X的条件下,随机变量序列Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔可夫性(见本文最开始的“模型定义”部分):

                       P(Yi| X, Y1, ..., Yi-1, Yi+1, ...., Yn)= P(Yi | X, Yi-1, Yi+1)

                                i= 1, 2, ..., n (在i=1和n时只考虑单边)

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

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

     条件随机场的参数化形式

             上面有定义了,那下面就需要用更精确的方程式来表示线性链条件随机场P(Y|X),即:给出线性链条件随机场的参数化形式。

             先给出定义吧。

             定义:线性链条件随机场的参数化形式

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

                      

             其中,

                      

             式中,tk和sl是特征函数,λk和μl是对应的权值。Z(x)是规范化因子,求和时在所有可能的输出序列上进行的。

    PS:这里是我对11.10式exp中内容的理解。
        之前我们说了“这里主要考虑无向图G=(V,E)为如图11.4与11.5所示的线性链的情况”,这意味着什么呢?这意味着:把P(Y|X)因子分解后,各因子是定义在相邻两个节点上的函数,而这个函数需要既能包括“从上个节点转移到这个节点的情况”又能包括“给出当前节点是什么标记的情况”(还记得在“条件随机场(CRF) - 1 - 简介”中提到的给照片打TAG的例子么?)。
             既然如此,那我就定义:
                       t(yi-1, yi, x, i)表达“在给定观测x的情况下从上个节点yi-1转移到这个节点yi的情况”
                       s(yi, x, i)表达“当前节点yi是不是标记x的情况”
             不过上面只能表达某个节点yi,实际上我们的节点多着呢,有1, 2, ..., i 个,所以给上面两个加上求和符号来表达所有节点的情况,即:
                       
             但这样还不行,为什么?因为我的把这两个函数组合起来,但还记得在“条件随机场(CRF) - 1 - 简介”中提到的给照片打TAG的例子么?在那个例子中有的照片需要根据上一张照片才能确定TAG,有的则不需要,于是在组合的时候,就需要给他们加上权值,来表达这个情况,这时,给这两个函数加上权值之后进行组合,就变成了:
                       
             但!(还没完啊....是啊,还没完=。=)对于yi来说,在未确定其值(在没有给照片打上TAG之前)时它可取的特征值可是从一个集合里取的,这样一来,对于某个节点yi,根据“转移路线的不同、每个转移路线权值的差异”和“特征结合的数量、对应某个特征的可能性(即函数s的权值)”会有多个函数t和函数s,若假设一共有k个函数t和l个函数s,那为了表达所有的情况,就需要对这k和函数t和l个函数s分别求和,即:
                      
             式11.10和式11.11是线性链条件随机场模型的基本形式,表示给定输入序列x,对输出序列y预测的条件概率。

             式11.10和式11.11中

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

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

             tk和sl都依赖于位置,是局部特征函数。通常,特征函数tk和sl取值为1或0;当满足特征条件时取值为1,否则为0.条件随机场完全有特征函数tk,sl和对应的权值λk,μl确定。

             线性条件随机场也是对数线性模型。

     例子

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

             假设特征tk,sl和对应的权值λk,μl如下:

                      

             其中,上式代表着特征值为1的条件,即:yi-1= 1, yi=2, x, i = 2, 3 时特征值取1。而特征值取0的条件被省略了。

                       PS:如果写全的话是这样:

                               

             下面同理:

                      

             于是对给定的观测序列x,求标记序列为y =(y1, y2, y3) = (1, 2, 2)的非规范化条件概率(即没有除以规范化因子的条件概率)

             解:

                       由式11.10得,线性链条件随机场模型为:

                                (式1)

                       于是对给定的观测序列x,标记序列y=(1, 2,2)的非规范化条件概率为

                               

    PS1:上面那些t啦s啦,其实就是在表示下图:

    PS2:原文中这样就结束了,中间步骤完全没有,应该是作者感觉中间步骤根本没必要给出吧。
    嘛,总之不管原文了,我自己是手动算了一遍,下面是我自己总结的步骤。
    首先,(式1)应该不用再解释了(如果你真是认真的看了我总结的之前这些条件随机场的内容还不理解的话....请告诉我你哪里不理解,我真的有些好奇了)。
    于是在(式1)的基础上,我们先遍历k,在遍历i。
    k=1,i=1时:
      函数t没有特征取值为1的条件
      函数s中的s1的特征取值为1,且s1中是y1=1,和标记序列y=(1, 2, 2)的y1一样,满足条件,于是当前总权值 =μ1 = 1.
    k=1,i=2时:
      函数t中的t1的特征取值为1,且t1中是y1 = 1, y2 = 1,和标记序列y=(1, 2, 2)的y1一样,满足条件,于是当前总权值为2.
    同理:
      k=2,i=2时,有s2符合;
      k=4,i=3时,有s4符合;
      k=5,i=3时,有t5符合。
    将上面符合条件的函数的权值加起来就是3.2,也就是exp(3.2)中的那个数了。
     

     条件随机场的简化形式

             虽然上面的11.10已经可以表达条件随机场,但写起来还是蛮复杂的,于是为了让式子更简单,就有了条件随机场的简化形式,即:

                       设有K1个转移贴纸,K2个状态特征,K=K1+K2,记:

                               

                       然后,对转移与装填特征在各个位置i求和,记做

                               

                       用wk表示特征fk(y,x)的权值,即:

                               

                       于是,条件随机场11.11~ 11.12 可表示为

                               

                       若以w表示权值向量,即

                               

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

                               

                       则条件随机场可以写成向量w与F(y, x)的内积的形势:

                               

     条件随机场的矩阵形式

             假设Pw(y|x)是由式11.15 ~ 11.16

                      

             给出的线性链条件随机场,表示对给定观测序列x,相应的标记序列y的条件概率。引进特殊的起点和终点状态标记y0 = start,yn+1 = stop,这时Pw(y|x) 可以通过矩阵形式表示。

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

                      

             这样给定观测序列x,标记序列y的非规范化概率可以通过n+1个矩阵的乘积

                      

             表示。

             于是,条件概率Pw(y|x)是

                      

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

                      

             注意,y0= start,yn+1 = stop表示开始状态与终止状态,规范化因子Zw(x)是以start为起点stop为重点通过状态的所有路径y1y2...yn的非规范化概率

                      

             之和。

             下面通过一个例子来说明“范化因子Zw(x)是以start为起点stop为重点通过状态的所有路径y1y2...yn的非规范化概率之和”这个事实

     例子

                      

                       (PS:图中的红色字体是我自己标注为了说明之后给出的四个随机矩阵的。)

           给定一个如上图所示的线性链条件随机场,观测序列x,状态序列y,i=1,2,3,n=3,标记yi∈{1,2},假设y0=start=1,y4=stop=1,各个位置的随机矩阵M1(x),M2(x),M3(x),M4(x)分别是

                      

             试求状态序列y以start为起点stop为终点所有路径的非规范化概率及规范化因子。

             解:

                       图11.6从start到stop对应于y=(1,1,1),y=(1,1,2), ..., y=(2,2,2)个路径的非规范化概率分别是:

                                a01b11c11,a01b11c12,a01b12c21,a01b12c22

                                a02b21c11,a01b21c12,a02b22c21,a02b22c22

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

                                a01b11c11+ a01b11c12 + a01b12c21+ a01b12c22

                                         +a02b21c11 + a01b21c12+ a02b22c21 + a02b22c22

                       恰好等于从start到stop的所有路径的非规范化概率之和,即规范化因子Z(x)。

    参考资料:

             http://wenku.baidu.com/view/bbd57f82fc4ffe473268ab59.html
    ---------------------
    作者:血影雪梦
    来源:CSDN
    原文:https://blog.csdn.net/xueyingxue001/article/details/51498968
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Android学习笔记03:学习过程中碰到的一些问题及解决方法
    写于莫言获得诺贝尔文学奖之际
    Windows环境下QT学习笔记01:QT及QT Creator的下载及安装
    Android学习笔记02:AndroidManifest.xml源码
    Android学习笔记01:开发环境搭建
    怀念我的大学四年
    喜获TI MSP430 LaunchPad开发板
    Win7下VS2008破解方法
    手把手教你把Vim改装成一个IDE编程环境
    顺序线性表
  • 原文地址:https://www.cnblogs.com/jfdwd/p/11173423.html
Copyright © 2011-2022 走看看