简介
支持向量机(support vector machines,SVM)是一种二分类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使得它有别于感知机;支持向量机还包括核技巧,这使得它成为实质上的非线性分类器。
支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优算法。
支持向量机的方法包括:线性可分支持向量机(linear support vector machine in linearly)、线性支持向量机(linear support vector machine)以及非线性支持向量机(non-linear support vector machine)。上面三个方法由简到繁,简单模型是复制模型的基础,也是复杂模型的特殊情况。
当训练数据线性可分时,通过硬间隔最大化(hard margin maximization),学习一个线性的分类器,即线性可分支持向量机,又称硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化(soft margin maximization),学习一个线性的分类器,即线性支持向量机,又称软间隔支持向量机;当训练数据线性不可分时,通过核技巧(kernel trick)及软间隔最大化,学习非线性支持向量机。
当输入空间是欧式空间或者离散集合、特征空间为希尔伯特空间时,核函数(kernel function)表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机,这种方法称为核技巧。核方法(kernel method)是比支持向量机更为一般的机器学习方法。
线性可分支持向量机
对于 二分类问题。假设输入空间与特征空间为两个不同的空间,输入空间为欧氏空间或者离散集合,特征空间为欧氏空间或希尔伯特空间。线性可分支持向量机,线性支持向量机假设这两个空间的元素一一对于,并将输入空间中的输入映射为特征空间中的特征向量。非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量。所有,输入都是由输入空间转换成特征空间,只需向量机的学习是在特征空间进行的。
假设给定一个特征空间上的训练数据集: T={
(x1,y1),(x2,y2),...,(xN,yN)} 其中, xiϵχ=Rn,yiϵY={
+1,−1},i=1,2,3,...,N,xi 是第 i 个特征向量,也称为实例,
线性可分定义
对上面给的数据集,存在某个超平面 S:w∗x+b=0 ,能够将数据集中的正实例点和负实例点完全的划分到超平面的两侧,即对所有的 yi=+1 的实例 i ,有
一般地,当训练数据集线性可分时,存在无穷多个超平面可将两类数据正确的分开。感知机利用误差分类最小的策略求得分离超平面,不过这个时候的解也是无穷多个。线性可分支持向量机利用间隔最大化求得分离最大化的最优分离超平面,这个解释唯一的。
线性可分支持向量机
给定线性可分训练数据集,通过硬间隔最大化或者等价的求解相应的凸二次规划问题学习得到的分离超平面为
如上图所示,对于特征向量是二维特征空间的二分类问题,训练数据集线性可分,存在超平面使数据集正确的分成两类。
函数间隔和几何间隔
对于一点距离分离超平面的远近可以表示分类预测的确信程度。在超平面 wx+b=0 确定的情况下, |wx+b| 表示点 x 到超平面的距离,
函数间隔
对于给定的训练数据集 T 和超平面
定义超平面 (w,b) 关于训练数据集 T 的函数间隔为超平面
γ^=mini=1,..,Nγi^
函数间隔可以表示分类预测的正确性及确信度,但是选择分离超平面时,当 w,b 成倍的变化时候,超平面没有变,但是函数间隔也成倍的变化。所有要对 w 增加约束,一般使
如上图,超平面 (w,b) 以及其法向量 w .点