机器学习 05 SVM
学习内容
-
SVM 硬间隔原理
-
SVM 软间隔
-
序列最小优化算法(SMO) 求解SVM
-
代码设计
算法简介:
支持向量机(support vector machines,SVM)是一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类汽车,间隔最大使它有别于感知机。支持向量机还包括核技巧,这使它成为实质上的非线性分类器,支持向量机的学习策略就是间隔最大化,可形成化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机(linear support vector machine in linearly separable case)、线性支持向量机(linear support vector machine)、非线性支持向量机(non-linear support vector machine)。其中线性可分支持向量机定义如下所示。
一、硬间隔
1.1 SVM-统计学习基础
最小间距超平面:所有样本到平面的距离最小
。而距离度量有了函数间隔和几何间隔,函数间隔与法向量和
有关,
变为
则函数间距变大了,于是提出了几何距离,就是对
处理,除以
,除以向量长度,从而让几何距离不受影响。
但是支持向量机提出了最大间隔分离超平面,这似乎与上面的分析相反,其实这个最大间隔是个什么概念呢?通过公式来分析一下,正常我们假设超平面公式是:
也就是说对于所有的样本到超平面距离 都大于,那这个
如何求解,文中约定了概念支持向量:正负样本最近的两个点,这两个点之间的距离就是
。这中间的超平面有无数个,如何确定这个超平面呢?于是我们可以约束这个超平面到两个最近的点的距离是一样的。
超平面(w,b)关于样本点的几何间隔一般是实例点到超平面的到符号的距离。从函数间隔和几何间隔的定义可知,如果
,则函数间隔和几何间隔相等,如果超平面参数w和b成比例地改变(超平面没有改变),函数间隔也按照此比例改变,而几何间隔不变。
1.2 硬间隔最大化
支持向量机学习的基本思路:求解能够正确划分训练数据集并且几何间隔最大的分离超平面。对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但几何间隔最大的分离超平面是唯一的(可以被证明)。这里的间隔最大化又称为硬间隔最大化。
这里用到了线性可分支持向量机学习算法——最大间隔法。
二、SVM 软间隔
线性可分问题的支持向量机学习方法,对于线性不可分训练数据不适用。因为此时上述方法中的不等式约束并不能成立。解决此问题需要使其软间隔最大化。
对于线性不可分理解:某些样本点不能满足函数间隔大于等于1的约束条件。
(可以证明线性不可分的线性支持向量机的学习问题是下凸二次规划问题)
------------------------------------
参考:《统计学方法》