机器学习之理解支持向量机SVM

机器学习之理解支持向量机SVM,第1张

平时都是直接使用现成的libsvm,虽然对于SVM原理理解有一定的难度,但是仍然试着知其然,亦知其所以然。本文主要是SVM的概念性的分享。

基本概念

支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。

支持向量机,其含义是通过支持向量运算的分类器。其中“机”的意思是机器,可以理解为分类器。

什么是支持向量呢?在求解的过程中,会发现只根据部分数据就可以确定分类器,这些数据称为支持向量。

见下图,在一个二维环境中,其中点R,S,G点和其它靠近中间黑线的点可以看作为支持向量,它们可以决定分类器,也就是黑线的具体参数。

支持向量机(Support vector machines,SVM)与神经网络类似,都是学习型的机制,但与神经网络不同的是SVM使用的是数学方法和优化技术。

为了更好的理解SVM,下面从logisTIc回归出发,引出了SVM,既揭示了模型间的联系,也让人觉得过渡更自然。

重新审视logisTIc回归

LogisTIc回归目的是从特征学习出一个0/1分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷。因此,使用logisTIc函数(或称作sigmoid函数)将自变量映射到(0,1)上,映射后的值被认为是属于y=1的概率。

形式化表示就是

假设函数

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第2张

其中x是n维特征向量,函数g就是logistic函数。

那么g(z)的图像是

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第3张

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第4张

可以看到,将无穷映射到了(0,1)。

而假设函数就是特征属于y=1的概率。

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第5张

当我们要判别一个新来的特征属于哪个类时,只需求hθ(x),若大于0.5就是y=1的类,反之属于y=0类。

再审视一下hθ(x),发现hθ(x)只和θT有关,θT(x)》0,那么hθ(x)》0.5,g(z)只不过是用来映射,真实的类别决定权还在θT(x)。还有当时θT(x)≥0,hθ(x)=1,反之hθ(x)=0。如果我们只从θT(x)出发,希望模型达到的目标无非就是让训练数据中y=1的特征θT(x)≥0,而是y=0的特征θT(x)≤0。Logistic回归就是要学习得到θ,使得正例的特征远大于0,负例的特征远小于0,强调在全部训练实例上达到这个目标。

图形化表示如下:

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第6张

中间那条线是θT(x),logistic回顾强调所有点尽可能地远离中间那条线。学习出的结果也就中间那条线。考虑上面3个点A、B和C。从图中我们可以确定A是×类别的,然而C我们是不太确定的,B还算能够确定。这样我们可以得出结论,我们更应该关心靠近中间分割线的点,让他们尽可能地远离中间线,而不是在所有点上达到最优。因为那样的话,要使得一部分点靠近中间线来换取另外一部分点更加远离中间线。我想这就是支持向量机的思路和logistic回归的不同点,一个考虑局部(不关心已经确定远离的点),一个考虑全局(已经远离的点可能通过调整中间线使其能够更加远离)。这是我的个人直观理解。

形式化表示

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第7张

函数间隔(functional margin)和几何间隔(geometric margin)

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第8张

刚刚我们定义的函数间隔是针对某一个样本的,现在我们定义全局样本上的函数间隔

说白了就是在训练样本上分类正例和负例确信度最小那个函数间隔。

接下来定义几何间隔,先看图

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第9张

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第10张

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第11张

最优间隔分类器(optimal margin classifier)

回想前面我们提到我们的目标是寻找一个超平面,使得离超平面比较近的点能有更大的间距。也就是我们不考虑所有的点都必须远离超平面,我们关心求得的超平面能够让所有点中离它最近的点具有最大间距。形象的说,我们将上面的图看作是一张纸,我们要找一条折线,按照这条折线折叠后,离折线最近的点的间距比其他折线都要大。形式化表示为:

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第12张

这里用||w||=1规约w,使得是wTx+bi(因没法输入公式,写成这样子了)几何间隔。

到此,我们已经将模型定义出来了。如果求得了w和b,那么来一个特征x,我们就能够分类了,称为最优间隔分类器。接下的问题就是如何求解w和b的问题了。

由于||w||=1不是凸函数,我们想先处理转化一下,考虑几何间隔和函数间隔的关系,公式:

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第13张

我们改写为:

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第14张

这时候其实我们求的最大值仍然是几何间隔,只不过此时的w不受||w||=1的约束了。然而这个时候目标函数仍然不是凸函数,没法直接代入优化软件里计算。我们还要改写。前面说到同时扩大w和b对结果没有影响,但我们最后要求的仍然是w和b的确定值,不是他们的一组倍数值。

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第15张

机器学习之理解支持向量机SVM,机器学习之理解支持向量机SVM,第16张

这下好了,只有线性约束了,而且是个典型的二次规划问题(目标函数是自变量的二次函数)。代入优化软件可解。到这里发现,虽然没有先画好图,画好分类超平面,在图上标示出间隔那么直观,但每一步推导有理有据,依靠思路的流畅性来推导出目标函数和约束。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2543581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存