支持向量机(二)——松弛变量处理异常点

来源:互联网 发布:linux vi如何保存退出 编辑:程序博客网 时间:2024/05/17 09:07
  • 支持向量机(一)——线性可分支持向量机
  • 支持向量机(二)——松弛变量处理异常点
  • 支持向量机(三)——利用核函数得到非线性分类器

2 松弛变量处理异常点

2.1 原始问题

在博文支持向量机(一)——线性可分支持向量机 一文中,我们介绍了训练数据集线性可分的情况下,应用硬间隔最大化策略得到最优超平面。但是在实际情况中,训练集有很大可能存在噪声,使得某些样本偏离正常范围,称这些样本为异常点,如下图所示
这里写图片描述

这时如果应用硬间隔最大化,得到的最优超平面是图中的黑色实线;而如果不迁就左上角的异常点,得到的最优分类超平面为黑色虚线。可以看出实线是对训练集过拟合的结果,而虚线的泛化能力更好。所以完全正确分类的超平面不一定是最好的。

另外,当训练集本身线性不可分的时候,是不存在能将数据集完全正确分离的超平面的。

线性不可分数据集
不存在超平面能将数据集完全正确划分,但是去除掉一小部异常点之后,剩下的大部分数据是线性可分数据。

对于以上两种情况,硬间隔最大策略不再受欢迎或者有效。此时,我们需要考虑软间隔最大化。软间隔最大化允许样本点落在间隔边界内部甚至允许误分类样本点存在(我们称这些点为超平面的异常点)。这是通过为每个样本点引入一个松弛变量ξi0实现的,只要样本点的函数间隔加上ξi之后大于等于1即可。由于ξi代表了样本点的偏离距离,需要对总偏移距离进行限制。于是引入了松弛变量的原优化问题现在为

minω,bs.t.12||ω||2+Ci=1mξiyi(ωTxi+b)+ξi1ξi0(26)

C>0是惩罚因子,C值大时,对超平面的异常点惩罚较重,也就是说不希望有异常点存在;C值小时,对超平面异常点的惩罚较小。当训练数据线性可分时,如果令C=+,那么优化问题(1)等价于线性可分支持向量机的优化问题。

优化问题(1)可以这样理解:从训练集中选择部分样本,称为剩余训练集,剩余训练集是线性可分的,其余样本点作为异常点。对剩余训练集进行硬间隔最大化,也就是说从函数间隔为1的超平面中选择几何间隔最大的,但同时还要考虑异常点对超平面的偏移程度最小。遍历所有可能的剩余训练集,得到最优的超平面。

2.2 对偶问题

通过极大极小拉格朗日函数,可以得到原始问题(26)的对偶问题。

引入拉格朗日乘子αi0,μi0,构建拉格朗日函数

L(ω,b,ξ,α,μ)=12||ω||2+Ci=1mξi+i=1mαi(1yi(ωTxi+b)ξi)i=1mμiξi(27)

原始问题的对偶问题为:

maxα,μminω,b,ξL(ω,b,ξ,α,μ)

为了求对偶问题,首先需要求极小化问题minω,b,ξL(ω,b,ξ,α,μ)。令

ωL=ωi=1mαiyixi=0(28)

bL=i=1mαiyi=0(29)

ξiL=Cαiμi=0(30)

得到:

ω=i=1mαiyixi(31)

i=1mαiyi=0(32)

Cαiμi=0(33)

代入到L中,得到

minω,b,ξL(ω,b,ξ,α,μ)=12i=1mαiyixTij=1mαjyjxj+i=1mαii=1mαiyij=1mαjyjxTjxii=1mαiyib=12i=1mj=1mαiαjyiyjxTixj+i=1mαii=1mj=1mαiαjyiyjxTixj=12i=1mj=1mαiαjyiyjxTixj+i=1mαi(34)

然后再对minω,b,ξL(ω,b,ξ,α,μ)求极大:

maxα,μs.t.12i=1mj=1mαiαjyiyjxTixj+i=1mαii=1mαiyi=0Cαiμi=0αi0μi0(35)(36)(37)

约束条件(35)(36)(37)等价于

0αiC

μi0

重写上面的优化问题:

minαs.t.12i=1mj=1mαiαjyiyjxTixji=1mαii=1mαiyi=00αiC(38)

优化问题(38)是原始问题(26)的对偶问题,两个优化问题的最优解存在,并且满足KKT条件:

ωL(ω,b,ξ,α,μ)=ωi=1mαiyixi=0(39)

bL(ω,b,ξ,α,μ)=i=1mαiyi=0(40)

ξiL(ω,b,ξ,α,μ)=Cαiμi=0(41)

αi(1yi(ωTxi+b)ξi)=0(42)

1yi(ωTxi+b)ξi0(43)

αi0,i=1,2,,m(44)

μiξi=0(45)

μi0(46)

ξi0(47)

求出对偶问题(38)的最优解α,μ后,由公式(39)可以得出原始问题的最优解ω

ω=i=1mαiyixi(48)

至于b,当0<αj<C时,由公式(41)知道μj>0,于是根据(45)知道

ξj=0
,而由公式(42)可知
1yj(ωTxj+b)ξj=0

于是

1yj(ωTxj+b)=0

于是

b=yjωTxj=yji=1mαiyi(xTixj)(49)

于是得到最优超平面

ωx+b=0

2.3 支持向量

由公式(48)可知,ω和所有αi>0有关,对应的实例称为支持向量。软间隔最大化的支持向量包含间隔边界上的实例、间隔边界内部的实例以及误分类实例。

支持向量包含:

  • 0<αi<C时,由公式(41)知道μI>0,再由公式(45)知道ξi=0,于是由(42)知道
    1yj(ωTxj+b)=0.

所以当0<αi<C时,对应的支持向量位于间隔边界上。

  • αi=C时,有μi=0,对应的ξi可取的值就比较多了:

    • ξi=0时,有

      yj(ωTxj+b)=1

      意味着分类正确,对应的支持向量位于间隔边界上;

    • 0<ξi<1时,有

      0<yj(ωTxj+b)<1

      意味着分类正确,对应的支持向量位于间隔边界内部;

    • ξi=1时,有

      yj(ωTxj+b)=0

      意味着对应的支持向量位于超平面上 ;

    • ξi>1时,有

      yj(ωTxj+b)<0

      意味着对应的支持向量被误分类 。

阅读全文
0 0