支持向量机SVM(1)——间隔最大化


主要参考西瓜书…

1.什么是超平面

相信了解过逻辑回归的都知道,我们对于n=2(特征为2个,这里只是方便可视化)是通拟合一条曲线,作为决策边界。
那么如果特征n等于3、4 . . . 1000呢?这个时候我们我们就称这个用来分割不同类别的“线”称为超平面(hyperplane),这里的超我理解的就是多维的意思。

2.为什么要间隔最大化

如果我们要用一条直线来将下面这张图中的两种类别(“+”和“-”)分开,可看到我们是可以有多条曲线的,那么那一条是最好的呢?
支持向量机SVM(1)——间隔最大化
直观上我们应该选红色的这条线,感觉它是“最能”分开这两种类的。因为如果选择黑色的线,那么可能存在一些点刚好越过黑色的线,导致被错误分类,但是红线的容错率会更好,也就不容易出错。
例如下面这种情况,如果我选择绿色的线,蓝色的那个点本来属于“+”,但是却会被分到“-”这一类,但是红线就不会。也就是说诸如蓝色的这样一些点(噪声)对红线的影响最小,这也称为鲁棒性(即健壮性)。
支持向量机SVM(1)——间隔最大化
这里我们补充一下间隔最大化中的“间隔”指的是什么?
从上面的例子中我们很容易直观的感受到红线的间隔最大;这里间隔就是上面图中的这些点到直线的距离中的最小值,最大化间隔就是想让这个最小值最大,也就是让红线的容错率尽可能的大。
并且这些到直线最短的点也被称为支持向量(support vector)

3.如何实现间隔最大化

(1)首先介绍一下点到平面的距离公式:
设我们的超平面为:wTx+b=0w^{T}x+b=0,
样本空间中任意一点到超平面的距离为:γ=wTx+bwγ=\frac{|w^{T}x+b|}{||w||}
【注:w,x表示的是向量】
距离公式的证明

(2)对训练样本进行分类:
为了方便,这里我们把上面的“+”和“-”这两类分别用+1和-1表示
假设超平面能将训练集分类,那么训练集中的样本则满足以下条件:
wTxi+b>0,yi=+1w^{T}x_i+b>0,y_i=+1
wTxi+b<0,yi=1w^{T}x_i+b<0,y_i=-1

看到下图,这里我们找了两条虚线(wTx+b=1w^{T}x+b=1wTx+b=1w^{T}x+b=-1),而这两条虚线之间的间隔就是我们要找的最大间隔,因为下图中我们圈起来的“+”和“-”点正是两种类别数据集中到超平面距离最小的点。
此时上面的条件就可以变为:
wTxi+b>=1,yi=+1w^{T}x_i+b>=1,y_i=+1
wTxi+b<=1,yi=1w^{T}x_i+b<=-1,y_i=-1
也可以简写为:yi(wTxi+b)>=1y_i(w^{T}x_i+b)>=1

将虚线的值wTx+b=1w^{T}x+b=1带入上面(1)中的的距离公式得到最大间隔:γ=2wγ=\frac{2}{||w||}
(这里的γγ是两个类别中的最小距离之和,因此分子是2)
支持向量机SVM(1)——间隔最大化
那么为什么上面的我们要取+1和-1呢,这是否具有普遍性?
其实【wTxi+b>=1,yi=+1w^{T}x_i+b>=1,y_i=+1】不一定要取1,可以是其他大于0的数,这里取1只是为了计算更方便,取其他值我们也可以通过缩放w,b来达到一样的效果。

因此我们的目标是让间隔最大,也就是在满足yi(wTxi+b)>=1y_i(w^{T}x_i+b)>=1条件下,让γ=2wγ=\frac{2}{||w||}最大,也就是让w2\frac{||w||}{2}最小就可以,等价于最小化w22\frac{||w||^2}{2}

总结:
支持向量机SVM(1)——间隔最大化