本文是李航老师《统计学习方法》第十一章的笔记,欢迎大佬巨佬们交流。
主要参考博客:
https://www.cnblogs.com/YongSun/p/4767734.html
主要内容:
1. 概率无向图模型
2. 条件随机场的定义与形式
3. 条件随机场的概率计算问题
4. 条件随机场的学习算法
5. 条件随机场的预测算法
条件随机场(conditional random field, CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。条件随机场可以用于不同的预测问题,本章主要讲述线性链(linear chain)条件随机场在标注问题的应用,这时问题变成了由输入序列对输出序列预测的判别模型,形式为对数线性模型,其学习方法通常是极大似然估计或正则化的极大似然估计。
1. 概率无向图模型
概率无向图模型(probabilistic undireoted graphical model),又称为马尔可夫随机场(Markov random field),是一个可以由无向图表示的联合概率分布。
(1)模型定义
图(graph):由结点(node)及连接结点的边(edge)组成的集合。结点和边分别记作 v 和 e,结点和边的集合分别记作 V 和 E,图记作G=(V,E)。无向图是指边没有方向的图。
概率图模型(probabilistic graphical model):由图表示的概率分布。设有联合概率分布P(Y),Y是一组随机变量。由无向图G=(V,E)表示概率分布P(Y),即在图G中,每个结点 v 表示一个随机变量;每条边e表示随机变量之间的概率依赖关系。
给定一个联合概率分布P(Y)和表示它的无向图G,有如下几个概念:
成对马尔可夫性:设u和v是无向图G中任意两个没有边连接的结点,结点u和v分别对应随机变量Yu和Yv,其他所有结点为O,对应的随机变量组是Yo。成对马尔可夫性是指给定随机变量组Yo的条件下随机变量Yu和Yv是条件独立的,即:
局部马尔可夫性:设v是无向图G中任意一个结点,W是与v有边连接的所有结点,O是v, W以外的其他所有结点。分别表示随机变量Yv,以及随机变量组Yw和Yo。局部马尔可夫性是指在给定随机变量组Yw的条件下随机变量Yv与随机变量组Yo是独立的,即:。
局部马尔可夫性图示:
全局马尔可夫性:设结点集合A, B是在无向图G中被结点集合C分开的任意结点集合,如图11.2所示。结点集合A, B和C所对应的随机变量组分别是YA,YB和YC。全局马尔可夫性是指给定随机变量组YC条件下随机变量组YA,YB是条件独立的,即:
(个人理解:全局马尔可夫性是对局部的扩展,相当于把中心点扩展成了点集合)
概率无向图:设有联合概率分布P(Y),由无向图G=(V,E)表示,在图G中,结点表示随机变量,边表示随机变量之间的依赖关系。如果联合概率分布P(Y)满足成对、局部或全局马尔可夫性,就称此联合概率分布为概率无向图模型(probability undirected graphical model),或马尔可夫随机场( Markovrandom field )。
对给定的概率无向图模型,我们希望将整体的联合概率写成若干子联合概率的乘积的形式,也就是将联合概率进行因子分解,这样便于模型的学习与计算。事实上,概率无向图模型的最大特点就是易于因子分解。
(2)概率无向图模型的因子分解
团与最大团:无向图G中任何两个结点均有边连接的结点子集称为团(clique)。若C是无向图G的一个团,井且不能再加进任何一个G的结点使其成为一个更大的团,则称此C为最大团(maximal clique)。如下图所示:
图11.3表示由4个结点组成的无向图。图中由2个结点组成的团有5个:{Y1,Y2},{Y3,Y4},{Y2,Y3},{Y3,Y4},{Y4,Y2}和{Y1,Y3}。有2个最大团{Y1,Y2,Y3}和{Y2,Y3,Y4}。而{Y1,Y2,Y3,Y4}不是一个团,因为Y1和Y4没有边连接。
无向图的因子分解:将概率无向图模型的联合概率分布表示为其最大团上的随机变量的函数的乘积形式的操作,称为概率无向图模型的因子分解(factorization)。
给定概率无向图模型,设其无向图为G,C为G上的最大团,YC表示C对应的随机变量。那么概率无向图模型的联合概率分布P(Y)可写作图中所有最大团C上的函数的乘积形式,即:,其中,Z是规范化因子,。规范化因子P(Y)保证P(Y)构成一个概率分布,函数称为势函数,。
概率无向图模型的因子由以下定理来保证:
Hammersley-CIifford定理:概率无向图模型的联合概率分布P(Y)可以表示为如下形式:
C是无向图的最大团,YC是C的结点对应的随机变量,是C上定义的严格正函数,乘积是在无向图所有的最大团上进行的。
2. 条件随机场的定义与形式
(1)条件随机场的定义
条件随机场是给定随机变量X条件下,随机变量Y的马尔可夫随机场。在条件概率模型P(Y|X)中,Y是输出变量,表示标记序列,也把标记序列称为状态序列,X是输入变量,表示需要标注的观测序列。学习时,利用训练数据集通过极大似然估计或正则化的极大似然估计得到条件概率模型;预测时,对于给定的输入序列x,求出条件概率最大的输出序列。
条件随机场:设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以外的所有结点,Yv,Yu与Yw为结点v,u与w对应的随机变量。
现实中,一般假设X和Y有相同的图结构。线性链条件随机场的情况为:
在此情况下,最大团是相邻两个结点的集合。如下图所示:
线性链条件随机场:设X=(X1,X2,...,Xn),Y=(Y1,Y2,...,Yn)为线性链表示的随机变量序列,若在给定随机变量序列X的条件下,随机变量序列Y的条件概率分布P(Y I X)构成条件随机场。即满足马尔可夫性
则称P(Y I X)为线性链条件随机场。
(2)条件随机场的参数化形式
线性链条随机场的参数化形式:设P(Y|X)为线性链条随机场,则在随机变量X取值为x的条件下,随机变量Y取值为y的条件概率具有如下形式:
和是特征函数,和是对应的权值,Z(x)是规范化因子,求和是在所有可能的输出序列上进行的。是定义在边上的特征函数,称为转移特征,依赖于当前和前一个位置,是定义在结点上的特征函数,称为状态特征,依赖于当前位置,和都依赖于位置,是局部特征函数,通常,特征函数和取值为1或0,当满足特征条件时取1,否则为0,条件随机场完全由特征函数,和对应的权值、确定。
线性链条件随机场也是对数线性模型。对于,的理解例子如下:
上题的思路是:把标记y=(1,2,2)分别带入上式的t1-t5以及s1-s4的条件中判断,若满足,则该式取1,再乘以权值,则最后得到的是权值的大小,例如,y1=1,y2=2,满足条件t1,因此t1那部分式子结果为1,同理,t4 =0.2,s1=1,s2=0.5,s4=0.5,其他均为0,因此最后结果为3.2。
(3)条件随机场的简化形式
可以对同一个特征在各个位置求和,将局部特征函数转化为一个全局特征函数,这样就可以将条件随机场写成权值向量和特征向量的内积形式,即条件随机场的简化形式。
首先将转移特征和状态特征及其权值用统一的符号表示,设有K1个转移特征,K2个状态特征,K=K1+K2,记:
然后,对转移与状态特征在的各个位置i求和,记作:
用wk表示特征的权值,即:
于是,条件随机场可表示为:
则条件随机场可以写成w与F(y,x)的内积形式:
(4)条件随机场的矩阵形式
条件随机场还可以用矩阵表示,假设条件随机场,则:
对于观测序列x的每一个位置i=1,2,...,n+1,定义一个m阶矩阵(m是标记yi的取值个数):
这样,给定观测序列x,标记序列y的非规范化概率可以通过n+1个矩阵的乘积表示,于是,条件概率是:
其中,是规范化因子,是n+1个矩阵的乘积元素:,是以start为起点,stop为终点的通过状态的所有路径y1,y2,...yn的非规范化概率之和。如下例所示:
3. 条件随机场的概率计算问题
条件随机场的概率计算问题是给定条件随机场P(YIX),输入序列x和输出序列Y,计算条件概率P(Yi=yi | x ),P(Yi-1=yi-1,Yi=yi | x)以及相应的数学期望的问题。可以像隐马尔可夫模型那样引进前向-后向算法。
(1)前向-后向算法
对于每个指标i=0,1,...,n+1,定义前向向量:
表示在位置i的标记是yi并且到位置i的前部分标记序列的非规范化概率,yi可取的值有m个,所以是m维列向量。
同样,对每个指标i = 0,1,...,n+1,定义后向向量:
表示在位置i的标记是yi并且到位置i+1的后部分标记序列的非规范化概率。
(2)概率计算
按照前向-后向向量的定义,很容易计算标记序列在位置i是标记yi的条件概率和在位置i-1与i是标记和的条件概率:
(3)期望值计算
特征函数关于条件分布P(Y|X)的数学期望是:
假设经验分布为,特征函数关于联合分布P(X,Y)的数学期望是:
4. 条件随机场的学习算法
(1)改进的迭代尺度法
已知训练数据集,由此可知经验概率分布为,可以通过极大化训练数据的对数似然函数来求模型参数:
当Pw是一个条件随机场模型时,对数似然函数为:
改进的迭代尺度法通过迭代的方法不断优化对数似然函数改变量的下界,达到极大化对数似然函数的目的。
假设模型当前参数向量为,向量的增量为:
关于转移特征tk的更新方程为:
关于状态特征st的更新方程:
这里,T(x,y) 是数据(x,y)中出现所有特征数的总和:
算法描述如下:
S算法:上述T(x,y)表示数据(x,y)中的特征总数,对不同的数据(x,y)取值可能不同,为了处理这个问题,有了S算法。
式中,S是一个常数,选择足够大的S可使对于所有数据(x,y),都有s(x,y)大于等于0,这事特征总数可取S。
因此,对于转移特征的更新方程是:
对于状态特征st的更新方程是:
T算法:在算法S中,要S足够大,这样一来每步的迭代增量会变大,收敛会减慢,为了解决这一问题,有T算法。
利用前向-后向公式,可得
这时,关于转移特征参数的更新方程可以写成:
关于状态特征参数的参数更新方程可以写为:
(2)拟牛顿法
条件随机场模型的学习还可以应用牛顿法,对于条件随机场模型:
算法描述如下:
5. 条件随机场的预测算法
条件随机场的预测问题是给定条件随机场P(Y | X)和输入序列(观测序列)x,求条件概率最大的输出序列(标记序列) y*,即对观测序列进行标注。条件随机场的预测算法是著名的维特比算法(详见https://blog.csdn.net/zl3090/article/details/83152067)。
根据条件随机场的向量形式,有:
于是,条件随机场的预测问题成为求非规范化概率最大的最优路径问题:
这里,路径表示标记序列,其中:
维特比算法的描述如下:
例子如下;