支持向量机的目的是为了找到分类间隔最大的分割超平面。
分割超平面即距离所有样本最小距离的值最大的超平面。
一般是通过最大化几何间隔实现。
几何间隔:
由于通过按照一定的比例缩放,我们总可以另 y(wx+1) 为1,从而最大化几何间隔就等价于求解 1||w|| 的最大值。
将其转化为求最小值的问题,可得目标函数:
其lagrange函数为
一、求解线性SVM分类器
原始问题是一个极小极大问题,即先求
α
再求
ω
和b,其对偶问题为一个极大极小问题(这里的原因在于原始问题为一个凸二次优化问题,因为满足KKT条件C.1)。而且Lagrange函数是一个凸函数,即存在极小值,通过对该函数求导,可以得到对应的极小值点的解。
从而求解该函数的步骤如下:
(1)求解 minw,bL(w,b,a)
由于Lagrange函数为凸函数,所以存在极值点,对 ω 和b求导,并令偏导为0
可以得到 w=∑αiyixi , ∑αiyi=0
(2)将上述式子带入原始问题,原始问题转化为
s.t.
(3)将原始问题由求极大转变为求极小,可以得到下面的对偶优化问题
s.t.
(4)从而可以得到 ω 和b的值,及得到最大超平面,从而分类结果为
其中 ω∗=∑α∗iyixi 和 b∗=yi−∑α∗jyj(xj⋅xi)
二、软间隔线性分类器
考虑到噪声的存在,提高目标函数的泛化能力,提出了软间隔最大化。
引进一个松弛变量ξ,使得函数间隔加上松弛变量之后可以大于等于1,目标函数转变为
s.t
从而实现在间隔最大的同时保证错误点最少。其中C是惩罚因子,C大时对误差的惩罚增大,即尽可能避免误分类。当C足够大时,所学习到的分类超平面可以被等价为一个线性分类器。
软间隔分类器的对偶问题是
s.t
其满足的KKT条件为
支持向量的概念:
在线性不可分的情况下,对偶问题的解
α∗=(α∗1,α∗2,...α∗n)T
中对应
α∗i>0
的实例被称作支持向量
软间隔线性分类器中的参数变化对决策超平面的影响
下面基于libsvm-3.20进行了一个简单的小实验
1、基于线性核的svm,参数主要有惩罚因子C
1.1、设置C很大,此时近似于一个不带松弛变量的线性svm分类器,可以发现支持向量围绕分割超平面对称分布,在支持向量之外增加同类型样本对分割超平面无影响,在决策边界内部增加样本点会导致分割超平面改变,一般情况下,新增加的样本的会变成支持向量。
1.2、设置C略小,此时SVM对噪点增加了一下容错能力,此时在决策边界内部新增加的样本点距离分割超平面的距离若小于
ξi||ω||
,则对分割超平面无影响。
2、对偶问题的解
α∗i
对分类结果的影响。这里因为支持向量满足
0<α≤C
,又因为在软间隔最大化支持向量机的对偶算法求解过程中有一组约束
其中 α 是对偶算法的解(可以视为约束条件 yi(wxi+b)−1=0 的参数),C是惩罚因子, μ 是松弛变量 ξ 的参数。
所以
(1) 0<ξ<1,分类正确,在间隔边界和分离超平面之间
(2) ξ=1,分类正确,在分离超平面上
(3) ξ>1,在误分一侧
3、从 ω 的计算公式 ω∗=∑α∗iyixi ,增加 α , w增大,从而会有分割超平面斜率增大