线性支持向量机
线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,因为这时上述方法的不等式约束并不能都成立。
举2个例子:
如果没有混入异常点,导致不能线性可分,则数据可以按上面的实线来做超平面分离的。
这种情况虽然不是不可分的,但是由于其中的一个蓝色点不满足线性可分支持向量机中的不等式约束,导致模型的泛化效果很差。
正常情况下(没有那个蓝色异常点)分离超平面应该是红色的那条线,由于异常点的存在,实际得到的分离超平面是黑色的粗虚线。(间隔不同啊,所以泛化性能也不一样)
软间隔最大化
怎么解决呢?
对硬间隔最大化做出一些让步:放宽SVM的限制,可以允许存在一些误分类的点。
线性不可分意味着某些样本点
(xi,yi)不能满足函数间隔大于等于1的约束条件,为了解决这个问题,可以对每个样本点
(xi,yi)引进一个松弛变量
ζi≥0,使得函数间隔加上松弛变量大于等于1.这样约束条件变为
yi(wxi+b)≥1−ζi
松弛变量的引入就是i为了对付那些离群点的,其他点(姑且称作正常点)的松弛变量都是0
同时,对每一个松弛变量
ζi,支付一个代价
ζi。目标函数由原来的
2∣∣w∣∣2变成
2∣∣w∣∣2+Ci=1∑Nζi -------------------------(式1)
这里,C称为惩罚参数,一般由应用问题决定。
C值大的时候对误分类的惩罚大,这时候间隔会变小
C值小时对误分类的惩罚变小,间隔相应的变大。
式1的意义在于使间隔尽量大,同时使误分类的个数尽量少。
线性不可分的线性支持向量机的学习问题变成下面的凸二次规划问题:
minw,b,ζ2∣∣w∣∣2+Ci=1∑Nζi -----------------------------(式2)
s.t:yi(wxi+b)≥1−ζi其中i=1,2,3……N
ζi≥0其中i=1,2,3……N
显然 式2 中 每一个样本都有一个对应的松弛变量,用于表示该样本不满足约束
yi(wxi+b)≥1的程度。
通过拉格朗日乘子法可得到下式的拉格朗日函数:
L(w,b,α,ζ,μ)=2∣∣w∣∣2+Ci=1∑mζi+i=1∑mαi(1−ζi−yi(wxi+b))−i=1∑mμiζi ---------------(式3)
其中
αi≥0,μi≥0是拉格朗日乘子
令:
L(w,b,α,ζ,μ)对w,b,ζ求偏导为零可得
w=i=1∑mαiyixi
0=i=1∑mαiyi
C=αi+μi
将上面三个等式带入式3可得线性支持向量机问题的对偶形式
maxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj-------------(式4)
s.t.0=i=1∑mαiyi
0≤αi≤C
对比一下硬间隔下的对偶问题可以看出,两者的唯一的差别就在于对偶变量的约束不同。
软间隔为
0≤αi≤C,硬间隔为
0≤αi
要求式4的最优解,最优解需要满足下列KKT条件:
αi≥0,μi≥0
yif(xi)−1+ζ≥0
αi(yif(xi)−1+ζ)=0-------------(对偶互补条件)
ζi≥0,μiζi=0
KKT条件的边界意义:
1)对于无约束的变量偏导为0
2)对于有约束的变量(原始约束和引入拉格朗日乘子后的约束),在约束边界可以不为0,不在约束边界偏导必为0
(其中,不在约束边界,使得函数有了伸缩性,使其取值是一个区间而不是一个点)
对偶互补条件就是对2的数学描述:
αi(yif(xi)−1+ζ)=0 其中
yif(xi)−1+ζ≥0是原始约束
当
yif(xi)−1+ζ≥0不在原始边界时,它在各个方向是是“自由的”,若此时偏导
αi不为零(可以这样理解:把这个约束整体当做一个变量求偏导,剩下的就是
αi),那么它沿着原始问题中的负梯度方向移动时,可取的函数值变小,那么此时就不是最优解。
所以当不在约束边界上时,
αi必须为0
当在约束边界上时,即
yif(xi)−1+ζ=0,它在边界上的移动不会改变函数值,所以它的偏导数可以取合适的值来进一步减少函数值。即它的偏导数
αi可取大于0的值。
由上述KKT条件可知:对于任意训练样本
(xi,yi),总有
αi=0或yif(xi)=1−ζi
若
αi=0则该样本不会对
f(x)有任何影响;
若
αi>0,则必有
yif(xi)=1−ζi,即该样本是支持向量
由
C=αi+μi和
ζi≥0,μiζi=0可知:
1)若
αi<C,则μi>0进而
ζi=0即该样本恰在最大间隔边界上。
2)若
αi=C,则有μi=0,此时若ζi≤1,则该样本落在最大间隔内部,若ζi>1,则该样本别错误分类
由此可以看出,软间隔支持向量机的最终模型仅与支持向量有关,即通过hinge损失函数扔保持了稀疏性。