SVM 支持向量机

以下学习笔记,以唐宇迪的视频为主,白板推导和李宏毅为辅。SVM有三宝:间隔、对偶、核技巧。SVM最初是用来解决二分类问题,与PLA相比,鲁棒性更好。

目录

SVM要解决的问题

SVM的目标函数

SVM的目标函数求解

SVM求解实例

软间隔SVM

核变换SVM


SVM要解决的问题

SVM 支持向量机_第1张图片

如何选择一条直线,使得能够完美区分开以上的红点和蓝圈呢?我们发现有不同的画线方法。如果把每个点不仅仅看作一个点,而是一个区域,那么可以得到以下的图形:

SVM 支持向量机_第2张图片
我们可以发现,区域的面积越大,中间这条线的容错能力就越强。要找出这样的一条线,首先得知道如何计算点到线的距离:

SVM 支持向量机_第3张图片

SVM的目标函数

我们假设有数据集(X1,Y1), (X2,Y2) 到(Xn,Yn),Y 为样本的类别,为了方便后续推导,Y的取值为+1,-1。

我们要找到这样一条线(w,b),使得离该线最近的那些点,到该线的距离可以最远,这样的SVM被称为硬间隔SVM。(这里有些绕,体会一下,先求min,找到最小的点;然后求max,使得距离最远。)

argmax(w,b)使得min(最近的点到该线的距离)。

接下来用数学语言来进行表述这条线:通过缩放,使结果值≥1。然后就可以把求最小值的操作去掉,姑且认为等于1.

SVM 支持向量机_第4张图片

SVM的目标函数求解

求极大值不好操作,最好可以转换为求极小值。变换到w2,加二分之一是为了方便进行变换操作。​

SVM 支持向量机_第5张图片
拉格朗日乘子法,求w不容易,但是求α会容易一些。

利用对偶问题,原始问题进行转换。 (说到对偶,想到了白板推导中举过一个很好玩的比喻:凤尾≥鸡头,也就是说最大值的最小值≥最小值的最大值。对于弱对偶性的问题,等号不一定成立,但是对于强对偶性的问题,等号成立。而如何确定是强对偶性呢?满足KKT条件的,就充分必要地认为是强对偶性了)。

分别w、b求偏导,得到两个条件。​

SVM 支持向量机_第6张图片
然后带入。得到关于α的值。

SVM 支持向量机_第7张图片

SVM 支持向量机_第8张图片

这里补充下来自白板推导的笔记,借助拉格朗日把带约束问题变成了无约束问题,然后满足KKT条件,可以利用强对偶性进行转化:

SVM 支持向量机_第9张图片

SVM 支持向量机_第10张图片

SVM求解实例

接下来介绍一个具体例子来讲解如何求解SVM,也可以帮助理解为什么叫支持向量机。

SVM 支持向量机_第11张图片 已知一个如图所示的训练数据集,其正例点是x1=(3,3),x2=(4,3),x3=(1,1)。试求最大间隔分离超平面。

SVM 支持向量机_第12张图片

SVM 支持向量机_第13张图片

求得的3个α值中,α2=0,这就意味着在求解w,b的过程中,x2没有参与。所以这个超平面是由x1和x3确定的,x1和x3被叫做支持向量。

软间隔SVM

SVM 支持向量机_第14张图片

会存在一些情况,两类别有个别点更接近另一类别,这个时候不管怎么调整曲线,都没法解决个别点的分类情况,为了解决该问题,引入了松弛因子。
当C趋近于无穷大时,意味着分类严格,不能有错误;当C趋近于很小时,意味着可以有更大的错误容忍。

SVM 支持向量机_第15张图片

软间隔SVM与硬间隔SVM的求解方法相同,只是引入松弛因子后,约束条件发生了变化。

SVM 支持向量机_第16张图片

核变换SVM

SVM 支持向量机_第17张图片

有些时候,两个类别的点不能简单地通过某条线或者某个平面区分开,这个时候就需要映射到更高维度的空间,如下图所示,红点和蓝叉在不同高度的平面上,我们就很容易在它们中间找到一个平面,区分开两者,例如借助高斯核函数。

SVM 支持向量机_第18张图片 SVM 支持向量机_第19张图片

李宏毅的课程中,讲解了如何从梯度下降的角度看待SVM,尚未理解透彻,需要进一步学习。

你可能感兴趣的:(SVM 支持向量机)