支持向量机之松弛变量与惩罚因子 (四)

当我们对数据进行处理的时候,不论是分类还是回归,我们都必须考虑某些影响因素,比如噪声、缺省值、异常点等。我们要尽可能使我们的算法或模型对这些因素有很好的鲁棒性。
在上一节中,我们探讨了核函数使SVM对非线性情况也能处理。虽然通过映射φ(x)将原始数据映射到高维空间之后,能够线性分隔的概率大大增加,但是对于某些情况还是很难处理。
当我们数据有异常点的时候,对于这种偏离正常位置很远的数据点,我们也称之为outlier,在我们原来的SVM模型里,outlier 的存在有可能造成很大的影响,因为超平面本身就是只有少数几个 support vector 组成的,如果这些 support vector 里又存在 outlier 的话,其影响就很大了。例如下图:
在这里插入图片描述
从图上我们可以看出左上角有一个蓝点,明显的偏离下方的蓝色点群。如果我们不考虑这个点,就可以得到超平面,图中红色线所在位置。但是如果我们考虑这个点,得到的超平面,即图中两条虚线中间所在位置。很明显,不考虑异常蓝点所在,得到的超平面分类效果更好。

倘若异常蓝点分布在红点内部,那这组数据就变成了不可分。这种“一票否决”的模型肯定不是我们想要的。

之所以会出现这种问题,是因为我们原本的优化问题构建的表达式中,要考虑所有的样本点(不能忽略某一个,因为程序它不知道该忽略哪一个),在此基础上寻找正负类之间的最大几何间隔,而几何间隔本身代表的是距离,是非负的,像上面这种有噪声的情况会使得整个问题无解。这种解法其实也叫做“硬间隔”分类法,因为它硬性的要求所有样本点都满足和分类平面间的距离必须大于某个值。

如何解决这个问题呢,我们可以允许这些异常点到分类平面的距离与其他样本点到分类平面的距离不一样。我们原先对样本点的要求是
在这里插入图片描述
现在我们加入松弛变量,即给硬性阈值1添加一点容错性,公式变为
在这里插入图片描述
因为松弛变量是非负的,因此最终的结果是要求间隔可以比1小。但是当某些点出现这种间隔比1小的情况时(这些点也叫离群点),意味着我们放弃了对这些点的精确分类,而这对我们的分类器来说是种损失。但是放弃这些点也带来了好处,那就是使分类面不必向这些点的方向移动,因而可以得到更大的几何间隔(在低维空间看来,分类边界也更平滑)。显然我们必须权衡这种损失和好处。好处很明显,我们得到的分类间隔越大,好处就越多。回顾我们原始的硬间隔分类对应的优化问题:
在这里插入图片描述
||w||^2就是我们的目标函数(当然系数可有可无),我们希望它越小越好,因而损失就必然是一个能使之变大的量(能使它变小就不叫损失了,我们本来就希望目标函数值越小越好)。那如何来衡量损失,有两种常用的方式,
在这里插入图片描述
在这里插入图片描述
前者叫一阶软间隔分类器,后者叫二阶软间隔分类器,两种方法没有大的区别,用第二种方法的比较多。
把损失加入到目标函数里的时候,就需要一个惩罚因子(cost,也就是libSVM的诸多参数中的C),原来的优化问题就变成了下面这样:
在这里插入图片描述
惩罚因子C用来权衡分类损失和最大间隔之间关系,也即用于控制目标函数中两项(“寻找分类间隔最大的超平面”和“保证数据点偏差量最小”)之间的权重。

从上面这个式子我们可以看到
(1)并非所有的样本点都有一个松弛变量与其对应。实际上只有“离群点”才有,或者也可以这么看,所有没离群的点松弛变量都等于0。
(2)松弛变量的值实际上标示出了对应的点到底离群有多远,值越大,点就越远。
(3)惩罚因子C决定了你有多重视离群点带来的损失,显然当所有离群点的松弛变量的和一定时,你定的C越大,对目标函数的损失也越大,此时就暗示着你非常不愿意放弃这些离群点,最极端的情况是你把C定为无限大,这样只要稍有一个点离群,目标函数的值马上变成无限大,马上让问题变成无解,这就退化成了硬间隔问题。
4)惩罚因子C不是一个变量,整个优化问题在解的时候,C是一个你必须事先指定的值,指定这个值以后,求解优化问题,得到一个分类器,然后用测试数据看看结果怎么样。但是如果效果不好该怎么办呢?我们可以改变C的值,重新得到一个分类器,再用测试数据看看效果如何。
用之前的方法将限制或约束条件加入到目标函数中,得到新的拉格朗日函数,如下所示:
在这里插入图片描述
分析方法如前,让L对w、b和松弛变量最小化,得在这里插入图片描述
将w带回L化简,得到和原来一样的目标函数
在这里插入图片描述
不过,由于我们得到C-ai-ri=0,又有ri>=0(作为拉格朗日乘子的条件),所有有ai<=C,所以整个对偶问题写成:
在这里插入图片描述
相比于我们之前的对偶问题(极大求a):
在这里插入图片描述
可以发现,唯一区别就是a多了个上限C。现在我们再添加上核函数,就可以得到一个完整的、可以处理线性和非线性并能容忍outliers 的SVM模型(一个使用核函数的软间隔线性分类器)
在这里插入图片描述
下一节应该真的是写SMO算法了==

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值