机器学习基础四:支持向量机与核方法

15.1 本章导学:统计学习的巅峰之作

支持向量机(SVM)是统计学习理论发展到巅峰的产物,曾在深度学习兴起之前长期占据机器学习的核心地位。它有非常坚实的数学理论基础,在小样本、高维数据场景下表现出色,是机器学习发展史上里程碑式的算法。 虽然今天大模型和深度学习成为主流,SVM 不再是大规模任务的首选,但它的核心思想 —— 最大间隔、核技巧、对偶理论,深刻影响了后续机器学习的发展,核方法更是成为机器学习的通用方法论。理解 SVM,能够极大加深对机器学习本质的理解,也是深入学习统计学习理论的必经之路。 本章内容兼顾理论深度、方法实践、场景定位三个维度,不仅讲清楚 SVM 的数学原理,更讲明白它的优势局限、适用场景,以及和深度学习的演进关系。你不需要死记硬背复杂的推导,重点理解核心思想和方法价值,建立完整的算法认知。

15.2 SVM 的核心思想:最大间隔超平面

15.2.1 线性可分与超平面

对于二分类任务,如果存在一个超平面,能把两类样本完全分开,就称数据是线性可分的。 能分开两类的超平面有无数个,哪一个是最好的?SVM 给出的答案是:选两类样本之间间隔最大的那个超平面,也就是最大间隔超平面。 间隔就是超平面到两侧最近样本的距离之和。间隔越大,分类的鲁棒性越强,样本微小的扰动不会影响分类结果,模型的泛化能力越好。 和逻辑回归不同,逻辑回归只要求分对就行,超平面可以有很多;SVM 追求最优的那个超平面,也就是间隔最大的那个,理论上泛化能力最优。

15.2.2 函数间隔与几何间隔

间隔有两种度量方式:函数间隔和几何间隔。 函数间隔就是分类置信度,数值上等于标签乘上线性输出,代表样本被正确分类的置信程度。但函数间隔会随着权重成比例缩放,没有绝对物理意义。 几何间隔是样本到超平面的真实物理距离,除以权重的范数做归一化,不会随权重缩放而变化,是真正的距离度量。 SVM 要最大化的,就是几何间隔。

15.2.3 最大间隔的优化目标

SVM 的原始优化问题可以描述为:在所有样本都被正确分类的约束下,最大化几何间隔。 转化为标准的优化问题形式,就是最小化权重的二范数平方,约束条件是每个样本的函数间隔都大于等于 1。 这是一个凸二次规划问题,有唯一的全局最优解,不存在局部最优问题,这也是 SVM 比早期神经网络更可靠的原因之一。

15.3 硬间隔与软间隔分类器

15.3.1 硬间隔 SVM:完美可分场景

上面描述的就是硬间隔 SVM,它要求所有样本都必须满足分类约束,不允许任何样本被分错。 硬间隔只适用于数据完全线性可分的场景。但现实中的数据几乎都有噪声、有异常点,完全线性可分的情况非常少。如果强行用硬间隔,少量异常点就会严重影响超平面的位置,甚至导致无法求解。

15.3.2 软间隔 SVM:容忍噪声样本

为了适配真实数据,SVM 引入了软间隔:允许部分样本不满足约束,但是要付出对应的惩罚。 具体做法是给每个样本加入松弛变量,允许样本间隔小于 1,甚至被分错。松弛变量越大,违反约束越严重。目标函数中加入松弛变量的惩罚项,总的惩罚和违反程度成正比。 这样模型就会在 “间隔尽量大” 和 “违反约束的样本尽量少” 之间做平衡,对噪声和异常点更鲁棒,更适合真实数据。

15.3.3 惩罚参数 C 的物理意义

惩罚参数 C 是软间隔 SVM 最重要的超参数,它控制着惩罚的力度。 C 越大,对错误的惩罚越重,模型越不能容忍分错样本,会尽量拟合所有样本,间隔会变小,容易过拟合;C 越小,惩罚越轻,允许更多样本出错,间隔会更大,模型更保守,容易欠拟合。 C 的取值需要根据数据情况调整,是 SVM 调参的核心。

15.4 对偶问题与支持向量

15.4.1 拉格朗日对偶性

原始的 SVM 优化问题直接求解比较困难,尤其是引入核函数之后。通过拉格朗日对偶性,可以把原始问题转化为对偶问题,求解更高效,也方便引入核技巧。 对偶问题的变量是每个样本对应的拉格朗日乘子。转化之后,优化目标只和样本之间的内积有关,和特征维度无关,这是核方法能够成立的关键前提。

15.4.2 支持向量的定义与价值

对偶问题求解之后,绝大多数样本对应的乘子都是 0,只有少数样本的乘子大于 0,这些样本就叫做支持向量。 支持向量就是离超平面最近的那些样本,它们决定了超平面的位置。其他样本无论怎么移动,只要不变成支持向量,就不会影响超平面。 这带来了 SVM 一个非常重要的特性:稀疏性。最终的模型只和少数支持向量有关,预测时只需要计算支持向量的内积,预测速度很快。而且 SVM 的复杂度和样本数量关系不大,主要和支持向量的数量有关,在高维特征下优势明显。

15.4.3 SVM 的稀疏性优势

稀疏性是 SVM 的核心优势之一。在文本分类等高维稀疏场景下,SVM 的效果非常稳定,而且模型体积小、预测快。在深度学习普及之前,SVM 是文本分类的标准方案。

15.5 核方法:处理非线性分类

15.5.1 核技巧的核心思想

线性 SVM 只能处理线性可分的数据,对于非线性数据怎么办? 核方法的思路是:把原始特征映射到更高维的特征空间,让数据在高维空间中变得线性可分,就可以用线性 SVM 分类。 但如果真的显式映射到高维,计算量会爆炸,甚至无穷维空间根本无法计算。核技巧完美解决了这个问题:不需要显式知道映射函数,只需要定义核函数,直接计算高维空间的内积,就能得到和映射到高维一样的效果。 核技巧是机器学习史上非常精妙的发明,它以极低的成本实现了非线性建模,让线性算法能够处理非线性问题。

15.5.2 常用核函数

工业界最常用的核函数有三类: 第一类是线性核,也就是没有核变换,和普通线性 SVM 一样,速度最快,适合特征维度很高、样本量很大的场景,比如文本分类。 第二类是多项式核,把特征映射到多项式空间,能拟合一定的非线性,适合中等维度的结构化数据。 第三类是高斯核,也叫 RBF 核,是最常用的非线性核。它可以把数据映射到无穷维空间,拟合能力极强,适合低维非线性数据。高斯核有一个带宽参数 gamma,控制着局部作用范围,是调参的关键。

15.5.3 核函数的选择原则

核函数没有绝对的好坏,要根据数据情况选择。 特征维度很高、样本量很大,优先选线性核,速度快、不容易过拟合;数据维度低、样本量中等,非线性强,选高斯核效果更好;对多项式关系有先验认知,可以用多项式核。 实际项目中通常先试线性核,得到基线效果;如果效果不好,再试高斯核,配合调参找到最优参数。

15.6 SVM 的扩展能力

15.6.1 多分类 SVM

标准 SVM 是二分类模型,扩展到多分类有两种主流方案:一对一和一对多。 一对一就是每两类之间训练一个 SVM,预测时投票决定类别。类别多的时候模型数量多,但每个模型训练快,适合类别多的场景。 一对多就是每一类和剩下的所有类训练一个 SVM,预测时选置信度最高的类。模型数量少,但每个模型训练数据量大,适合类别少的场景。 工具库一般都内置了多分类实现,直接调用即可。

15.6.2 SVR:支持向量回归

SVM 不仅可以做分类,也可以做回归,叫做 SVR。 它的核心思想是:设定一个容忍带,样本落在带内就不算损失,超出带外才计算损失。同样通过对偶问题求解,也支持核函数。 SVR 在小样本回归任务上表现稳定,对异常值鲁棒性比线性回归好,适合小样本非线性回归场景。

15.6.3 异常检测中的 SVM

一类 SVM 是 SVM 的一个变种,用于异常检测。它只需要正常样本训练,学习正常样本的分布边界,落在边界外的就是异常。 在故障检测、欺诈检测等异常样本极少的场景,一类 SVM 是非常实用的方案。

15.7 代码实战:SVM 分类与调参

15.7.1 线性 SVM 实现

Scikit-learn 中提供了 LinearSVC 和 SVC 两个实现。线性 SVM 推荐用 LinearSVC,专门针对线性核优化,速度快很多,适合高维大数据。 训练流程和其他分类器一致:初始化模型、拟合训练集、预测测试集、评估效果。线性 SVM 的可解释性也不错,可以输出特征权重,分析特征的影响。

15.7.2 高斯核 SVM 与非线性分类

使用 SVC 类指定 kernel='rbf' 就是高斯核 SVM。它能够拟合非常复杂的非线性分类边界,在低维小数据集上效果惊艳。 但要注意,高斯核的计算复杂度和样本量的平方成正比,样本量大的时候训练会非常慢,只适合中小规模数据集。

15.7.3 关键参数调优指南

SVM 最重要的两个参数是惩罚系数 C 和核函数参数 gamma。 C 控制惩罚力度,越大越容易过拟合,越小越容易欠拟合;gamma 控制高斯核的带宽,越大模型越复杂,越容易过拟合,越小模型越平滑。 调参通常用网格搜索,在对数尺度上搜索 C 和 gamma 的最优组合,配合交叉验证,就能得到不错的效果。 另外,SVM 对特征尺度非常敏感,特征必须做归一化或标准化,否则数值大的特征会主导距离计算,严重影响效果。这是使用 SVM 最容易踩的坑。

15.8 SVM 的优缺点与适用边界

15.8.1 核心优势

第一,理论基础扎实,有全局最优解,结果稳定可靠; 第二,小样本下表现出色,在数据量不多的时候效果往往优于其他算法; 第三,高维数据下表现好,泛化能力强,尤其是线性核在文本等高维稀疏数据上效果极佳; 第四,核技巧可以灵活处理非线性问题,适配不同复杂度的数据; 第五,模型稀疏,预测只依赖支持向量,效率高。

15.8.2 固有局限

第一,对大规模数据集训练效率低,非线性核复杂度高,难以适配百万级以上样本; 第二,对缺失值敏感,需要预处理; 第三,参数调优比树模型复杂,核函数和参数选择对效果影响很大; 第四,可解释性差,非线性核情况下很难解释模型决策依据; 第五,类别不均衡场景下效果不佳,需要做样本平衡处理。

15.8.3 适用场景与选型建议

SVM 最适合的场景是:中小规模数据集、高维稀疏特征、小样本、对模型稳定性要求高。比如小样本文本分类、生物信息学、小样本图像识别、高精度异常检测。 如果数据量很大、样本数十万以上,优先选 LightGBM 等集成模型或者深度学习;如果追求可解释性,优先选线性模型或树模型。 没有最好的算法,只有最合适的算法。SVM 虽然不是当前的主流,但在它的适用场景内,依然是非常优秀的方案。

15.9 SVM 与深度学习的历史演进关系

从算法发展的视角看,SVM 和深度学习有清晰的传承关系。 SVM 鼎盛于 2000 到 2012 年,当时算力不足、数据量有限,SVM 凭借扎实的理论和优秀的小样本效果,成为机器学习的主流。但随着数据量爆发式增长,SVM 训练效率低、难以大规模扩展的缺点越来越明显,而深度学习在大数据下的优势逐渐凸显。 但二者的核心思想是相通的:深度学习的神经网络,可以看作是自动学习特征的多层变换,而核 SVM 是人工定义核函数的单层变换。神经网络相当于把核函数的设计也交给了模型从数据中学习,自由度更高,大数据下上限更高。 而大模型时代的对比学习、核方法思想,也在以新的形式回归。理解 SVM 的核技巧,能帮我们更好地理解表征学习、特征空间变换这些深度学习的核心概念。

15.10 本章小结

本章从原理、推导、实现、场景多个维度系统讲解了支持向量机与核方法。核心知识点回顾:

  1. SVM 的核心目标是寻找最大间隔超平面,提升模型泛化能力;
  2. 软间隔引入松弛变量,适配带噪声的真实数据,惩罚系数 C 是核心超参数;
  3. 对偶问题带来稀疏性,支持向量决定模型,预测高效;
  4. 核技巧实现非线性建模,无需显式映射到高维,线性核、高斯核是最常用选择;
  5. SVM 适合中小样本、高维数据场景,大数据场景下被深度学习和集成树替代;
  6. SVM 的核方法、间隔思想深刻影响了机器学习发展,是理解统计学习的关键。

课后实践任务:在文本分类数据集上,分别训练线性 SVM 和 LightGBM,对比二者的准确率和训练速度;用网格搜索调优高斯核 SVM 的 C 和 gamma 参数;观察特征标准化对 SVM 效果的影响。

更多推荐