首页 理论教育支持向量机优化算法

支持向量机优化算法

【摘要】:支持向量机是机器学习中的一项新技术,是借助于最优化方法来解决机器学习问题的新工具,开始成为克服维数灾难和过学习等困难的强有力的手段。支持向量机方法建立在统计学理论的VC维理论和结构风险最小原理基础之上,根据有限样本在模型的复杂性和学习能力之间寻求最佳折中,以期获得最好的推广能力。支持向量机正是这样一种努力最小化结构风险的算法。这个归一化的结果便是支持向量机的几何间隔。

随着科学技术的飞速发展,以及计算机、互联网的日益普及,越来越多的复杂、非线性、高维度数据需要进行分析和处理,这无疑对传统的统计学方法提出了严峻的挑战。

从数据中发现知识是分析复杂数据、建立决策系统的基石,而模式分析和回归分析则是知识发现中的重要内容,也是处理许多其他问题的核心。支持向量机是机器学习中的一项新技术,是借助于最优化方法来解决机器学习问题的新工具,开始成为克服维数灾难和过学习等困难的强有力的手段。它在解决小样本、非线性及高维度模式识别中表现出许多优势,并能够推广应用到函数拟合等其他机器学习问题中。

传统统计学研究的内容是样本无穷大时的渐进理论,即当样本数据趋于无穷多时的统计性质,而实际问题中的样本数据往往是有限的。因此,假设样本数据无穷多,并依此为基础推导出的各种算法很难在样本数据有限时取得理想的应用效果。当样本数据有限时,本来具有良好学习能力的学习机器有可能表现出很差的泛化能力。

支持向量机方法建立在统计学理论的VC维理论和结构风险最小原理基础之上,根据有限样本在模型的复杂性和学习能力之间寻求最佳折中,以期获得最好的推广能力。其中,模型的复杂性指对特定训练样本的学习精度,学习能力是指无错误地识别任意样本的能力。

支持向量机的定义是,根据给定的训练集:

T={(x1,y1),(x2,y2),…,(xl,yl)}∈(X×Y)l

其中,xi∈X=Rn,X称为输入空间,输入空间中的每一个点xi由n个属性特征组成,yi∈Y={-1,1},i=1,…,l。寻找Rn上的一个实值函数g(x),以便用分类函数:

f(x)=sgn(g(x))

推断任意一个模式x相对应的y的值的问题为分类问题。

在介绍结构风险最小(structural riskminimization)原理之前,首先对机器学习的本质做简要介绍。

机器学习本质上就是一种对所研究问题真实模型的逼近,通常会假设一个近似模型,然后根据适当的原理将这个近似模型不断逼近真实模型。毫无疑问的是,真实模型一定是不知道的,所以所选择的近似模型与真实模型之间究竟有多大的差距也就无从得知了,这也就引进了结构风险最小原理。

这个近似模型与真实模型之间的误差,通常称之为风险。在选择出一个近似模型之后,由于真实模型的未知性,所以真实误差也就无从得知,但是可以用某些可以掌握的量来逼近它。最直观的想法就是使用分类器在样本数据上的分类结果与真实结果之间的差值来表示,这个差值统计上称之为经验风险Remp(W)。

在过去的机器学习方法中,通常将经验风险最小化作为努力的目标,但是在实际的使用过程中却看到了这一方法的不足。通常很多分类函数能够在样本集上轻易达到百分之百的正确率,但是在投入实际具体问题中后却是错误百出,即模型无推广能力。在出现上述问题后,大家不难发现,由于所取得的样本数相对于现实世界的总体来说是非常渺小的,经验风险最小化原则只在占很小比例的样本上做到没有误差,但不能保证在更大比例的实际总体上也没有误差,所以这便是使用经验风险最小化原则建立的模型无推广能力的原因。

统计学习因而引入了泛化误差界的概念。所谓泛化误差界是指真实风险应该由两部分内容刻画:一是经验风险,代表了分类器在给定样本上的误差;二是置信风险,代表了我们在多大程度上可以信任分类器在未知样本上分类的结果。

泛化误差界的公式表示如下:

R(W)≤Remp(W)+φ(n/h)

式中,R(W)是真实风险,Remp(W)是经验风险,φ(n/h)是置信风险。统计学习的目标从经验风险最小化变为了寻求经验风险与置信风险之和最小化,即结构风险最小化。

支持向量机正是这样一种努力最小化结构风险的算法。

在了解函数间隔及接下来将要介绍的几何间隔之前,首先应了解Logistic回归所使用的回归模型,通过对Logistic回归模型的相应替换,得到支持向量机模型,并讨论支持向量机模型中的函数间隔及几何间隔。

在支持向量机模型中使用的结果标签是y=-1和y=1,以此替换在Logistic回归中使用的y=0和y=1;同时将系数θ替换由W和b表示,即以前的θTx=θ01x12x2+…+θnxn(认为x0=1),替换θ0为b,后面的θ1x12x2+…+θnxn替换为w1x1+w2x2+…+wnxn(即wTx)。这样,让θTx=wTx+b,进一步hθ(x)=g(θTx)=g(wTx+b)。也就是说,除了y由y=0变为y=-1,只是标记不同外,与Logistic回归的形式化表示没有区别。

再明确一下假设函数:

hθ,b(x)=g(wTx+b),令Z=wTx+b

对于这个假设函数,我们只需要考虑θTx的正负问题,而不用关心g(z),因此这里将g(z)做一个简化,将其简单映射到y=-1和y=1上。映射关系如下:

给定一个训练样本(x(i),y(i)),x是特征变量,y是结果标签,i表示第i个样本。定义函数间隔如下:

刚刚定义的函数间隔是针对某一个样本的,现在定义全局样本函数间隔如下:

其中,i=1,…,m。

其实,对于函数间隔最直接的看法就是在训练样本上分类正例和负例确信度最小的那个函数间隔。

针对上述函数间隔的介绍,继续考虑W和b,如果同时加大W和b,比如在(WTx(i)+b)前面乘个系数,假设乘以2,那么所有点的函数间隔都会增大变为原来的两倍,这对求解问题是不会产生影响的,因为要求解的是WTx(i)+b=0,同时扩大W和b对结果是无影响的。这样,为了限制W和b,可能需要加入归一化条件,毕竟求解的目标是确定唯一一组W和b,而不是多组线性相关的向量。这个归一化的结果便是支持向量机的几何间隔。

由此可以得到支持向量机几何间隔的定义如下:

由几何间隔的定义式可以看出,当‖W‖=1时,几何间隔便等于函数间隔。所以,无论W和b同时扩大多少倍,‖W‖都会跟随W和b同步扩大相同倍数,从而对结果无影响。所以可以定义全局的几何间隔为:

γ=min(γ(i)

其中,i=1,…,m。

之前讨论的情况都是建立在样例线性可分的假设上,当样例线性不可分时,可以尝试使用核函数来将特征映射到高维,这样很可能就可分了。正如图6-9中所示,原始特征是线性不可分的,但是通过对原始特征进行高斯变换后,得到的新特征就是线性可分的了,这便是对核函数最直接的理解。

图6-9 高斯核函数对数据的转换

所以可以将核函数形式化的定义为:如果原始特征内积是(x,z),映射后为[φ(x),φ(z)],那么核函数为:

K(x,z)=φ(x)Tφ(z)