支持向量网络
用最宽的间隔把两类分开——而它落在何处,只由边界上那几个点说了算。
在所有能把两群点分开的直线里,支持向量机偏偏只挑一条——留出最多回旋余地的那条;而正是这一个选择,让它的泛化如此出色。
把这个想法拆开看
假设你手里有两类东西——比方说垃圾邮件与正常邮件——每一封都用若干数字来描述,你想要一条规则把它们分开。从几何上看,你是在找一条直线(在更高的维度里,是一张平展的面),让一类落在一边、另一类落在另一边。通常,许多条线都行得通。哪一条最好?
支持向量机的回答是:在两侧都留下最宽空隙的那条。它把边界尽量推离两类各自最近的样本,好让在「一个略有不同的新样本被判错」之前,留有尽可能多的余地。妙的是,唯有最近的那几个样本——支持向量——才要紧;其余的统统消失,这条线也不会动。
它从哪里来
这套方法生长于 AT&T 贝尔实验室——正是那座成就了晶体管与信息论的传奇之地。弗拉基米尔·瓦普尼克在苏联花了几十年,构筑一套关于「学习」的数学理论;移居美国后,他与同事把它化作了一个算法。1992 年的一篇论文,处理了两类能被完美分开的干净情形。随后在 1995 年,科琳娜·科尔特斯与瓦普尼克发表了《支持向量网络》,补上了应对杂乱、相互交叠之真实数据的关键能力——这套方法,就此腾飞。
它为何重要
在深度学习重新崛起之前,支持向量机是实用机器学习的主力。它准确,带有关于「何时能够泛化」的真正数学保证,又能借一个叫作「核技巧」的巧妙捷径,画出弯曲而复杂的边界,同时仍只在求解一个简单、性情温良、答案唯一的问题。有十五年之久,它都是「要被打败」的那个标杆。
一个精确的类比
想象在两片住宅区之间,修一条尽可能宽的马路。你不在乎深嵌在各自街区里的房子;唯有最靠近对面的那些房子,才约束着马路能修多宽、又该修在哪里。那几栋边界上的房子,就是支持向量。挪动内部的一栋,马路毫无变化;轻推一栋边界上的,整条马路就会移位。在下方的点上,亲手试试。
它落在何处
这是机器学习的一大支脉:统计学习——它追求的是「可被证明的泛化」,而非受大脑启发的接线方式。它与神经网络一脉同列于本馆的 AI 书架——罗森布拉特的感知机、鲁梅尔哈特的反向传播,以及后来超越了它的 AlexNet 与 Transformer 等深度网络。但在 1990 与 2000 年代的大半时光里,支持向量机一直默默地赢着。
The support-vector network is a new learning machine for two-group classification problems.
The machine conceptually implements the following idea: input vectors are non-linearly mapped to a very high-dimension feature space. In this feature space a linear decision surface is constructed. Special properties of the decision surface ensures high generalization ability of the learning machine.