资讯

支持向量机 SVM 是什么?找到间隔最大的那条分界线

2026-11-053 分钟阅读百科
TL;DR支持向量机(SVM)是 Vapnik 等人提出的经典分类方法,寻找能把两类样本分开且间隔最大的超平面,通过软间隔容忍噪声、通过核技巧处理非线性问题,1995 年 Cortes 与 Vapnik 发表软间隔版本后广泛流行,曾是深度学习兴起前最受欢迎的机器学习方法之一。

支持向量机(Support Vector Machine,SVM)是一种经典的监督学习方法,主要用于分类,也可以用于回归。它的核心思想是:在两类数据之间找到一个分界面,并且让这个分界面离两边最近的数据点都尽可能地远。它以扎实的数学理论和出色的效果,在 20 世纪 90 年代到 21 世纪初的深度学习兴起之前,是最受欢迎的机器学习方法之一。

最大间隔的思想

假设平面上有两类点,要用一条直线把它们分开。能把它们分开的直线往往有无数条,哪一条最好?支持向量机的回答是:选择那条离两边最近的点都最远的直线,也就是让两类数据之间的“空白地带”最宽。这片空白地带的宽度叫作间隔。直观地说,间隔越宽,分界线越不容易因为新数据的一点小变化而犯错,模型的泛化能力就越好。那些离分界线最近、正好位于间隔边界上的点,叫作支持向量。分界线的位置完全由这几个支持向量决定,其他的点即使移动或删除,也不会影响结果,支持向量机的名字就来源于此。在高维的数据中,分界线就变成了一个超平面。

软间隔:容忍一些错误

要求所有的点都被完美地分开,这叫硬间隔。但现实中的数据常常有噪声,两类数据之间可能有重叠,根本无法完美地分开。1995 年,Corinna Cortes 和 Vladimir Vapnik 提出了软间隔支持向量机:允许少数的点进入间隔甚至被分错,但要为此付出一定的代价。一个超参数 C 控制着这种容忍的程度:C 越大,越不能容忍错误;C 越小,越能容忍错误,从而换取更宽的间隔。

核技巧:处理弯曲的边界

如果两类数据根本不能用一条直线分开,比如一类点在中间、另一类点围成一个圈,怎么办?支持向量机的一个巧妙之处是核技巧:把数据映射到一个更高维的空间中,在那里,原本缠在一起的数据可能就能用一个平面分开了。比如把平面上的点映射到三维空间,让中间的点“升高”,就能用一个水平的平面把它们和外圈的点分开。神奇的是,支持向量机的计算只需要用到数据点之间的内积,而核函数可以直接算出高维空间中的内积,不需要真的把数据映射过去,大大节省了计算量。常用的核函数有线性核、多项式核和高斯核(径向基函数核)。Bernhard Boser、Isabelle Guyon 和 Vapnik 在 1992 年把核技巧引入了支持向量机。

理论基础和应用

支持向量机建立在 Vapnik 等人发展的统计学习理论之上,它的目标函数是凸的,一定能找到全局最优解,不会像神经网络那样陷入局部最优。它在样本数量不太多、特征维度较高的问题上表现很好,曾被广泛用于文本分类、手写数字识别、人脸检测、生物信息学中的蛋白质和基因分类等。

今天的地位

支持向量机的缺点是:当样本数量很大时,训练会变得很慢;需要仔细地选择核函数和调节参数;对于图像、语音等原始的感知数据,它不能像深度神经网络那样自动地学习特征。随着深度学习的兴起,在大多数大规模的任务中,支持向量机已经被神经网络所取代。但它在小样本、高维数据的场景中依然是一个可靠的选择,也是学习机器学习原理的经典内容。