SVM支持向量机(一):线性可分支持向量机

一、简介
SVM是一种二分类模型
目的:寻找一个超平面对样本进行分割
分割原则:间隔最大化
问题求解方法:将模型转换为一个凸二次规划问题

由简至繁的模型包括:
1、当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机
2、当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机
3、当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机

二、线性可分支持向量机
本节先介绍线性可分支持向量机
1、间隔最大化和支持向量
如果一个线性函数(超平面)能够将样本分开,称这些数据样本是线性可分的。
Here is a 简单的二维空间例子:
在这里插入图片描述
显然有不只一条直线可以将样本分开(有无数条)。我们说的线性可分支持向量机就对应着能将数据正确划分且间隔最大的直线(唯一)。关键词:正确划分数据间隔最大

引出两个问题:1、why间隔最大? 2、how间隔最大?

About Q1:
一般来说,一个点距离分离超平面的远近可以表示分类预测的确信度。如上图中的点A、B,B被预测为正类的确信度要大于A点。故,不必考虑所有的样本点,只需让求得的超平面使得离它近的点间隔最大。
About Q2:
首先,划分超平面可通过如下线性方程来描述:
在这里插入图片描述
我们现在假设超平面能将训练样本正确的分类,即对于训练样本(xi,yi),满足以下公式:
在这里插入图片描述
该公式称为最大间隔假设,yi=+1 表示样本为正样本,yi=−1 表示样本为负样本,式子前面选择大于等于+1,小于等于-1只是为了计算方便原则上可以是任意常数,但无论是多少,都可以通过对 w 的变换使其为 +1 和 -1 。接着将该公式左右都乘上yi,得到:
在这里插入图片描述
等价为:
在这里插入图片描述
训练集中所有样本都应该满足该公式。如下图所示,距离超平面最近的这几个样本点满足:,它们被称作**“支持向量”。虚线称作边界**,两条虚线之间的距离成为间隔
PS:在决定分离超平面时,只有支持向量起作用,而其他的实例点并不起作用。如果移动支持向量将改变改变所求的解,但是如果在间隔边界以外移动其他实例点,甚至去掉这些点,则解是不会改变的。
在这里插入图片描述
至此,我们求得了间隔,而SVM的求解思想是使得间隔最大化,即最终的目标为:
在这里插入图片描述
为了简化运算,可将该公式转化成:
在这里插入图片描述
该公式即为支持向量机的基本型。这是一个凸二次规划问题
解出对应的W和b之后,即得到了分离超平面Wx+b=0和分类决策函数f(x)=sign(Wx+b)

三、学习的对偶算法
对于凸二次规划问题,可以通过一些现成的QP的优化工具来得到最优解。
但是,该算法通过拉格朗日对偶性变换之后,可以找到一种更加有效的方法来进行求解。于是,应用拉格朗日对偶性,通过求解对偶问题得到最优解,这就是线性可分条件下支持向量机的对偶算法。
这样做的优点:对偶问题往往更容易求解;可以自然引入核函数,进而推广到非线性分类问题。(核函数的一个作用就是可以将一个低维的非线性数据映射成为高维的线性数据)

1、对偶问题简介
在约束最优化问题中,常常利用拉格朗日对偶性将原始问题转换为对偶问题,通过求解对偶问题而得到原始问题的解。首先对对偶问题进行简要介绍:
对于一个优化问题:
在这里插入图片描述
这是一个带等式约束的优化问题。首先构建拉格朗日函数,为此,对每一个不等式约束,引入拉格朗日乘子:
在这里插入图片描述
然后我们将拉格朗日函数对x求极值,即对x求导,导数为0,就可以得到α关于x的函数,然后再代入拉格朗日函数就变成:
在这里插入图片描述
这时候,带等式约束的优化问题就变成只有一个变量α(多个约束条件就是向量)的优化问题,这时候的求解就很简单了。同样是求导另其等于0,解出α即可。需要注意的是,我们把原始的问题叫做primal problem,转换后的形式叫做dual problem。需要注意的是,原始问题是最小化,转化为对偶问题后就变成了求最大值了。对于不等式约束,其实是同样的操作。简单地来说,通过给每一个约束条件加上一个 Lagrange multiplier(拉格朗日乘子),我们可以将约束条件融和到目标函数里去,这样求解优化问题就会更加容易。

2、SVM的对偶算法
对应的,对于SVM的primal problem是:
在这里插入图片描述
首先引入拉格朗日乘子,可以得到如下的拉格朗日函数(1):
在这里插入图片描述
然后对L(w, b, α)分别求w和b的极值。也就是L(w, b,α)对w和b的梯度为0:∂L/∂w=0和∂L/∂b=0,还需要满足α>=0。
在这里插入图片描述
求解这里导数为0的式子可以得到:
在这里插入图片描述
将其带入拉格朗日函数(1),可得:
在这里插入图片描述
于是,原问题转换成了仅关于 α 的问题,即dual problem:
在这里插入图片描述
解出 α之后根据公式可以求得 w , 进而求得 b,进而得到模型:
在这里插入图片描述(2)
三、支持向量分析
上述过程的KKT条件为:(KKT条件的介绍可参考《统计学习方法P227》)
在这里插入图片描述
我们分析一下,对于任意的训练样本 (xi,yi)
若 αi=0,则其不会在最终模型公式(2)中的求和项中出现,也就是说,它不影响模型的训练;
若 αi>0,则
在这里插入图片描述
也就是
在这里插入图片描述
即该样本一定在边界上,是一个支持向量。
可得出结论:只有支持向量的αi不为0,如下图所示:
在这里插入图片描述 这里显示出了支持向量机的重要特征:当训练完成后,大部分样本都不需要保留,最终模型只与支持向量有关。有了αi,我们不需要求出w,只需将新来的样本和训练数据中的所有样本做内积和即可。