大纲
上节课我们主要介绍了Kernel SVM。先将特征转换和计算内积这两个步骤合并起来,简化计算、提高计算速度,再用Dual SVM的求解方法来解决。Kernel SVM不仅能解决简单的线性分类问题,也可以求解非常复杂甚至是无限多维的分类问题,关键在于核函数的选择,例如线性核函数、多项式核函数和高斯核函数等等。但是,我们之前讲的这些方法都是Hard-Margin SVM,即必须将所有的样本都分类正确才行。这往往需要更多更复杂的特征转换,甚至造成过拟合。本节课将介绍一种Soft-Margin SVM,目的是让分类错误的点越少越好,而不是必须将所有点分类正确,也就是允许有noise存在。这种做法很大程度上不会使模型过于复杂,不会造成过拟合,而且分类效果是令人满意的。
Motivation and Primal Problem
1 Cons of Hard-Margin SVM
给定一批资料如图所示,资料中可能会存在一些noise.直观上来说,左边的分离超平面更加合理一些,简单却又可以把绝大部分资料给分开。右边的分离超平面因为太复杂,拟合到了noise的信息。导致过拟合。所以想要获取好的分离超平面,就需要放弃一些noise 资料
2 Give Up on Some Examples
我们回顾一下在pocket算法,pocket的思想不是将所有点完全分开,而是找到一条分类线能让分类错误的点最少。而Hard-Margin SVM的目标是将所有点都完全分开,不允许有错误点存在。为了防止过拟合,我们可以借鉴pocket的思想,即允许有犯错误的点,目标是让这些点越少越好。
为了引入允许犯错误的点,我们将Hard-Margin SVM的目标和条件做一些结合和修正,转换为如下形式
修正后的条件中,对于分类正确的点,仍需满足
3 Soft-Margin SVM (1/2)
我们再对上述的条件做修正,将两个条件合并,得到:
我们可以发现一下问题
[⋅] 不是线性函数,所以上面的问题不再是QP问题,自然无法转化为Dual问题,利用Kernel来简化计算只能简单的区分对还是错,不能区分小错误还是大错误
为了改进不足,我们继续修正
4 Soft-Margin SVM (2/2)
我们通过引入
参数C是用来权衡large margin 和 margin violation,大的C,希望gen更少的margin violation.小的C,希望更大的margin
此时的QP问题包含
d̂ +1+N 个变量,和2N 个约束
接下来我们可以通过转化为对偶形式,接触对
Dual Problem
1 Lagrange Dual
我们通过引入拉格朗日乘子
接下来,利用Lagrange dual problem,将Soft-Margin SVM问题转换为如下形式:
2 Simplify ξn and βn
根据之前介绍的KKT条件,我们对上式进行简化。上式括号里面的是对拉格朗日函数
我们先对
不失优化性,我们令
3 Other Simplifications
到了这里,我们发现问题跟Hard-Margin SVM中的dual形式是基本一致的,只是条件不同。那么,我们分别令拉格朗日函数L对b和w的偏导数为零
经过进一步化简和推导,我们可以导出最终的形式
4 Standard Soft-Margin SVM Dual
我们发现与Hard-Margin SVM Dual的唯一区别是多了一个上界约束,导致约束条件从
Messages behind Soft-Margin SVM
1 Kernel Soft-Margin SVM
推导完Soft-Margin SVM Dual的简化形式后,就可以利用QP,找到Q,p,A,c对应的值,用软件工具包得到
现在还留下一个问题就是计算b
2 Solving for b
在hard-margin的情况下,我们可以通过选取
在soft-margin的情况下,因为有两个拉格朗日变量
我们选取
所以我们再加上限制,
上面求解b提到的一个假设是
2 Soft-Margin Gaussian SVM in Action
注意Soft-Margin SVM仍然有可能会过拟合,当C过大的时候,能容忍的误差就比较少,就会导致过拟合。
所以对于Soft-Margin Gaussian SVM,我们要谨慎选择参数
3 Physical Meaning of αn
若
αn=0 ,得ξn=0 。ξn=0 表示该点没有犯错,αn=0 表示该点不是SV。所以对应的点在margin之外(或者在margin上),且均分类正确。若
0<α<C ,得ξn=0 ,且yn(wTzn+b)=1 。得ξn=0 表示该点没有犯错,yn(wTzn+b)=1 表示该点在margin上。这些点即free SV,确定了b的值。- 若
αn=C ,不能确定ξn 是否为零,且得到1−yn(wTzn+b)=ξn ,这个式表示该点偏离margin的程度,ξn 越大,偏离margin的程度越大。只有当ξn=0 时,该点落在margin上。所以这种情况对应的点在margin之内负方向(或者在margin上),有分类正确也有分类错误的。这些点称为bounded SV。
所以,在Soft-Margin SVM Dual中,根据
Model Selection
1 Selection by Cross Validation
不同的
2 Leave-One-Out CV Error for SVM
留一交叉验证就是验证集只有一个样本的情况,对于SVM问题,留一交叉验证误差可以表示为:
下面做简单证明
令样本总数为N,对这N个点进行SVM分类后得到margin,假设第N个点
那么,对于non-SV的点,它的
对于SV的点,他的error可能是0,也可能是1,即
那么我们可以得到
这也很符合我们以前的结论,即只有SV影响margin,non-SV对margin没有任何影响,可以舍弃。
SV的数量在SVM模型选择中也是很重要的。一般来说,SV越多,表示模型可能越复杂,越有可能会造成过拟合。所以,通常选择SV数量较少的模型(这里不用CV是为了节省时间),然后在剩下的模型中使用cross-validation,比较选择最佳模型。