# 4 -- Soft-Margin Support Vector Machine
上节课我们主要介绍了Kernel SVM。先将特征转换和计算内积这两个步骤合并起来,简化计算、提高计算速度,再用Dual SVM的求解方法来解决。Kernel SVM不仅能解决简单的线性分类问题,也可以求解非常复杂甚至是无限多维的分类问题,关键在于核函数的选择,例如线性核函数、多项式核函数和高斯核函数等等。但是,我们之前讲的这些方法都是Hard-Margin SVM,即必须将所有的样本都分类正确才行。这往往需要更多更复杂的特征转换,甚至造成过拟合。本节课将介绍一种Soft-Margin SVM,目的是让分类错误的点越少越好,而不是必须将所有点分类正确,也就是允许有noise存在。这种做法很大程度上不会使模型过于复杂,不会造成过拟合,而且分类效果是令人满意的。
### **Motivation and Primal Problem**
上节课我们说明了一点,就是SVM同样可能会造成overfit。原因有两个,一个是由于我们的SVM模型(即kernel)过于复杂,转换的维度太多,过于powerful了;另外一个是由于我们坚持要将所有的样本都分类正确,即不允许错误存在,造成模型过于复杂。如下图所示,左边的图![](https://img.kancloud.cn/2e/07/2e07bb9dc5874ee7ae24bcf1a2dc0045_19x17.jpg)是线性的,虽然有几个点分类错误,但是大部分都能完全分开。右边的图![](https://img.kancloud.cn/d6/ca/d6ca3de56e5c52d9fc924c40c981d657_20x16.jpg)是四次多项式,所有点都分类正确了,但是模型比较复杂,可能造成过拟合。直观上来说,左边的图是更合理的模型。
![这里写图片描述](https://img.kancloud.cn/cd/86/cd86e8291531bcfa4e1655a63f147490_581x177.jpg)
如何避免过拟合?方法是允许有分类错误的点,即把某些点当作是noise,放弃这些noise点,但是尽量让这些noise个数越少越好。回顾一下我们在机器学习基石笔记中介绍的pocket算法,pocket的思想不是将所有点完全分开,而是找到一条分类线能让分类错误的点最少。而Hard-Margin SVM的目标是将所有点都完全分开,不允许有错误点存在。为了防止过拟合,我们可以借鉴pocket的思想,即允许有犯错误的点,目标是让这些点越少越好。
![这里写图片描述](https://img.kancloud.cn/eb/33/eb3328f9d5698b24177e961affa8073e_575x121.jpg)
为了引入允许犯错误的点,我们将Hard-Margin SVM的目标和条件做一些结合和修正,转换为如下形式:
![这里写图片描述](https://img.kancloud.cn/cb/32/cb320dc7c2e0f3cdb7352eb62cd4fd5c_578x130.jpg)
修正后的条件中,对于分类正确的点,仍需满足![](https://img.kancloud.cn/1e/d0/1ed09660e5a3a86a823b4ea9de999b55_134x20.jpg),而对于noise点,满足![](https://img.kancloud.cn/77/5b/775bc548a420e5d132aaae972c88df40_158x20.jpg),即没有限制。修正后的目标除了![](https://img.kancloud.cn/2e/0b/2e0bc9f87024e163c5d5f0e8a1f004ab_47x37.jpg)项,还添加了![](https://img.kancloud.cn/46/14/4614f76a12459f364e6e5b5d89c4dd74_159x20.jpg),即noise点的个数。参数C的引入是为了权衡目标第一项和第二项的关系,即权衡large margin和noise tolerance的关系。
我们再对上述的条件做修正,将两个条件合并,得到:
![这里写图片描述](https://img.kancloud.cn/22/d3/22d3d42213a4795eb90edc9e8b9c7f24_580x94.jpg)
这个式子存在两个不足的地方。首先,最小化目标中第二项是非线性的,不满足QP的条件,所以无法使用dual或者kernel SVM来计算。然后,对于犯错误的点,有的离边界很近,即error小,而有的离边界很远,error很大,上式的条件和目标没有区分small error和large error。这种分类效果是不完美的。
![这里写图片描述](https://img.kancloud.cn/e5/5c/e55cf501bd7bd0df24182b9ecea759e1_577x102.jpg)
为了改正这些不足,我们继续做如下修正:
![这里写图片描述](https://img.kancloud.cn/1d/36/1d3656620971935f87facbb033b23a7e_579x153.jpg)
修正后的表达式中,我们引入了新的参数![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg)来表示每个点犯错误的程度值,![](https://img.kancloud.cn/2b/25/2b255bbb82789465fb1f9606c01086c2_50x16.jpg)。通过使用error值的大小代替是否有error,让问题变得易于求解,满足QP形式要求。这种方法类似于我们在机器学习基石笔记中介绍的0/1 error和squared error。这种soft-margin SVM引入新的参数![](https://img.kancloud.cn/5b/52/5b5213f4f4009caf17cc3c053ce840eb_9x16.jpg)。
至此,最终的Soft-Margin SVM的目标为:
![](https://img.kancloud.cn/dc/3b/dc3b14746e6e2e30ecd4bfddbaa55f02_242x54.jpg)
条件是:
![](https://img.kancloud.cn/f0/f0/f0f09d18d331b20ce5a56ee8c2bbdd04_173x20.jpg)
![](https://img.kancloud.cn/2b/25/2b255bbb82789465fb1f9606c01086c2_50x16.jpg)
其中,![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg)表示每个点犯错误的程度,![](https://img.kancloud.cn/aa/48/aa48961fb3e05ae5f97876aab6d96c14_50x16.jpg),表示没有错误,![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg)越大,表示错误越大,即点距离边界(负的)越大。参数C表示尽可能选择宽边界和尽可能不要犯错两者之间的权衡,因为边界宽了,往往犯错误的点会增加。large C表示希望得到更少的分类错误,即不惜选择窄边界也要尽可能把更多点正确分类;small C表示希望得到更宽的边界,即不惜增加错误点个数也要选择更宽的分类边界。
与之对应的QP问题中,由于新的参数![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg)的引入,总共参数个数为![](https://img.kancloud.cn/40/c5/40c58499baac2486e5f4c5d47623a52d_78x19.jpg),限制条件添加了![](https://img.kancloud.cn/2b/25/2b255bbb82789465fb1f9606c01086c2_50x16.jpg),则总条件个数为2N。
![这里写图片描述](https://img.kancloud.cn/29/bc/29bca71902be948985760c824be85fc7_587x297.jpg)
### **Dual Problem**
接下来,我们将推导Soft-Margin SVM的对偶dual形式,从而让QP计算更加简单,并便于引入kernel算法。首先,我们把Soft-Margin SVM的原始形式写出来:
![这里写图片描述](https://img.kancloud.cn/d2/a8/d2a884d30e2905246fd7658145ef8296_580x102.jpg)
然后,跟我们在第二节课中介绍的Hard-Margin SVM做法一样,构造一个拉格朗日函数。因为引入了![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg),原始问题有两类条件,所以包含了两个拉格朗日因子![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)和![](https://img.kancloud.cn/ed/bb/edbbfa3694db051722568362e9ce30b7_18x16.jpg)。拉格朗日函数可表示为如下形式:
![这里写图片描述](https://img.kancloud.cn/e4/dd/e4dd8e192a8852826d084fcfe2746acf_579x162.jpg)
接下来,我们跟第二节课中的做法一样,利用Lagrange dual problem,将Soft-Margin SVM问题转换为如下形式:
![这里写图片描述](https://img.kancloud.cn/27/5a/275a672e569ee7e42286b706dfbc92b9_563x114.jpg)
根据之前介绍的KKT条件,我们对上式进行简化。上式括号里面的是对拉格朗日函数![](https://img.kancloud.cn/80/42/8042b2db33d6fa3f5e32dd3925d87617_110x18.jpg)计算最小值。那么根据梯度下降算法思想:最小值位置满足梯度为零。
我们先对![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg)做偏微分:
![](https://img.kancloud.cn/11/ae/11aea943287ac4e644b6eb9d13d422c6_182x42.jpg)
根据上式,得到![](https://img.kancloud.cn/0a/d0/0ad00847c3d53268ee755886dcd44c40_98x16.jpg),因为有![](https://img.kancloud.cn/0e/b5/0eb5971a9cf36dda5e26f95d08b6d2fa_52x16.jpg),所以限制![](https://img.kancloud.cn/f4/15/f415ef1ff3d458fabf370faac6c4e59a_92x15.jpg)。将![](https://img.kancloud.cn/0a/d0/0ad00847c3d53268ee755886dcd44c40_98x16.jpg)代入到dual形式中并化简,我们发现![](https://img.kancloud.cn/ed/bb/edbbfa3694db051722568362e9ce30b7_18x16.jpg)和![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg)都被消去了:
![这里写图片描述](https://img.kancloud.cn/de/47/de47a941a547ac66ee0500a2d6771358_554x67.jpg)
这个形式跟Hard-Margin SVM中的dual形式是基本一致的,只是条件不同。那么,我们分别令拉个朗日函数L对b和w的偏导数为零,分别得到:
![](https://img.kancloud.cn/be/bf/bebf63f273fc57ac9f0b34f71b4663ab_99x54.jpg)
![](https://img.kancloud.cn/69/7f/697f3951f299861336f447ed402ba84f_120x54.jpg)
经过化简和推导,最终标准的Soft-Margin SVM的Dual形式如下图所示:
![这里写图片描述](https://img.kancloud.cn/c4/3d/c43de99163c48072d1d7f024bd2f4165_576x306.jpg)
Soft-Margin SVM Dual与Hard-Margin SVM Dual基本一致,只有一些条件不同。Hard-Margin SVM Dual中![](https://img.kancloud.cn/b5/f5/b5f51e0deae07262becef971a1b3e967_54x15.jpg),而Soft-Margin SVM Dual中![](https://img.kancloud.cn/f4/15/f415ef1ff3d458fabf370faac6c4e59a_92x15.jpg),且新的拉格朗日因子![](https://img.kancloud.cn/0a/d0/0ad00847c3d53268ee755886dcd44c40_98x16.jpg)。在QP问题中,Soft-Margin SVM Dual的参数![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)同样是N个,但是,条件由Hard-Margin SVM Dual中的N+1个变成2N+1个,这是因为多了N个![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)的上界条件。
对于Soft-Margin SVM Dual这部分推导不太清楚的同学,可以看下第二节课的笔记:[2 – Dual Support Vector Machine](http://blog.csdn.net/red_stone1/article/details/73822768)
### **Messages behind Soft-Margin SVM**
推导完Soft-Margin SVM Dual的简化形式后,就可以利用QP,找到Q,p,A,c对应的值,用软件工具包得到![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)的值。或者利用核函数的方式,同样可以简化计算,优化分类效果。Soft-Margin SVM Dual计算![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)的方法过程与Hard-Margin SVM Dual的过程是相同的。
![这里写图片描述](https://img.kancloud.cn/9d/20/9d209ca2ddd216603f57beb9d23fced6_581x211.jpg)
但是如何根据![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)的值计算b呢?在Hard-Margin SVM Dual中,有complementary slackness条件:![](https://img.kancloud.cn/6a/52/6a527475a5c593024eea5e94ecf5fa8a_200x20.jpg),找到SV,即![](https://img.kancloud.cn/a5/f2/a5f2147522b30f946aa8cf1a987840e6_51x15.jpg)的点,计算得到![](https://img.kancloud.cn/84/42/844247c547ea29a9fe08312453f97930_107x20.jpg)。
那么,在Soft-Margin SVM Dual中,相应的complementary slackness条件有两个(因为两个拉格朗日因子![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)和![](https://img.kancloud.cn/ed/bb/edbbfa3694db051722568362e9ce30b7_18x16.jpg)):
![](https://img.kancloud.cn/82/9d/829dbe6f0330bbd3d5c996144036bd83_238x20.jpg)
![](https://img.kancloud.cn/ec/bd/ecbde98e6af0b84adf35e03deabac170_171x18.jpg)
找到SV,即![](https://img.kancloud.cn/a5/f2/a5f2147522b30f946aa8cf1a987840e6_51x15.jpg)的点,由于参数![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg)的存在,还不能完全计算出b的值。根据第二个complementary slackness条件,如果令![](https://img.kancloud.cn/d7/3e/d73e140e491f46e3be348d6f23f9ca50_90x18.jpg),即![](https://img.kancloud.cn/57/74/57745d581f54ce80c770d0f957d7afc9_58x18.jpg),则一定有![](https://img.kancloud.cn/aa/48/aa48961fb3e05ae5f97876aab6d96c14_50x16.jpg),代入到第一个complementary slackness条件,即可计算得到![](https://img.kancloud.cn/84/42/844247c547ea29a9fe08312453f97930_107x20.jpg)。我们把![](https://img.kancloud.cn/e4/1c/e41c09a47d0d9c76d9943290e7328f5a_89x15.jpg)的点称为free SV。引入核函数后,b的表达式为:
![](https://img.kancloud.cn/df/b2/dfb2c2f119359f72888f16628699e02b_210x39.jpg)
上面求解b提到的一个假设是![](https://img.kancloud.cn/9c/e8/9ce87f8383bb2f258ae03f28e0d5d767_56x15.jpg),这个假设是否一定满足呢?如果没有free SV,所有![](https://img.kancloud.cn/15/48/15488bfffdb2692865be9b57f991b1f6_17x11.jpg)大于零的点都满足![](https://img.kancloud.cn/bd/34/bd347b7749e4245f76fa3639a140d926_56x15.jpg)怎么办?一般情况下,至少存在一组SV使![](https://img.kancloud.cn/9c/e8/9ce87f8383bb2f258ae03f28e0d5d767_56x15.jpg)的概率是很大的。如果出现没有free SV的情况,那么b通常会由许多不等式条件限制取值范围,值是不确定的,只要能找到其中满足KKT条件的任意一个b值就可以了。这部分细节比较复杂,不再赘述。
![这里写图片描述](https://img.kancloud.cn/66/47/6647b0df2328dcc162b31bc39757cc2c_561x204.jpg)
接下来,我们看看C取不同的值对margin的影响。例如,对于Soft-Margin Gaussian SVM,C分别取1,10,100时,相应的margin如下图所示:
![这里写图片描述](https://img.kancloud.cn/0a/d1/0ad1cc66fc8e434484963d2f421541ea_570x205.jpg)
从上图可以看出,C=1时,margin比较粗,但是分类错误的点也比较多,当C越来越大的时候,margin越来越细,分类错误的点也在减少。正如前面介绍的,C值反映了margin和分类正确的一个权衡。C越小,越倾向于得到粗的margin,宁可增加分类错误的点;C越大,越倾向于得到高的分类正确率,宁可margin很细。我们发现,当C值很大的时候,虽然分类正确率提高,但很可能把noise也进行了处理,从而可能造成过拟合。也就是说Soft-Margin Gaussian SVM同样可能会出现过拟合现象,所以参数![](https://img.kancloud.cn/9f/2a/9f2a97f3f7e7d6bfa824d92d0350d7ef_45x18.jpg)的选择非常重要。
我们再来看看![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)取不同值是对应的物理意义。已知![](https://img.kancloud.cn/f4/15/f415ef1ff3d458fabf370faac6c4e59a_92x15.jpg)满足两个complementary slackness条件:
![](https://img.kancloud.cn/82/9d/829dbe6f0330bbd3d5c996144036bd83_238x20.jpg)
![](https://img.kancloud.cn/ec/bd/ecbde98e6af0b84adf35e03deabac170_171x18.jpg)
若![](https://img.kancloud.cn/06/e9/06e96f3dea70308a51684e60c95a2783_53x15.jpg),得![](https://img.kancloud.cn/aa/48/aa48961fb3e05ae5f97876aab6d96c14_50x16.jpg)。![](https://img.kancloud.cn/aa/48/aa48961fb3e05ae5f97876aab6d96c14_50x16.jpg)表示该点没有犯错,![](https://img.kancloud.cn/06/e9/06e96f3dea70308a51684e60c95a2783_53x15.jpg)表示该点不是SV。所以对应的点在margin之外(或者在margin上),且均分类正确。
若![](https://img.kancloud.cn/37/ca/37ca71a86b100902427018271f04ac1e_91x15.jpg),得![](https://img.kancloud.cn/aa/48/aa48961fb3e05ae5f97876aab6d96c14_50x16.jpg),且![](https://img.kancloud.cn/e3/38/e338226fa144adc373be876bedbf09cd_133x20.jpg)。![](https://img.kancloud.cn/aa/48/aa48961fb3e05ae5f97876aab6d96c14_50x16.jpg)表示该点没有犯错,![](https://img.kancloud.cn/e3/38/e338226fa144adc373be876bedbf09cd_133x20.jpg)表示该点在margin上。这些点即free SV,确定了b的值。
若![](https://img.kancloud.cn/f7/8f/f78f2dabefe4852ca29a6ebc5066fe82_58x15.jpg),不能确定![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg)是否为零,且得到![](https://img.kancloud.cn/13/48/13483a0c5a0ebabb6818521df30b00cc_172x20.jpg),这个式表示该点偏离margin的程度,![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg)越大,偏离margin的程度越大。只有当![](https://img.kancloud.cn/aa/48/aa48961fb3e05ae5f97876aab6d96c14_50x16.jpg)时,该点落在margin上。所以这种情况对应的点在margin之内负方向(或者在margin上),有分类正确也有分类错误的。这些点称为bounded SV。
所以,在Soft-Margin SVM Dual中,根据![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)的取值,就可以推断数据点在空间的分布情况。
![这里写图片描述](https://img.kancloud.cn/92/85/928570eddb6b7832bcdd63c21015f36f_589x190.jpg)
### **Model Selection**
在Soft-Margin SVM Dual中,kernel的选择、C等参数的选择都非常重要,直接影响分类效果。例如,对于Gaussian SVM,不同的参数![](https://img.kancloud.cn/65/94/659406519f7d5b34b13982e58b617807_44x18.jpg),会得到不同的margin,如下图所示。
![这里写图片描述](https://img.kancloud.cn/4b/27/4b2736f97421632f052e3c729289338e_289x285.jpg)
其中横坐标是C逐渐增大的情况,纵坐标是![](https://img.kancloud.cn/8c/8b/8c8b9dbbd1e6b0fac772d9589e2d0ca2_10x12.jpg)逐渐增大的情况。不同的![](https://img.kancloud.cn/65/94/659406519f7d5b34b13982e58b617807_44x18.jpg)组合,margin的差别很大。那么如何选择最好的![](https://img.kancloud.cn/65/94/659406519f7d5b34b13982e58b617807_44x18.jpg)等参数呢?最简单最好用的工具就是validation。
validation我们在机器学习基石课程中已经介绍过,只需要将由不同![](https://img.kancloud.cn/65/94/659406519f7d5b34b13982e58b617807_44x18.jpg)等参数得到的模型在验证集上进行cross validation,选取![](https://img.kancloud.cn/c7/ca/c7ca9d250c81c8a0a1dd11b1926d006a_26x15.jpg)最小的对应的模型就可以了。例如上图中各种![](https://img.kancloud.cn/65/94/659406519f7d5b34b13982e58b617807_44x18.jpg)组合得到的![](https://img.kancloud.cn/c7/ca/c7ca9d250c81c8a0a1dd11b1926d006a_26x15.jpg)如下图所示:
![这里写图片描述](https://img.kancloud.cn/8d/e1/8de17e93a1a57f121caaca687f1d8fd0_287x283.jpg)
因为左下角的![](https://img.kancloud.cn/26/ee/26ee2a989d74d31747fe3f1f371f602b_71x18.jpg)最小,所以就选择该![](https://img.kancloud.cn/65/94/659406519f7d5b34b13982e58b617807_44x18.jpg)对应的模型。通常来说,![](https://img.kancloud.cn/26/ee/26ee2a989d74d31747fe3f1f371f602b_71x18.jpg)并不是![](https://img.kancloud.cn/65/94/659406519f7d5b34b13982e58b617807_44x18.jpg)的连续函数,很难使用最优化选择(例如梯度下降)。一般做法是选取不同的离散的![](https://img.kancloud.cn/65/94/659406519f7d5b34b13982e58b617807_44x18.jpg)值进行组合,得到最小的![](https://img.kancloud.cn/26/ee/26ee2a989d74d31747fe3f1f371f602b_71x18.jpg),其对应的模型即为最佳模型。这种算法就是我们之前在机器学习基石中介绍过的V-Fold cross validation,在SVM中使用非常广泛。
V-Fold cross validation的一种极限就是Leave-One-Out CV,也就是验证集只有一个样本。对于SVM问题,它的验证集Error满足:
![](https://img.kancloud.cn/9f/cd/9fcd3397825bde99fd064d8d9a328340_96x37.jpg)
也就是说留一法验证集Error大小不超过支持向量SV占所有样本的比例。下面做简单的证明。令样本总数为N,对这N个点进行SVM分类后得到margin,假设第N个点![](https://img.kancloud.cn/40/de/40de181c8e8de6f2d92615150e201e09_64x18.jpg)的![](https://img.kancloud.cn/15/68/156818b42f63f0d8af0bdb530c90b13e_57x15.jpg),不是SV,即远离margin(正距离)。这时候,如果我们只使用剩下的N-1个点来进行SVM分类,那么第N个点![](https://img.kancloud.cn/40/de/40de181c8e8de6f2d92615150e201e09_64x18.jpg)必然是分类正确的点,所得的SVM margin跟使用N个点的到的是完全一致的。这是因为我们假设第N个点是non-SV,对SV没有贡献,不影响margin的位置和形状。所以前N-1个点和N个点得到的margin是一样的。
那么,对于non-SV的点,它的![](https://img.kancloud.cn/8e/2d/8e2d45da0c5444551ea79ad5f66e9ec2_53x15.jpg),即对第N个点,它的Error必然为零:
![](https://img.kancloud.cn/c6/e6/c6e65f65482b83d84befa472d7480444_423x18.jpg)
另一方面,假设第N个点![](https://img.kancloud.cn/e5/ff/e5ffbd78bfff4d3bd880264cf224fd7a_57x18.jpg),即对于SV的点,它的Error可能是0,也可能是1,必然有:
![](https://img.kancloud.cn/cb/16/cb16f299719bd7b1843e29d2d6b1b77b_61x15.jpg)
综上所述,即证明了![](https://img.kancloud.cn/9f/cd/9fcd3397825bde99fd064d8d9a328340_96x37.jpg)。这符合我们之前得到的结论,即只有SV影响margin,non-SV对margin没有任何影响,可以舍弃。
SV的数量在SVM模型选择中也是很重要的。一般来说,SV越多,表示模型可能越复杂,越有可能会造成过拟合。所以,通常选择SV数量较少的模型,然后在剩下的模型中使用cross-validation,比较选择最佳模型。
### **总结**
本节课主要介绍了Soft-Margin SVM。我们的出发点是与Hard-Margin SVM不同,不一定要将所有的样本点都完全分开,允许有分类错误的点,而使margin比较宽。然后,我们增加了![](https://img.kancloud.cn/0d/25/0d257e86e15e68e2fb04463117382289_16x16.jpg)作为分类错误的惩罚项,根据之前介绍的Dual SVM,推导出了Soft-Margin SVM的QP形式。得到的![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)除了要满足大于零,还有一个上界C。接着介绍了通过![](https://img.kancloud.cn/96/42/964237caf2be6185a33aa601075d68fb_19x11.jpg)值的大小,可以将数据点分为三种:non-SVs,free SVs,bounded SVs,这种更清晰的物理解释便于数据分析。最后介绍了如何选择合适的SVM模型,通常的办法是cross-validation和利用SV的数量进行筛选。
**_注明:_**
文章中所有的图片均来自台湾大学林轩田《机器学习技法》课程
- 台湾大学林轩田机器学习笔记
- 机器学习基石
- 1 -- The Learning Problem
- 2 -- Learning to Answer Yes/No
- 3 -- Types of Learning
- 4 -- Feasibility of Learning
- 5 -- Training versus Testing
- 6 -- Theory of Generalization
- 7 -- The VC Dimension
- 8 -- Noise and Error
- 9 -- Linear Regression
- 10 -- Logistic Regression
- 11 -- Linear Models for Classification
- 12 -- Nonlinear Transformation
- 13 -- Hazard of Overfitting
- 14 -- Regularization
- 15 -- Validation
- 16 -- Three Learning Principles
- 机器学习技法
- 1 -- Linear Support Vector Machine
- 2 -- Dual Support Vector Machine
- 3 -- Kernel Support Vector Machine
- 4 -- Soft-Margin Support Vector Machine
- 5 -- Kernel Logistic Regression
- 6 -- Support Vector Regression
- 7 -- Blending and Bagging
- 8 -- Adaptive Boosting
- 9 -- Decision Tree
- 10 -- Random Forest
- 11 -- Gradient Boosted Decision Tree
- 12 -- Neural Network
- 13 -- Deep Learning
- 14 -- Radial Basis Function Network
- 15 -- Matrix Factorization
- 16(完结) -- Finale