摘要

支持向量机(support vector machines, SVM)是一种分类模型,该模型在特征空间中求解间隔最大的分类超平面。当训练数据近似线性 可分时,可以通过增加软间隔学习一个线性分类器。当线性不可分时,利用核技巧,隐式的将特征空间映射到高维特征空间,从而达到线性 可分。使用序列最小最优化算法(SMO),可以快速求解模型的参数。 关键字:支持向量机; SVM; SMO; 矩阵运算; 矩阵求导;numpy;sklearn.

数学推导与python实现

SVM简介

当训练数据线性可分,可以得到一个线性超平面 ,将在超平面上方的归为正类,将在超平面下方的归为负类。当数据点 与超平面距离越远时,表示分类的确定性越高,这样虽然线性分类的超平面可能有无数多个,但是我们可以找到一个所有点距离超平面最大的一个 超平面。相应的决策函数为:

img

 

 

最大间隔分类超平面

为正时,为正,当 为负时,为负,则可以定义 为几何间隔,表示数据点距离超平面的距离。 模型最终会找到一个参数为的分离超平面,所有点距离超平面的距离都大于等于d,将距离正好等于d的数据点称之为支持向量。

进行一定比例的缩放

可以{eq1}将式化简为:

将{eq2} 和 {eq3} 利用拉格朗日乘数法,获得拉格朗日原始问题形式:

当满足KTT条件时, 拉格朗日对偶问题的解等价于{eq4} 的解:

求解拉格朗日对偶问题

首先求L以 w、b为参数的极小值,通过求微分得到偏导数形式。

从而得到w、b 偏导数,并令偏导数为0。

推导出如下关系:

将{eq6}式 和 {eq7}式 代入{eq5}式中,

去除负号,将极大转换成极小形式:

为了使拉格朗日对偶问题的解与原始问题解相同,需要同时满足KTT条件:

软间隔

当训练数据近似线性可分,有些异常点或噪声点导致无法找到分离超平面,可以对每个数据点加一个松弛变量,从而让所有数据点均满足约束。

img

加入软间隔参数,每个向量点距离分类超平面距离增加,同时增加一个惩罚系数C,代入{eq5}新形式如下:

将其转换为拉格朗日对偶形式:

求得对于w、b、 的偏导并令其为0:

代入 {eq9} 式中:

约束可以化简为:

为了使拉格朗日对偶问题的解与原始问题解相同,需要同时满足KTT条件:

核函数

近似线性可分用软间隔方式解决,然而当训练数据是非线性数据,会出现无法在原特征空间找到分离超平面。可以使用一个非线性变换,将数据从原特征空间映射到更高维的新空间,然后在新空间中寻找线性分类超平面,这种方法被称为核技巧。观察 {eq10} 式中计算,即需要计算 内积。将核技巧应用到SVM,定义核函数为:

即将原来的向量内积,改成先让向量映射到新空间,然后再求内积。核技巧的另外一个优点是,不需要显示的定义 而是直接计算出 的结果,以高斯核函数为例:

则 {eq10} 式利用核技巧转化为:

序列最小最优化算法SMO

支持向量机的拉格朗日对偶问题是一个凸二次规划问题,具有全局最优解,序列最小最优化算法即SMO算法,是高效求解支持向量机解的一种算法。其基本思路是,如果所有变量都满足了KTT条件,那么就求得了问题的解。SMO算法过程如下:

当选择两个变量,如时,将其他变量看做常数:

则上式子去除不包含 的项后化简为:

利用约束 得到:

代入:

针对求导,并令导数为0:

则可以推得:

考虑到,将将内积转换成核函数形式,并且定义函数为函数的误差值:

则 {eq12} 式得到未经剪辑的解为:

因为有约束 并且 ,下面讨论的上限下限,当时:

时:

经剪辑后解为:

对于偏置,由于KTT条件约束有:

对于任一 整理后得到,当时:

时:

都满足条件,那么。当所有满足KTT条件时,模型得解。

总结

线性可分支持向量机

当训练数据线性可分时,支持向量机可以得到一个最大间隔的分离超平面,若近似可分,则可以添加软间隔的方式,若线性不可分,则可以利用核技巧确保可以找到最大间隔分离超平面。由于得到的分离间隔最大,支持向量机有较好的鲁棒性。

模型训练

通过拉格朗日对偶变换,通过KTT条件,可以将原始问题转换为拉格朗日对偶问题,从而自然的引入核函数。SMO是常用的模型训练算法,其本质上是凸二次规划问题,当所有变量都满足KTT条件,可以得到最佳解。SMO的计算过程直接利用解析解,求解速度较快。

参考文献

[1] Ian Goodfellow / Yoshua Bengio / Aaron Courville . Deep Learning[M]. 北京: 清华 大学出版社,2017-08-01. [2] 张贤达. 矩阵分析与应用[M]. 北京: 人民邮电出版社,2013-11-01. [3] 李航. 统计学习方法[M]. 北京: 清华大学出版社,2012-03. [4] David C. Lay / Steven R. Lay / Judi J. McDonald . 线性代数及其应用[M]. 北京: 机械工业出版社,2018-07. [5] 史蒂文·J. 米勒. 普林斯顿概率论读本[M]. 北京: 人民邮电出版社,2020-08.

支持向量机的python 源码