关闭

SVM学习笔记-软间隔SVM

标签: SVM机器学习软间隔SVM
125人阅读 评论(0) 收藏 举报
分类:

SVM学习笔记第四篇

回顾

在上一篇中记录了Kernel SVM,利用核函数使得我们可以通过对偶形式的SVM解决非线性的问题,例如使用高斯核函数可以在无限维度的空间中寻找超平面。但是正如我们之前说到过的,高斯SVM在参数选择的不恰当的时候,也会出现overfit的情况。为什么SVM也会出现overfit的情况呢(虽然有最大间隔的保证)?一个原因可能是因为我们选择的特征转化太过于powerful,就算存在最大间隔的限制,最终也还是会出现过拟合。另外一个原因是因为我们坚持要把正例和负例完美的分开,导致会被一些噪声点影响。

容忍一些噪声

pocket算法

在pocket算法中,由于数据不是线性可分的,所以我们真的没有办法找到一条线将数据完美的分开,所以我们退而求其次:找一条线,这条线在数据上犯的错误最少。即我们想要最小化如下的式子:

minw,bn=1N |[ynsign(wTxn+b)]|

这里:1=|[]|,如果成立;0=|[]|,如果不成立。

硬间隔支撑向量机

minws.t.12wTwyn(wTxn+b)1for all n

即要求所有的样本点都要正确划分,并且在这个基础上找到间隔最小的。

pocket + hard margin SVM

结合pocket算法对错误的容忍和SVM算法对于间隔最大化的要求得到如下的模型(软间隔的SVM):约束中的第二个条件表明允许存在一些点不满足原来的SVM的要求,即yn(wTxn+b)可以小于1;但是要尽量减少这样的点,这一目标体现在我们的object function中:minw+CNn=1|[ynsign(wTzn+b)]|, 即要最小化犯错误的数据的个数。那么现在我们不仅仅想要w的长度最小,而且想要犯错误的点的数量最少,所以引入了参数C来权衡两者之间的关系,表示两者之间的相对重要性。C比较大的时候表示我们想要犯更少的错误,C比较的小的时候表示我们想要更大的间隔。

minws.t.12wTw+Cn=1N|[ynsign(wTzn+b)]|yn(wTxn+b)1 for correct nyn(wTxn+b) for incorrect n

软间隔支撑向量机

软间隔支撑向量机可以理解为我们牺牲了在某些点上必须正确划分的限制,来换取更大的分隔间隔。
上述软间隔SVM的表达可以合并为下式:

minws.t.12wTw+Cn=1N|[ynsign(wTzn+b)]|yn(wTxn+b)1|[ynsign(wTxn+b)]|

上述模型存在的问题:

  • 因为|[]|不是一个线性运算,所以上述问题不再是一个二次规划问题。
  • 对所有的错误一视同仁,不区分犯错的数据点离分隔超平面的远近。

为了解决这些问题,我们提出了下面的新的和上面想法类似的软间隔SVM表达方式:

minw,ξs.t.12wTw+Cn=1Nξnyn(wTxn+b)1ξnξn0

在这里,我们把错误记录在一个ξn当中(ξn0)。这个变量记录了yn(WTxn+b)1有多远。并且在目标函数中最小化Nn=1 ξn。那么这样的话,如果yn(WTxn+b)1, 说明该样本点划分正确,因为要最小化所有的ξn的和,所以可得ξn=0;如果yn(WTxn+b)<1, 说明该样本点没有划分正确,ξn=1yn(WTxn+b)

  • 假如y1(wTz1+b)=10, 那么相应的ξ1= ? ξ1=10+1=11

参数C用来权衡间隔和Nn=1ξn

  • C表明我们更care的是划分的正确性,margin可以“瘦”一点,但是划分错误的点要少一点。
  • C表明我们想要的是更“胖”一点的边界,划分错误的点多一点没有关系。

现在这个问题变成了一个标准的QP问题,变量有d~+1+N个,限制条件有2N个。


对偶问题

通过上面的分析得到了soft-margin SVM,现在推导该问题的对偶问题。这样就可以很方便的使用特征转化。

原始问题

minw,b,ξs.t.12wTw+Cn=1N ξnyn(wTzn+b)1ξnξn0

拉格朗日函数

引入拉格朗日乘子得到如下的拉格朗日函数:需要注意的是,先把条件转换为的形式。

L(w,b,ξ,α,β)=12wTw+Cn=1Nξn+n=1Nαn(1ξnyn(wTzn+b))+n=1Nβn(ξn)

拉格朗日对偶

maxαn0, βn0(minw, b, ξL(w,b,ξ,α,β))

maxαn0, βn0(minw, b, ξ12wTw+Cn=1Nξn+n=1Nαn(1ξnyn(wTzn+b))+n=1Nβn(ξn))

首先对ξn求偏导使其为0。

Lξn=Cαnβn=0

整理得到:
C=αn+βn

那么就可以把式子中的所有的β替换掉:βn=Cαn。因为αn0, βn0,所以可以得到Cαn0

那么可以整理为:

maxαn0, βn0(minw, b, ξ12wTw+Cn=1Nξn+n=1Nαn(1ξnyn(wTzn+b))+n=1N(Cαn)(ξn))maxCαn0(minw, b, ξ12wTw+n=1Nαn(1yn(wTzn+b))+n=1N(Cαn)(ξn)+Cn=1Nξnn=1Nαnξn)maxCαn0(minw, b, ξ12wTw+n=1Nαn(1yn(wTzn+b)))

这样我们就去掉了式子中的ξnβn。得到了简单的形式:

maxCαn0(minw, b12wTw+n=1Nαn(1yn(wTzn+b)))

这个时候我们发现里面的最小化问题是和硬间隔SVM中的对偶问题中的形式一样的。那么同样的我们可以对b偏导,得到Ni=1αnyn=0。然后对w求导可以得到w=Ni=1αnynzn

最后我们可以得到一个标准的软间隔的SVM的对偶问题如下。

软间隔SVM对偶问题

minαs.t.12αnαmynymzTnzmn=1Nαnn=1Nαnyn=0Cαn0n=1,2,,N

唯一和硬间隔SVM不同的是αn有一个上界C


软间隔SVM中隐藏的信息

软间隔SVM+Kernel

在得到了软间隔SVM的对偶形式之后,我们就可以使用之前讨论的kernel函数来做更多的事情。带有核函数的软间隔SVM算法如下:

  1. qn,m=ynymK(xn,xm);p=1N;(A,c)
  2. αQP(QD,p,A,c)
  3. b=?
  4. 返回支撑向量SVs和与之相对应的αn,还有参数b,那么就得到了带有核函数的软间隔分类器:
    gSVM(x)=sign(SVαnynK(xn,x)+b)

这样看来,软间隔和硬间隔的SVM几乎是一样的,相对于硬间隔来说,软间隔更加flexible一点,因为我们可以通过调节C的值来控制我们更加care的是分隔超平面的间隔大一点,还是分类错误的点少一点。并且不再要求我们的数据separable。所以软间隔通常要比硬间隔更加的有实际的应用价值。现在唯一的问题是偏置b的求法。

b的求法

对于硬间隔的SVM,根据KKT条件,有αn(1yn(wTzn+b))=0(我们把这样的条件称为complementary slackness),这样的话,我们只需要找到一个αs0, 那么就可以得到 ys(wTzs+b)=1,从而得到 b=yswTzs

同样的对于软间隔SVM来说,我们也可以找到相应的somplementary slackness如下:

αn(1ξnyn(wTzn+b))=0and(Cαn)ξn=0

所以如果我们找到了一个支撑向量,也就是一个αs0,那么根据第一个式子可以得到1ξnyn(wTzn+b)=0,进一步可以得到b=ysysξswTzs
这个式子告诉我们如果想要求得b,就需要先知道ξs,但是我们没有办法得到ξs。但是如果ξs是0的话,那么我们就可以得到b=yswTzs。要想让ξs=0, 那我们就要确保Cαs0,即Cαs, 那就只能是αs<C。 我们把αs<C对应的支撑向量成为free vector。可知free vector对应的ξs=0。所以就成功的算出了b=yswTzs

这样我们就终于得到了b的求法:
我们需要找一个Support Vector,并且不是一般的Support Vector,而是free support vector (xs,ys),这样的支撑向量对应的C>αs>0,这样就可以求解得到b

b=ysSVαnynK(xn,xs)

使用高斯核的软间隔SVM的表现

这里写图片描述

C越大,对噪声的容忍度就越小,就越容易overfit。所以就算我们使用的是带有高斯核函数的软间隔SVM,也是由可能会出现过拟合的情况,所以这就需要我们认真的挑选参数(γ,C)γ是高斯核函数的参数,C是软间隔分类的SVM的参数。

软间隔SVM背后的信息

我们之前使用了complementary slackness(如下)成功的求解了参数b。现在再来看看通过这两个条件我们可以得到什么关于soft-margin SVM的信息。

αn(1ξnyn(wTzn+b))=0

(Cαn)ξn=0

根据这两个条件,我们可以所有的数据点划分为三种。

  1. 非支撑向量(0=αn): 因为αn=0,所以ξn=0,也就是对应着那些没有违反边界的点。所以这些点会离分割面很远,也有极少数的点可能在分隔边界上。
  2. free support vector(0<αn<C):所以ξn=0,并且1=yn(wTzn+b), 即这些点正好是位于分隔边界上的点,如图中使用方框框起来的点。并且我们正是利用了这些点来求出了b
  3. αn=C:那么根据第一个条件,ξn=1yn(wTzn+b),这个时候ξn记录了该点“犯了多大的错”。如图中三角形的点。我们称这样的点为bounded SV,这些点在边界上,或者是违反了边界。

所以我们可以通过α的值来将数据点分为三类。


模型的选择

各种参数下的表现

这里写图片描述

上图表示的是,在不同的参数γC的选择下,使用高斯核函数的SVM(软间隔)在数据上的表现,从左到右为逐渐增大的C,从下到上为逐渐增大的γ

如何做出选择

通过计算比较交叉检验的结果。

这里写图片描述

总结

本篇记录了SVM的一个最常用的形式的soft-margin SVM的提出和求解,这个模型的出发点是,我们可以容忍一些错误的发生,即,可以容忍分隔超平面对某些点划分错误,所以我们在模型中引入了对错误的衡量,将其作为惩罚性加在目标方程中。新的模型同样是一个二次规划问题,所以我们推导了该问题的对偶问题,发现对偶问题和硬间隔的SVM几乎完全相同,不同的地方仅仅是αn有一个上界C。并且对偶问题的解α使得我们可以将数据分为三类。这对于做资料的分析非常的有用。
这四篇是soft-margin的SVM的完整的讲解,从hard-margin的SVM,到对偶问题的导出,到引入核函数,最后到soft-margin。

参考

  • 林轩田机器学习技法
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:57183次
    • 积分:1250
    • 等级:
    • 排名:千里之外
    • 原创:71篇
    • 转载:0篇
    • 译文:0篇
    • 评论:37条
    最新评论