支持向量机

支持向量机(SVM)是一种用于分类和回归的机器学习模型,尤其擅长处理小样本和高维问题。SVM通过寻找最大间隔超平面进行分类,可以处理线性和非线性问题。其核心思想包括函数间隔、几何间隔、拉格朗日对偶和核函数。在非线性场景中,核函数能够将数据映射到高维空间,实现线性可分。SVM通过软间隔处理不可分样本,引入松弛变量C来平衡错误分类。优化问题通过SMO算法求解,该算法高效地更新拉格朗日乘子。SMO算法选择拉格朗日乘子的启发式方法确保了收敛性。
摘要由CSDN通过智能技术生成

 概要

  1. 是一种二元分类模型,线性分类和非线性分类都支持
  2. 经过演进,SVM也可以支持多元分类,同时经过扩展,也能应用于回归问题。

 

应用场景:

   分类。

 

优点:

  1. 可以解决小样本情况下的机器学习问题。
  2. 可以提高泛化能力。
  3. 可以解决高维问题。
  4. 可以解决非线性问题。

 

缺点:

  1. 对缺失数据敏感。
  2. 对非线性问题没有通用解决方案,必须谨慎选择核函数来处理。

 

 

 

线性可分SVM的算法:

 

 


 

 

线性SVM的算法:

 

 


 

 

 

非线性SVM的算法:

 

 

 


 

 

 

 

SMO算法:

 

 


4 函数间隔(functionalmargin)和几何间隔(geometric margin)

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

clip_image043

可想而知,当

clip_image045

时,在我们的g(z)定义中,

clip_image047

clip_image049

的值实际上就是

clip_image051

。反之亦然。为了使函数间隔最大(更大的信心确定该例是正例还是反例),当

clip_image045[1]

时,

clip_image053

应该是个大正数,反之是个大负数。因此函数间隔代表了我们认为特征是正例还是反例的确信度。 

继续考虑w和b,如果同时加大w和b,比如在

clip_image055

前面乘个系数比如2,那么所有点的函数间隔都会增大二倍,这个对求解问题来说不应该有影响,因为我们要求解的是

clip_image057

,同时扩大w和b对结果是无影响的。这样,我们为了限制w和b,可能需要加入归一化条件,毕竟求解的目标是确定唯一一个w和b,而不是多组线性相关的向量。这个归一化一会再考虑。 

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

clip_image058

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

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

clip_image059

假设我们有了B点所在的

clip_image057[1]

分割面。任何其他一点,比如A到该面的距离以

clip_image061

表示,假设B就是A在分割面上的投影。我们知道向量BA的方向是

clip_image063

(分割面的梯度),单位向量是

clip_image065

。A点是

clip_image041[1]

,所以B点是x=

clip_image067

(利用初中的几何知识),带入

clip_image057[2]

得, 

clip_image069

进一步得到 

clip_image070

 

clip_image061[1]

实际上就是点到平面距离。 

再换种更加优雅的写法: 

clip_image071

clip_image073

时,不就是函数间隔吗?是的,前面提到的函数间隔归一化结果就是几何间隔。他们为什么会一样呢?因为函数间隔是我们定义的,在定义的时候就有几何间隔的色彩。同样,同时扩大w和b,w扩大几倍,

clip_image075

就扩大几倍,结果无影响。同样定义全局的几何间隔

clip_image076

5 最优间隔分类器(optimal marginclassifier)

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

clip_image077

这里用

clip_image075[1]

=1规约w,使得

clip_image079

是几何间隔。 

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

由于

clip_image081

不是凸函数,我们想先处理转化一下,考虑几何间隔和函数间隔的关系,

clip_image083

,我们改写一下上面的式子: 

clip_image084

这时候其实我们求的最大值仍然是几何间隔,只不过此时的w不受

clip_image081[1]

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

clip_image086

做一些限制,以保证我们解是唯一的。这里为了简便我们取

clip_image088

。这样的意义是将全局的函数间隔定义为1,也即是将离超平面最近的点的距离定义为

clip_image090

。由于求

clip_image090[1]

的最大值相当于求

clip_image092

的最小值,因此改写后结果为: 

clip_image093

这下好了,只有线性约束了,而且是个典型的二次规划问题(目标函数是自变量的二次函数)。代入优化软件可解。 

到这里发现,这个讲义虽然没有像其他讲义一样先画好图,画好分类超平面,在图上标示出间隔那么直观,但每一步推导有理有据,依靠思路的流畅性来推导出目标函数和约束。 

接下来介绍的是手工求解的方法了,一种更优的求解方法。

6 拉格朗日对偶(Lagrange duality)

    先抛开上面的二次规划问题,先来看看存在等式约束的极值问题求法,比如下面的最优化问题: 

    

clip_image001[9]

     

    目标函数是f(w),下面是等式约束。通常解法是引入拉格朗日算子,这里使用

clip_image003[14]

来表示算子,得到拉格朗日公式为 

    

clip_image004[6]

     

    L是等式约束的个数。 

    然后分别对w和

clip_image003[15]

求偏导,使得偏导数等于0,然后解出w和

clip_image006[6]

。至于为什么引入拉格朗日算子可以求出极值,原因是f(w)的dw变化方向受其他不等式的约束,dw的变化方向与f(w)的梯度垂直时才能获得极值,而且在极值处,f(w)的梯度与其他等式梯度的线性组合平行,因此他们之间存在线性关系。(参考《最优化与KKT条件》) 

然后我们探讨有不等式约束的极值问题求法,问题如下: 

    

clip_image007[6]

     

    我们定义一般化的拉格朗日公式 

clip_image008[6]

    这里的

clip_image010[50]

clip_image012[14]

都是拉格朗日算子。如果按这个公式求解,会出现问题,因为我们求解的是最小值,而这里的

clip_image014[6]

已经不是0了,我们可以将

clip_image010[51]

调整成很大的正值,来使最后的函数结果是负无穷。因此我们需要排除这种情况,我们定义下面的函数: 

    

clip_image015[6]

    这里的P代表primal。假设

clip_image017[6]

或者

clip_image019[6]

,那么我们总是可以调整

clip_image010[52]

clip_image012[15]

来使得

clip_image021[10]

有最大值为正无穷。而只有g和h满足约束时,

clip_image021[11]

为f(w)。这个函数的精妙之处在于

clip_image023[6]

,而且求极大值。 

    因此我们可以写作 

    

clip_image024[6]

    这样我们原来要求的min f(w)可以转换成求

clip_image026[10]

了。     

    

clip_image027[6]

    我们使用

clip_image029[6]

来表示

clip_image026[11]

。如果直接求解,首先面对的是两个参数,而

clip_image010[53]

也是不等式约束,然后再在w上求最小值。这个过程不容易做,那么怎么办呢? 

    我们先考虑另外一个问题

clip_image030[6]

    D的意思是对偶,

clip_image031[10]

将问题转化为先求拉格朗日关于w的最小值,将

clip_image033[6]

clip_image003[16]

看作是固定值。之后在

clip_image031[11]

求最大值的话: 

clip_image034[6]

   这个问题是原问题的对偶问题,相对于原问题只是更换了min和max的顺序,而一般更换顺序的结果是Max Min(X) <=MinMax(X)。然而在这里两者相等。用

clip_image036[6]

来表示对偶问题如下: 

    

clip_image037[6]

    下面解释在什么条件下两者会等价。假设f和g都是凸函数,h是仿射的(affine,

clip_image038[6]

)。并且存在w使得对于所有的i,

clip_image040[10]

。在这种假设下,一定存在

clip_image042[14]

使得

clip_image044[14]

是原问题的解,

clip_image046[6]

是对偶问题的解。还有

clip_image047[6]

另外,

clip_image042[15]

满足库恩-塔克条件(Karush-Kuhn-Tucker, KKT condition)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值