机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine
来源:互联网 发布:2016奥运会网络直播 编辑:程序博客网 时间:2024/06/04 18:02
转载自:http://blog.csdn.net/red_stone1/article/details/74279607
上节课我们主要介绍了Kernel SVM。先将特征转换和计算内积这两个步骤合并起来,简化计算、提高计算速度,再用Dual SVM的求解方法来解决。Kernel SVM不仅能解决简单的线性分类问题,也可以求解非常复杂甚至是无限多维的分类问题,关键在于核函数的选择,例如线性核函数、多项式核函数和高斯核函数等等。但是,我们之前讲的这些方法都是Hard-Margin SVM,即必须将所有的样本都分类正确才行。这往往需要更多更复杂的特征转换,甚至造成过拟合。本节课将介绍一种Soft-Margin SVM,目的是让分类错误的点越少越好,而不是必须将所有点分类正确,也就是允许有noise存在。这种做法很大程度上不会使模型过于复杂,不会造成过拟合,而且分类效果是令人满意的。
Motivation and Primal Problem
上节课我们说明了一点,就是SVM同样可能会造成overfit。原因有两个,一个是由于我们的SVM模型(即kernel)过于复杂,转换的维度太多,过于powerful了;另外一个是由于我们坚持要将所有的样本都分类正确,即不允许错误存在,造成模型过于复杂。如下图所示,左边的图
如何避免过拟合?方法是允许有分类错误的点,即把某些点当作是noise,放弃这些noise点,但是尽量让这些noise个数越少越好。回顾一下我们在机器学习基石笔记中介绍的pocket算法,pocket的思想不是将所有点完全分开,而是找到一条分类线能让分类错误的点最少。而Hard-Margin SVM的目标是将所有点都完全分开,不允许有错误点存在。为了防止过拟合,我们可以借鉴pocket的思想,即允许有犯错误的点,目标是让这些点越少越好。
为了引入允许犯错误的点,我们将Hard-Margin SVM的目标和条件做一些结合和修正,转换为如下形式:
修正后的条件中,对于分类正确的点,仍需满足
我们再对上述的条件做修正,将两个条件合并,得到:
这个式子存在两个不足的地方。首先,最小化目标中第二项是非线性的,不满足QP的条件,所以无法使用dual或者kernel SVM来计算。然后,对于犯错误的点,有的离边界很近,即error小,而有的离边界很远,error很大,上式的条件和目标没有区分small error和large error。这种分类效果是不完美的。
为了改正这些不足,我们继续做如下修正:
修正后的表达式中,我们引入了新的参数
至此,最终的Soft-Margin SVM的目标为:
条件是:
其中,
与之对应的QP问题中,由于新的参数
Dual Problem
接下来,我们将推导Soft-Margin SVM的对偶dual形式,从而让QP计算更加简单,并便于引入kernel算法。首先,我们把Soft-Margin SVM的原始形式写出来:
然后,跟我们在第二节课中介绍的Hard-Margin SVM做法一样,构造一个拉格朗日函数。因为引入了
接下来,我们跟第二节课中的做法一样,利用Lagrange dual problem,将Soft-Margin SVM问题转换为如下形式:
根据之前介绍的KKT条件,我们对上式进行简化。上式括号里面的是对拉格朗日函数
我们先对
根据上式,得到
这个形式跟Hard-Margin SVM中的dual形式是基本一致的,只是条件不同。那么,我们分别令拉个朗日函数L对b和w的偏导数为零,分别得到:
经过化简和推导,最终标准的Soft-Margin SVM的Dual形式如下图所示:
Soft-Margin SVM Dual与Hard-Margin SVM Dual基本一致,只有一些条件不同。Hard-Margin SVM Dual中
对于Soft-Margin SVM Dual这部分推导不太清楚的同学,可以看下第二节课的笔记:台湾大学林轩田机器学习技法课程学习笔记2 – Dual Support Vector Machine
Messages behind Soft-Margin SVM
推导完Soft-Margin SVM Dual的简化形式后,就可以利用QP,找到Q,p,A,c对应的值,用软件工具包得到
但是如何根据
那么,在Soft-Margin SVM Dual中,相应的complementary slackness条件有两个(因为两个拉格朗日因子
找到SV,即
上面求解b提到的一个假设是
接下来,我们看看C取不同的值对margin的影响。例如,对于Soft-Margin Gaussian SVM,C分别取1,10,100时,相应的margin如下图所示:
从上图可以看出,C=1时,margin比较粗,但是分类错误的点也比较多,当C越来越大的时候,margin越来越细,分类错误的点也在减少。正如前面介绍的,C值反映了margin和分类正确的一个权衡。C越小,越倾向于得到粗的margin,宁可增加分类错误的点;C越大,越倾向于得到高的分类正确率,宁可margin很细。我们发现,当C值很大的时候,虽然分类正确率提高,但很可能把noise也进行了处理,从而可能造成过拟合。也就是说Soft-Margin Gaussian SVM同样可能会出现过拟合现象,所以参数
我们再来看看
若
若
若
所以,在Soft-Margin SVM Dual中,根据
Model Selection
在Soft-Margin SVM Dual中,kernel的选择、C等参数的选择都非常重要,直接影响分类效果。例如,对于Gaussian SVM,不同的参数
其中横坐标是C逐渐增大的情况,纵坐标是
validation我们在机器学习基石课程中已经介绍过,只需要将由不同
因为左下角的
V-Fold cross validation的一种极限就是Leave-One-Out CV,也就是验证集只有一个样本。对于SVM问题,它的验证集Error满足:
也就是说留一法验证集Error大小不超过支持向量SV占所有样本的比例。下面做简单的证明。令样本总数为N,对这N个点进行SVM分类后得到margin,假设第N个点
那么,对于non-SV的点,它的
另一方面,假设第N个点
综上所述,即证明了
SV的数量在SVM模型选择中也是很重要的。一般来说,SV越多,表示模型可能越复杂,越有可能会造成过拟合。所以,通常选择SV数量较少的模型,然后在剩下的模型中使用cross-validation,比较选择最佳模型。
总结
本节课主要介绍了Soft-Margin SVM。我们的出发点是与Hard-Margin SVM不同,不一定要将所有的样本点都完全分开,允许有分类错误的点,而使margin比较宽。然后,我们增加了
注明:
文章中所有的图片均来自台湾大学林轩田《机器学习技法》课程
- 台湾大学林轩田机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine
- 机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine
- 机器学习技法 笔记四 Soft-Margin Support Vector Machine
- 机器学习技法-4-Soft Margin Support Vector Machine
- 机器学习技法-Soft-Margin Support Vector Machine
- 台湾国立大学机器学习技法.听课笔记(第四讲) :Soft-Margin Support Vector Machine
- 林轩田--机器学习技法--SVM笔记4--软间隔支持向量机(Soft-Margin Support Vector Machine)
- 台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记2 -- Dual Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine
- 机器学习技法课程学习笔记1 -- Linear Support Vector Machine
- 机器学习技法课程学习笔记2 -- Dual Support Vector Machine
- 机器学习技法课程学习笔记3 -- Kernel Support Vector Machine
- 机器学习技法课程学习笔记6-- Support Vector Regression
- 机器学习技法 笔记一 linear support vector machine
- 机器学习技法 笔记二 dual support vector machine
- 机器学习技法 笔记三 Kernel Support Vector Machine
- 机器学习技法 笔记二 dual support vector machine
- 静态库与动态库的创建与使用
- java日志文件log4j.properties配置详解
- 编程挑战:找一个字符串中最长的单词
- 109. Convert Sorted List to Binary Search Tree
- 页面中文传到后台再传到页面编码
- 机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine
- log4j:WARN Please initialize the log4j system properly解决办法
- PG中支持两阶段提交协议
- 检测评价函数 intersection-over-union ( IOU )
- 世峰数字科技与维他奶有限公司达成三维工业动画项目合作-(sufencg.com)
- vue build :零配置快速开发
- eclipse安装activiti插件和基本使用
- 背景条纹颜色蓝色
- Error retrieving parent for item: No resource found that matches the given name 如何解决