上一讲中我们介绍了最大间隔分类器的概念,这一节,我们介绍一下什么是支撑向量:
1、支撑向量
支撑向量的英文名叫supporting vector,为了在后文中看上去显眼,我们后面统一使用英文名。不妨回忆一下上次最后一张图:
可以看到两个支撑着中间的 gap 的超平面,它们到中间的超平面 的距离相等(想想看:为什么一定是相等的?),即我们所能得到的最大的 几何间隔γ˜ 。而“支撑”这两个超平面的必定会有一些点,试想,如果某超平面没有碰到任意一个点的话,那么我就可以进一步地扩充中间的 gap ,于是这个就不是最大的间隔了。由于在 n 维向量空间里一个点实际上是和以原点为起点,该点为终点的一个向量是等价的,所以这些“支撑”的点便叫做支持向量。
很显然,由于这些 support vector 刚好在边界上,所以它们是满足 y(wTx+b)=1 (还记得我们把 函数间隔定为 1 了吗?),而对于所有不是支持向量的点,也就是在“阵地后方”的点,则显然有 y(wTx+b)>1 。事实上,当最优的超平面确定下来之后,这些后方的点就完全成了路人甲了,它们可以在自己的边界后方随便飘来飘去都不会对超平面产生任何影响。这样的特性在实际中有一个最直接的好处就在于存储和计算上的优越性,例如,如果使用 100 万个点求出一个最优的超平面,其中是 supporting vector 的有 100 个,那么我只需要记住这 100 个点的信息即可,对于后续分类也只需要利用这 100 个点而不是全部 100 万个点来做计算。
哈哈,说了这么多,其实 support vector很简单,就是到分类超平面的函数间隔为1的点,即距离超平面最近的点。至此,我们已经学习了SVM的基本原理,接下来,就要进入到复杂的模型推导环节了,大家做好准备!