支持向量机(SVM)-----学习笔记一(原理详解与公式推导)

支持向量机(SVM)

什么是支持向量机?

支持向量机,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

SVM思想(线性可分支持向量机)

图一

给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类。在决策边界上面算法认为是红色的点,决策边界下面认为是蓝色的点。

图二

但从上图我们可以看到,有多条决策边界可以将这两种颜色的点分开,这往往会导致不适定问题。

图三

例如上图,我们增加一个点,此时的决策边界虽然正确分类了,但是决策边界基本离红色的点很近,这样离决策边界很近的那个蓝色点被误分为红色点的可能性非常的大,即图中的决策边界泛化效果不够好。

那什么样的决策边界比较好呢?

在下图中,离直线最近的这些点,我们让它离决策边界的距离都尽可能的大,换句话说就是,希望决策边界即离红色的点比较远又离蓝色的点比较远。相当于是,SVM要需要找到一个决策边界,他不仅能够将训练数据进行很好的分类,并且找到的决策边界泛化能力也要尽可能的好。

图四

图五

间隔

回忆解析几何,点到直线的距离:

假设图五中决策边界的表达式为:


则样本空间中任意的点到这条直线的距离为:


图中离决策边界最近的点到决策边界的距离定义为d,换句话说图五中所有点到决策边界的距离都应该≥d,在图中我们将红色的点定义为y值定义为1,将蓝色的点y值定义为-1,表达为数学公式有:


则决策边界两边的那两根直线表示为:

图六

为了后续方便,对公式重新命名,并将其化简为一个式子表示,图六中的所有的点都要满足最后的这个公式,即:

两个不同类的支持向量到决策边界的距离之和叫做间隔,对于任意支持向量,SVM需要最大化支持向量到决策边界的距离d,即(化简成平方形式是为了方便求导):


于是,整个支持向量机算法就变成了如下的最优化问题,s.t.代表限定条件,这是一个有条件的最优化问题,也是SVM的基本型:

 对偶问题

拉格朗日乘子法:

KKT条件

根据SVM的基本型求解出w和b,即可得到最佳超平面对应的模型:

该求解问题本身是一个凸二次规划(convexquadratic propgramming)问题,对于式(1)的每条约束添加拉格朗日乘子αi≥0,则该问题的拉格朗日函数可写为:

将(3)带入(2)式中,消去w和b就可得到(1)的对偶问题

由(4)可知我们并不关心单个样本是如何的,我们只关心样本间两两的乘积,这也为后面核方法提供了很大的便利。 求解出之后,再求解w出和b即可得到SVM决策模型:

(1)式对偶问题转化为,构造并求解约束最优化问题,求得最优解α:


又因(1)中存在不等式约束,所以上式满足KKT条件,即要求:

        对于任意样本(xi,yi)总有αi=0或者yi(wxi+b)-1=0。如果则由式(5)可知该样本点对求解最佳超平面没有任何影响。当αi=0时必有yi(wxi+b)-1=0,表明对应的样本点在最大间隔边界上,即对应着支持向量。也由此得出了SVM的一个重要性质:训练完成之后,大部分的训练样本都不需要保留,最终的模型仅与支持向量有关。 

        那么对于式(6)该如何求解α呢?很明显这是一个二次规划问题,可使用通用的二次规划算法来求解,但是SVM的算法复杂度是O(n2),在实际问题中这种开销太大了。为了有效求解该二次规划问题,人们通过利用问题本身的特性,提出了很多高效算法,Sequential Minimal Optimization(SMO)就是一个常用的高效算法。在利用SMO算法进行求解的时候就需要用到上面的KKT条件。利用SMO算法求出之后根据式(8)即可求出w和b,解出w和b就可以用f(x)=sign(wx+b)进行预测分类了。

软间隔与正则化

    若样本的分布如下图左,给出一条决策边界如下图右所示,虽然能够正确的对数据进行分类,但难免对其泛化能力产生怀疑:

对决策边界做出调整如下图所示,可以看到虽然它错分个数据,但它的泛化能力可能更好,所以SVM需要一个机制,即SVM算法得到的边界允许有一定的容错能力

        具体来说,前面介绍的支持向量机是要求所有样本均满足约束(1),即所有样本都必须正确划分,这叫做‘硬间隔’,线性不可分意味着有样本点不满足约束条件(1),这叫‘软间隔’,为了解决这个问题,对每个样本引入一个松弛变量,这样约束条件变为:


        最优化问题是在最大化间隔,但是现在允许SVM犯一定的错误也就是允许数据点落在直线跟虚线之间,值得注意的是每个样本都有一个对应的松弛变量,用于表征该样本不满足约束条件的程度希望的是SVM具有一定的容错空间,但是又不希望这个容错空间太大。则需将目标函数变为

其中C为惩罚函数,目标函数有两层含义:

l  Margin尽可能的大

l  误分类的样本点尽量少

对于Soft Margin SVM,相当于在目标函数中加入了正则化相,避免我们训练出的模型向一个极端方向发展,使之对训练数据集有一定的容错能力,对训练集中的一些极端数据不那么敏感,从而在面对真实未知的数据的时候,拥有一定的泛化能力。



对于式(11),该问题的拉格朗日函数可写为:



核函数

在前面的讨论中,我们假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类。然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面,对于这样的问题,可以将样本从原始空间映射到一个更高维的特征空间,使的样本在这个特征空间内线性可分。

则SVM的最优化问题,及该问题的偶问题,表示如下:

求解后得到:

举例(添加二次项核函数):

 

高斯核函数的本质是将样本点映射到一个无穷维的特征空间,依靠升维使得原本线性表与可分的数据线性可分。

支持向量回归(SVR)

     


        


猜你喜欢

转载自blog.csdn.net/weixin_39881922/article/details/80244660