浅谈SVM(五)

四、使用松弛变量处理 outliers 方法
之前我们假定,数据是线性可分的,亦即可以找到一个可行的超平面将数据完全分开。后来为了处理非线性数据,使用 Kernel 函数的方法对原来的线性 SVM 进行了推广,使得非线性的情况也能处理。虽然通过映射 Φ(.) 将原始数据映射到高维空间之后,能够线性分隔的概率大大增加,但是对于某些情况还是很难处理。
例如可能并不是因为数据本身是非线性结构的,而只是因为数据有噪声。对于这种偏离正常位置很远的数据点,我们称之为 outlier,在我们原来的 SVM 模型里,outlier 的存在有可能造成很大的影响,因为超平面本身就是只有少数几个支持向量组成的,如果这些支持向量里又存在 outlier 的话,其影响就很大了。例如下图:


outliers

用黑圈圈起来的那个蓝点是一个 outlier,它偏离了自己原来所应该在的那个半空间,如果直接忽略掉它的话,原来的分隔超平面还是挺好的,但是由于这个 outlier 的出现,导致分隔超平面不得不被挤歪了,变成图中黑色虚线所示(这只是一个示意图,并没有严格计算精确坐标),同时间隔也相应变小了。当然,更严重的情况是,如果这个 outlier 再往右上移动一些距离的话,我们将无法构造出能将数据分开的超平面来。
为了处理这种情况,SVM 允许数据点在一定程度上偏离一下超平面。例如上图中,黑色实线所对应的距离,就是该 outlier 偏离的距离,如果把它移动回来,就刚好落在原来的超平面上,而不会使得超平面发生变形了。
首先我们看到原来的约束条件为:

yi(wTxi+b)1

意思是说离分类面最近的样本点函数间隔也要比 1 大。如果要引入容错性,就给 1 这个硬性的阈值加一个松弛变量,即允许

yi(wTxi+b)1ξi

其中 ξi0 称为松弛变量(slack variable),因为松弛变量是非负的,因此最终的结果是要求间隔可以比 1 小。但是当某些点出现这种间隔比 1 小的情况时(这些点也叫离群点),意味着我们放弃了对这些点的精确分类,而这对我们的分类器来说是种损失。但是放弃这些点也带来了好处,那就是使分类面不必向这些点的方向移动,因而可以得到更大的几何间隔(在低维空间来看,分类边界也更平滑)。显然我们必须权衡这种损失和好处。当然,如果我们使得 ξi 任意大的话,那任意的超平面都是符合条件的了。所以,我们在原来的目标函数后面加上一项,使得这些的总和也要最小:

min12||w||2+Cni=1ξi

其中 C 是一个参数,用于控制目标函数中两项(“寻找间隔最大的超平面”和“保证数据点偏差量最小”)之间的权重。注意,其中 ξi 是需要优化的变量之一,而 C 是一个事先确定好的常量。完整地写出来是这个样子:
min12||w||2+Cni=1ξis.t.yi(wTxi+b)1ξiξi0

这个式子有这么几点要注意:
1、并非所有的样本点都有一个松弛变量与其对应。实际上只有“离群点”才有,或者也可以这么看,所有没离群的点松弛变量都等于 0
2、松弛变量的值实际上标示出了对应的点到底离群有多远,值越大,点就越远;
3、惩罚因子 C 决定了你有多重视离群点带来的损失,显然当所有离群点的松弛变量的和一定时,你定的 C 越大,对目标函数的损失也越大,此时就暗示着你非常不愿意放弃这些离群点,最极端的情况是你把 C 定为无限大,这样只要稍有一个点离群,目标函数的值马上变成无限大,马上让问题变成无解,这就退化成了原始(硬间隔)问题。数据集偏斜(一个样本很大,一个样本很小)的情况下可以通过调整 C 来进行一定的优化。
4、惩罚因子 C 不是一个变量,整个优化问题在解的时候, C 是一个你必须事先指定的值,指定这个值以后,解一下,得到一个分类器,然后用测试数据看看结果怎么样,如果不够好,换一个 C 的值,再解一次优化问题,得到另一个分类器,再看看效果,如此就是一个参数寻优的过程,但这和优化问题本身决不是一回事,优化问题在解的过程中, C 一直是定值。
5、尽管加了松弛变量,但这仍然是一个优化问题,解它的过程比起原始的硬间隔问题来说,没有任何更加特殊的地方。
利用类似于之前分析的 Lagrange 方法,我们可以得到:
maxαni=1αi12ni,j=1αiαjyiyjxTixjs.t.0αiC,i=1,2,...,nni=1αiyi=0

具体方法可以参考附录2。

附录2 加入松弛变量的优化问题的转化
首先我们给出加入松弛变量的优化问题:

min12||w||2+Cni=1ξis.t.yi(wTxi+b)1ξiξi0

用之前的方法将约束条件加入到目标函数中,得到拉格朗日函数,如下所示:


L(w,b,ξ,α,γ)=12||w||2+Cni=1ξini=1αi(yi(wTxi+b)1+ξi)+ni=1γiξi

分析方法和前面一样,先让 L 针对 w b ξ 最小化:
Lw=0Lb=0Lξ=0

得到:
w=ni=1αiyixini=1αiyi=0Cαiγi=0

w 带回 L 并化简,得到和原来一样的目标函数:

maxαni=1αi12ni,j=1αiαjyiyjxTixj

不过,由于我们得到 Cαiγi=0 而又有 γi0 (作为拉格朗日乘子的条件),因此有 Cαi0 ,所以整个对偶问题现在写作:
maxαni=1αi12ni,j=1αiαjyiyjxTixjs.t.0αiC,i=1,2,...,nni=1αiyi=0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值