概述
支持向量机(SVM)是一种常见的二分类模型。与感知机相比,支持向量机在两个方面做出了改进:
- 几何间隔最大化思想。因此SVM找到的分类超平面是唯一的,感知机的解根据初值的选择、训练数据的选择顺序会得到不同的无穷多个解。
- 核技巧。引入核技巧后,SVM可以扩展到非线性分类场景。
从简单的场景到复杂的场景理解SVM的原理,即:训练集线性可分、线性近似可分、线性不可分三种情况。
(SVM的背后涉及到拉格朗日对偶性、正定核等比较复杂的数学知识,这里只梳理一下SVM的原理和思路,更细节的部分如果以后碰到再回头细扣。)
一、几何间隔
设有一超平面,它关于训练集T中的样本的几何间隔定义为:
其中,。
而超平面到训练集的距离被定义为关于训练集的所有样本(样本总数为N)的最小几何间隔:
(可以理解为超平面到训练集最近的样本的几何间隔,SVM最大化的就是这个间隔。)
二、线性可分SVM
SVM的思想是通过最大化几何间隔,将数据集中最难被分类的样本以足够大的置信度正确分类。
当训练集线性可分时,存在超平面将训练集中的所有数据正确分类,这种情况下的SVM就叫线性可分SVM:
线性可分SVM求解的优化问题表示为:
它的等价优化问题写为下式(会比上面的公式更易求解,实际中也用的下式):
三、线性近似可分SVM
当训练集近似可分时,对每个样本引入一个松弛变量,使得间隔加上这个松弛变量,并为每个松弛变量对应一个代价为,因此优化问题改写为:
线性近似可分时,SVM的策略如下:
四、非线性SVM
在非线性数据集上,SVM采取的思路是:
- 先用核函数将原空间的数据映射到新的空间,即将非线性问题转化为线性问题
- 在新的空间用上述线性方法(软间隔最大化)进行分类
核函数的作用是将非线性问题转化为线性问题,核函数做的事如下图所示:
在核函数的选择上,一般是依赖领域知识直接选择,常见的核函数有多项式核函数、高斯核函数等。
整个非线性SVM做的事如下图所示:
参考:
李航《统计学习方法(第2版)》