支持向量机(support vector machine, SVM)是一种经典的分类器,其主要思想是学习一个在特征空间上使间隔最大的分类器。支持向量机的学习可以看成是一个求解凸二次规划问题的过程,同时也等价于正则化的合页损失函数的最小化问题。
支持向量机可以分为:线性可分支持向量机、线性支持向量机、非线性支持向量机三种。当训练数据线性可分时,可通过硬间隔最大化,学习一个线性可分支持向量机(也称为硬间隔支持向量机);当训练数据近似线性可分时,可以通过软间隔最大化,学习一个线性支持向量机(也称为软间隔支持向量机);当训练数据线性不可分时,需要使用核技巧,学习非线性支持向量机。
线性可分支持向量机
问题抽象
一般来说,一个点距离超平面的距离可以表示分类预测的确信程度,如图所示,点C、B、A分类的确信程度依次递增。 |ω⋅x+b| 可以表示点 x 距离超平面的远近。这个“远近”有个名字叫函数间隔。
令
线性可分支持向量机的目的就是找到使 γ^ 最小的超平面。
函数间隔不足以表示分类预测的确信度,因为如果成倍的增加 ω 和 b 的值,超平面并没有改变,但是函数间隔却也同样成倍增加,这显然是不合理的。因此不妨引入几何间隔 ,使间隔是确定的
显然,函数间隔和几何间隔存在以下关系
支持向量机学习的基本想法是求解能正确划分训练数据集并且几何间隔最大的分离超平面,对线性可分的数据集而言,这个超平面是唯一的。
求解最大间隔分离超平面的问题可以表示为下面的约束最优化问题:
意思就是要让最小间隔最大化
根据几何间隔和函数间隔的关系,该问题可以改写为