什么是支持向量机
支持向量机(SVM)是一种二分类模型,它的基础模型时定义在特征空间上的间隔最大的线性分类器。如下图:
支持向量机当训练模型线性可分时,可以通过硬间隔最大化,学习一个线性的模型,上图就是一个硬间隔最大化的模型。当训练数据近似线性不可分时,使用软间隔支持向量机。当线性不可分时,使用核函数和软间隔最大化来学习。本文主要讲述硬间隔支持向量机的推导过程。
硬间隔支持向量机
对于一个线性可分的数据集,划分平面有很多,我们需要找到一个最具鲁棒性的平面,即超平面,来划分数据集。什么才是最具鲁棒性,我们将在后面讲解。
首先定义超平面的线性方程,w和b就是需要求解:
i点到超平面的距离几何间隔(即距离)为:
对于存在最小值,即距离平面最近的点:
这里就要提到上面的最具鲁棒性,需要最具鲁棒性就需要将最大化,简单来说,就是要找到距离超平面最近的点,同时这些点距离超平面的间隔要近可能的大,这些点我们称之为支持向量,也就是我们需要保留的点。我们写成数学公式:
将定义为,于是上面的式子可以写成:
对面上面式子,我们可以用=1,代替,相对于对数据点进行了等比例缩放,不影响求解的w和b。同时最大化和最小化等价,再次化简:
这就是最终要求解的最优化问题。
求解方程,对偶问题
对于求解线性可分支持向量机的最优化问题,需要应用到拉格朗日对偶问题(PS.请自行查阅)。
首先构建拉格朗日函数:
根据拉格朗日对偶问题,原始问题的对偶问题就是
先求解,分别对w和b的偏导为0,可得到:
将上述式子带入L(w,b,)中:
如何求解,需要用到SMO算法,这个算法比较复杂,简单来说就是选取两个参数和,固定和以为的参数,然后求解式子,更新两个参数。最后求出,通过和KKT条件求出w,b求解为某个支持向量带入得到的解:
KKT条件:
软间隔支持向量机
在上面的基础上约束条件,其实就是表示有些点可以跨过超平面,获得更加宽松的条件:
对于每个松弛变量,支付一个代价,于是目标函数变成了:
核函数
对于线性不可分的数据集,可以把数据集映射到高纬度空间,实现线性可分。
1 线性核函数
线性内核是最简单的内核函数。 它由内积<x,y>加上可选的常数c给出。 使用线性内核的内核算法通常等于它们的非内核对应物,即具有线性内核的KPCA与标准PCA相同。表达式 :
2 多项式核函数
多项式核是非固定内核。 多项式内核非常适合于所有训练数据都归一化的问题。
这是我做的笔记:
表达式:
3 高斯核可调参数是斜率α,常数项c和多项式度d。
高斯核是径向基函数核的一个例子。
或者,它也可以使用来实现
可调参数sigma在内核的性能中起着主要作用,并且应该仔细地调整到手头的问题。 如果过高估计,指数将几乎呈线性,高维投影将开始失去其非线性功率。 另一方面,如果低估,该函数将缺乏正则化,并且决策边界将对训练数据中的噪声高度敏感。
4指数的内核
指数核与高斯核密切相关,只有正态的平方被忽略。 它也是一个径向基函数内核。
表达式:
5 拉普拉斯算子核
拉普拉斯核心完全等同于指数内核,除了对sigma参数的变化不那么敏感。 作为等价的,它也是一个径向基函数内核。
表达式:
重要的是注意,关于高斯内核的σ参数的观察也适用于指数和拉普拉斯内核。