以下参考周老师《机器学习》。
SVM会涉及到硬间隔、软间隔、核函数等概念,别怕,我们一步一步推进,保证可以有一个清晰的认识。
Step 1: 我们从简单的情况入手—>线性可分,即在训练集上一定可以找到一个划分超平面,将两种类别的样本分开。
(1) 问题描述:
将两种类别的样本完全分开的超平面有很多,那么哪一个超平面是最好的?

从上图可以看出,中间加粗的超平面更好,因为它不仅分对了训练样本,还对训练样本有很大的包容性,也就是说 即使训练样本发生了一定扰动,该超平面仍旧可以将它分对。
(2) 划分超平面如何表示?
可以通过如下线性方程组来描述:
wTx+b=0wTx+b=0,其中w=(w1;w2;...;wd)为法向量,d是样本维度w=(w1;w2;...;wd)为法向量,d是样本维度,bb是位移量。
点
到平面的距离公式:
dist=|wTx+b|||w||dist=|wTx+b|||w||
(3) 根据(1)中,我们可以看出我们希望 样本中到超平面的最近距离最大化,用数学公式描述如下:
argmaxw,b(mini|wTxi+b|||w||)argmaxw,b(mini|wTxi+b|||w||)
可以看到,如果找到最优的w,bw,b,我们将w,bw,b任意缩放αα后,仍然是最优的,因为分子分母都有αα,消去了。
通过一定缩放,我们令 mini|wTxi+b|=1mini|wTxi+b|=1
目标就变成了:
argmaxw,b1||w||,s.t.yi(wTxi+b)≥1,i=1,2,...,nargmaxw,b1||w||,s.t.yi(wTxi+b)≥1,i=1,2,...,n
我个人对这里目标函数的得出有点不是很透彻,起码我没有办法一下子跳到那个公式。需要绕一个大弯,我们是想从无数个w,bw,b中,找到最小距离最大化的w,bw,b,对于一对w,bw,b,将它任意放大缩小,这个超平面并没有发生变化,仍是同一个超平面。既然这样,我们就令