以下参考周老师《机器学习》。
SVM会涉及到硬间隔、软间隔、核函数等概念,别怕,我们一步一步推进,保证可以有一个清晰的认识。
Step 1: 我们从简单的情况入手—>线性可分,即在训练集上一定可以找到一个划分超平面,将两种类别的样本分开。
(1) 问题描述:
将两种类别的样本完全分开的超平面有很多,那么哪一个超平面是最好的?
从上图可以看出,中间加粗的超平面更好,因为它不仅分对了训练样本,还对训练样本有很大的包容性,也就是说 即使训练样本发生了一定扰动,该超平面仍旧可以将它分对。
(2) 划分超平面如何表示?
可以通过如下线性方程组来描述:
wTx+b=0 w T x + b = 0 ,其中 w=(w1;w2;...;wd)为法向量,d是样本维度 w = ( w 1 ; w 2 ; . . . ; w d ) 为 法 向 量 , d 是 样 本 维 度 , b b 是位移量。
点
到平面的距离公式:
dist=|wTx+b|||w|| d i s t = | w T x + b | | | w | |
(3) 根据(1)中,我们可以看出我们希望 样本中到超平面的最近距离最大化,用数学公式描述如下:
argmaxw,b(mini|wTxi+b|||w||) arg max w , b ( min i | w T x i + b | | | w | | )
可以看到,如果找到最优的 w,b w , b ,我们将 w,b w , b 任意缩放 α α 后,仍然是最优的,因为分子分母都有 α α ,消去了。
通过一定缩放,我们令 mini|wTxi+b|=1 min i | w T x i + b | = 1
目标就变成了:
argmaxw,b1||w||,s.t.yi(wTxi+b)≥1,i=1,2,...,n arg max w , b 1 | | w | | , s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , n
我个人对这里目标函数的得出有点不是很透彻,起码我没有办法一下子跳到那个公式。需要绕一个大弯,我们是想从无数个 w,b w , b 中,找到最小距离最大化的 w,b w , b ,对于一对 w,b w , b ,将它任意放大缩小,这个超平面并没有发生变化,仍是同一个超平面。既然这样,我们就令