支持向量机(SVM)是传统机器学习里的经典分类算法,在 AI 技术谱系里服役了几十年,要解决的问题是:给一批带标签的样本点,找一条分界线(高维情形是一个分界面)把两类分开。能分开的线往往不止一条,SVM 的答案是选离两类都最远的那条,让容错余地尽量大。它诞生于上世纪九十年代,今天在文本分类和小样本表格数据上仍在使用,理解它也有助于看懂大模型出现之前 AI 的主流思路:用明确的数学目标定义"好的分类",再用优化方法把它解出来。
最大间隔:为什么选最宽的那条
直觉是"更稳"。一条刚好从两类点中间挤过去的线,样本稍微动一点就可能分错;离两边都远的线,容错余地大。这个"到两边边界的距离"叫间隔,SVM 的训练目标是把间隔最大化,这是有明确数学依据的优化问题,背后是统计学习理论给出的泛化误差界。训练完成后,分界线对边界附近的模糊样本也更抗扰动——样本小幅变动,判定结果不变。
支持向量:决定边界的只是少数点
决定分界线的,只有离边界最近的少数几个样本,它们叫支持向量。挪动支持向量,边界跟着变;其他点怎么动,只要不越过各自的边界带,分界线一动不动。这个性质很特别:模型最终只由少数关键样本决定,名字也由此而来。对比一下规模感:大模型的参数量动辄几十亿、上百亿,SVM 的"体积"由支持向量数量决定,小样本任务上几百个支持向量就够用,存储和推理开销都很小。
核函数:直线分不开怎么办
如果两类点是"一个圈套着另一个圈",二维平面上画不出直线。SVM 的做法是把数据映射到更高维的空间,在高维里用平面切开。直接做映射计算量会爆炸,核函数的价值在于不真的执行映射,却能直接算出高维空间里的内积,常用的有线性核、多项式核、高斯核(RBF)。选哪个核、惩罚系数 C 取多大,对结果影响很大,通常靠交叉验证来定。以 RBF 核为例,它相当于在很高维的空间里做线性划分,代价是推理时要算新样本与每个支持向量的核值——支持向量太多时推理也会变慢,这也是它在大数据上吃亏的原因之一。
它的边界:什么时候不该用
三条硬边界。其一,数据量很大时训练明显变慢,标准 SVM 的求解开销随样本数增长很快,百万级样本上通常换树模型或线性模型。其二,核函数和惩罚系数需要调,选得不好效果差别很大,调参依赖使用者的经验。其三,它直接输出类别,要概率值需要额外做校准。还有一条容易被忽略:它处理不了语义级的理解——判断两条评论的情感倾向,特征工程做不动,这类任务如今属于语言模型的地盘。
| 场景 | 做法 | 判断标准 |
|---|---|---|
| 样本几千以内、特征已工程化 | 先试线性核 SVM,再和树模型对比 | 交叉验证分数接近时,选模型更小、推理更快的那方 |
| 两类呈非线性边界 | 换 RBF 核,网格搜索调 C 和 gamma | 超参数小幅变动导致分数大幅波动,说明数据量不够约束 |
| 样本量百万级以上 | 放弃核 SVM,改用线性模型或梯度提升树 | 训练时长超出可接受范围即视为不适用 |
| 任务需要概率输出 | 训练后做概率校准,如 Platt 缩放 | 校准曲线偏离对角线明显则概率不可信 |
它和今天的 AI 什么关系
大模型时代的日常任务很少直接用 SVM,但它的思想没有过时:间隔最大化对应"边界要留余量"的稳健思路,支持向量的稀疏性对应"模型只依赖关键样本"的简洁思路。今天如果面对一张几千行的表格数据,特征清楚、标注可靠,SVM 或树模型依然是起步快、成本低的路线;涉及文本语义理解,就进入语言模型的地盘,此时要权衡的是本地部署开源权重模型还是调云端 API,费用量级可以参考这篇免费版和付费版大模型的差异。两种路线服务不同规模的问题,按任务性质选即可。
支持向量机速查
- 目标:找间隔尽量宽的分界面
- 边界只由支持向量决定,其余样本无关
- 核函数让它在高维空间切分非线性数据
- 强项:小样本、表格数据;弱项:海量数据、语义理解


