支持向量机(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 个特征向量,也称为实例, yi 是 xi 的类标记,当 yi=+1 时称为正类,当 yi=−1 的时候称为负类 。 (xi,yi) 称为样本点。
对上面给的数据集,存在某个超平面 S:w∗x+b=0 ,能够将数据集中的正实例点和负实例点完全的划分到超平面的两侧,即对所有的 yi=+1 的实例 i ,有 w∗x+b>0 ,对所有的 yi=−1 的实例 i ,有 w∗x+b<0 ,则称数据集 T 为线性可分数据集,否则称为线性不可分。
一般地,当训练数据集线性可分时,存在无穷多个超平面可将两类数据正确的分开。感知机利用误差分类最小的策略求得分离超平面,不过这个时候的解也是无穷多个。线性可分支持向量机利用间隔最大化求得分离最大化的最优分离超平面,这个解释唯一的。
给定线性可分训练数据集,通过硬间隔最大化或者等价的求解相应的凸二次规划问题学习得到的分离超平面为 w∗x+b∗=0 以及相应的分类决策函数 f(x)=sign(w∗x+b∗) 称为线性可分支持向量机。
对于一点距离分离超平面的远近可以表示分类预测的确信程度。在超平面 wx+b=0 确定的情况下, |wx+b| 表示点 x 到超平面的距离, wx+b 的负号与类别标签 y 相对应,所有 y(wx+b) 表示分类正确性及确信程度,这个就是函数间隔(functional margin)
对于给定的训练数据集 T 和超平面 (w,b) ,定义超平面 (w,b) 关于样本点 (xi,yi) 的函数间隔为 γi^=yi(wxi+b)
定义超平面 (w,b) 关于训练数据集 T 的函数间隔为超平面 (w,b) 关于 T 中所有样本点 (xi,yi) 的函数间隔的最小值,即:
γ^=mini=1,..,Nγi^
函数间隔可以表示分类预测的正确性及确信度,但是选择分离超平面时,当 w,b 成倍的变化时候,超平面没有变,但是函数间隔也成倍的变化。所有要对 w 增加约束,一般使 ||w||=1 ,使得间隔是确定的,这个时候的函数间隔就成了几何间隔(geometric margin)
一般地,样本点 (xi,yi) 被超平面真确分类时,点 xi 与超平面 (xi,yi) 的距离就是:
对于给定的训练数据集 T 和超平面 (w,b) ,定义超平面 (w,b) 关于样本点 (xi,yi) 的几何间隔为:
γi=yi(w||w||xi+b||w||)
定义超平面 (w,b) 关于训练数据集 T 的几何间隔为超平面 (w,b) 关于 T 中所有样本点 (xi,yi) 的几何间隔的最小值,即:
γ=mini=1,..,Nγi
定义超平面 (w,b) 关于样本点 (xi,yi) 的几何间隔,在被正确分类时候,值是正的,错误分类时候是负的。在后面的计算中考虑的是带符号的距离。
函数间隔和几何间隔的关系:
支持向量机学习的基本想法是:求解能够正确的划分训练数据集并且几何间隔最大的分离超平面。对于线性可分的训练数据集,线性可分的超平面有无穷多个,但是几何间隔最大的分离超平面式唯一的。这里的间隔最大化又称为硬间隔最大化。
间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据集进行分类。也就是说,能够将正负样本点本开,对于难分的实例点,也能过以最大的确信度将它们分开。这样的超平面对于未知的新数据也能够很好的分类预测。
几何间隔最大的分离超平面
转换成约束最优解问题:
改写成含有函数间隔的形式:
线性可分支持向量机学习的最优化问题:
对于如下约束的最优化问题:
输入:线性可分训练数据集 T={(xi,y1),(x2,y2),...,(xN,yN)} ,其中: xiϵχ=Rn,yiϵY={+1,−1},i=1,2,3,...,N
输入:间隔最大分离超平面和分类决策函数
(1)构建并求解约束最优化问题:
若训练集线性可分,则将训练数据集的样本点完全正确的分开的最大间隔分离超平面存在并且唯一。
(1)存在性
训练数据集线性可分–>约束问题存在可行解。
目标函数存在下界–>约束问题必有解
训练数据集中有正也有负+(0,b)不是最优的可行解
===>>>存在分离超平面
(2)唯一性
假设存在两个最优解 (w1,b1),(w2,b2) ,显然 ||w1||=||w2||=c
令 w0=w1+w22
则: c≤||w0||≤||w1||2+||w2||2=c
||w0||=||w1||2+||w2||2
w1=kw2
k=−1 时候 w0=0 显然不是问题的可行解,不可取
k=1
则 w1==w2=w∗
设 x1,x2是正样本点,分布对应 (w*,b1),(w*,b2) 满足约束条件等式成立的点
w∗x1+b1=1≥w∗x2+b1
w∗x2+b2=1≥w∗x1+b2
得到 w∗(x1−x2)≥0和w∗x(x2−x1)≥0
则 w∗(x1−x2)=0
设 x3,x4是负样本点,也是满足约束条件等式成立的点
w∗x3+b1=−1
w∗x4+b2=−1
同上 w∗(x3−x4)=0
则
b1=−w∗(x1+x3)2
b2=−w∗(x2+x4)2
b1−b2=−12[w∗(x1−x2)+w∗(x3−x4)]
所有 b1==b2=b∗
得证
在线性可分情况下,训练数据集的样本点与分离超平面 距离最近的样本点的实例 称为 支持向量(supportvector)
也即: 支持向量是使约束条件等号成立的点
也即: yi(wxi+b)−1=0
对 yi=+1 正例点支持向量在超平面 :
对 yi=−1 正例点支持向量在超平面 :
间隔依赖于分离超平面的法向量 w ,等于 2||w||
说明:
决定分离超平面的只是支持向量起作用,其他点不起作用。
支持向量的点一般很少,所有支持向量由很少的重要样本确定
当训练的超平面中支持向量过多的时候,得到的超平面可能是不好的