在机器学习的世界里,分类是一项基本任务。从识别垃圾邮件到根据医学影像诊断疾病,我们一直在设法教会计算机如何区分不同的类别。几十年来,研究人员为此开发了一系列算法——从简单的线性模型到多层神经网络。
1995 年,Corinna Cortes 和 Vladimir Vapnik 提出了一种全新的、强大的方法:** 支持向量网络 **(现已广为人知的名称是支持向量机,即 SVM) 。他们的工作不仅仅是为分类工具箱增添了一件新工具,更是将几何直觉与数学严谨性结合起来,形成了一种至今仍具有高度影响力的方法。
如果我们不只是寻找任何能分隔两个类别的边界,而是去寻找唯一最佳的那个边界——一个最有可能泛化到新数据上的边界,会怎么样?如果我们能利用一种数学捷径,让这个边界弯曲成复杂的形状,同时又避免了计算过载,又会怎么样?这就是 SVM 的核心思想。
在本文中,我们将解读他们的开创性论文《支持向量网络》,重点关注使该算法如此高效的三个概念:
- 最优超平面
- 软间隔
- 核技巧
我们将看到这些思想如何催生出一种即使在难以想象的高维空间中也能实现高准确率并抵御过拟合的机器。
从直线到复杂边界: 分类器的简史
自动化分类的探索早于现代计算机的诞生。20 世纪 30 年代,R.A. Fisher 开发了一种统计方法,用于寻找一个线性判别式来区分两个群体。在此后的几十年里,大多数分类研究都围绕着构建线性决策面——即分隔不同类别的平面 (在二维空间中是直线) 。
到了 20 世纪 60 年代,感知机和早期的神经网络登上了历史舞台。这些模型可以通过组合多个线性分隔器来学习非线性边界。一个基本的前馈感知机,如下图所示,通过层叠简单计算来构建复杂的判别形状。
图 1. 一个简单的前馈感知机,包含 8 个输入单元、2 层隐藏单元和 1 个输出单元。向量条目的灰度深浅反映其数值大小。
尽管早期的神经网络功能强大,但它们也面临着局限性: 训练过程可能不稳定,且需要仔细调整参数以避免过拟合。SVM 则从另一种角度切入——通过将数据投影到高维空间,并寻找一个能够最大化类别间分离的边界。
强大分类器的三步法
支持向量机框架建立在三项创新之上:** 最优超平面**、软间隔和核技巧。
1. 最优超平面: 最大化间隔
如果两个类别是线性可分的,那么存在无数个分隔超平面。我们应该选择哪一个呢?SVM 会选择具有最大间隔的那一个——也就是两个类别之间尽可能宽的间隙。
图 2. 二维空间中可分问题的一个例子。标有灰色方块的支持向量定义了两个类别之间的最大分隔间隔。
那些正好位于间隔边界上的数据点被称为支持向量。它们是唯一影响边界位置的点——移除其他点不会改变这个边界。
在数学上,最优超平面 \(\mathbf{w} \cdot \mathbf{x} + b = 0\) 通过求解以下优化问题获得:
\[ \min_{\mathbf{w}, b} \ \frac{1}{2} \|\mathbf{w}\|^2 \quad \text{s.t.} \quad y_i(\mathbf{w} \cdot \mathbf{x}_i + b) \ge 1 \]其解为:
\[ \mathbf{w}_0 = \sum_{\text{support vectors}} \alpha_i y_i \mathbf{x}_i \]只有支持向量的 \(\alpha_i\) 系数不为零,这使得 SVM 计算高效且不易过拟合。
2. 软间隔: 处理不完美的数据
纯粹的最大间隔分类器要求数据完全线性可分——这在现实世界中很少出现。
软间隔扩展允许一定的间隔违例,并引入松弛变量 \(\xi_i \ge 0\):
- \(\xi_i = 0\): 正确分类,且位于间隔之外。
- \(0 < \xi_i \le 1\): 位于间隔之内,但分类正确。
- \(\xi_i > 1\): 被错误分类。
优化目标需要在两方面进行权衡:
- 最大化间隔 (\(\|\mathbf{w}\|^2\) 尽可能小)
- 惩罚违例 (\(\sum \xi_i\) 尽可能小)
这种平衡由超参数 C 控制:
- 较大的 C → 较少的违例,但可能导致间隔更窄 (存在过拟合风险) 。
- 较小的 C → 对违例更宽容,间隔更宽 (泛化能力更好) 。
这种方法使 SVM 在处理有噪声、类别重叠的数据集时依然稳健。
3. 核技巧: 化繁为简的非线性
如果数据在原始空间中不是线性可分的——比如点呈同心圆分布,该怎么办?一种解决方法是将其映射到更高维的特征空间,在那里可以找到线性分隔器。
图 3. 通过支持向量网络进行分类。从概念上讲,模式首先被映射到一个高维特征空间,在该空间中构建最优超平面。
当映射后的空间维度高达数十亿时,显式计算这种映射几乎不可能。但在 SVM 的决策函数中,映射 \(\phi(\cdot)\) 只会出现在点积内部:
\[ f(\mathbf{x}) = \operatorname{sign}\left( \sum_{\text{support vectors}} \alpha_i y_i \, \phi(\mathbf{x}_i) \cdot \phi(\mathbf{x}) + b \right) \]核技巧用原始空间中计算的核函数 \(K(\mathbf{u}, \mathbf{v})\) 来替代点积 \(\phi(\mathbf{u}) \cdot \phi(\mathbf{v})\):
\[ K(\mathbf{u}, \mathbf{v}) = (\mathbf{u} \cdot \mathbf{v} + 1)^d \quad \text{(多项式核)} \]这样我们就能像在高维空间中工作一样——而无需显式计算坐标。
图 4. 通过支持向量网络对未知模式进行分类。该模式通过核函数在输入空间与支持向量比较,这些比较结果的线性组合决定输出。
通过更换核函数,我们可以构造出多种形状的决策边界:
- 多项式核: \(K(\mathbf{u}, \mathbf{v}) = (\mathbf{u} \cdot \mathbf{v} + 1)^d\)
- 径向基函数 (RBF) 核: \(K(\mathbf{u}, \mathbf{v}) = \exp(-\gamma\|\mathbf{u} - \mathbf{v}\|^2)\)
实践出真知: 实验与结果
合成数据中的非线性边界
使用二次多项式核,SVM 可分隔复杂形状。图 5 展示了两个示例——支持向量用双圆圈标记,错误样本用叉号标记。
图 5. 使用 \(d = 2\) 的多项式核的决策边界示例。
USPS 手写数字识别
美国邮政服务 (USPS) 数据集包含 7,300 个训练样本和 2,000 个测试样本,每个样本为 \(16 \times 16\) 像素的数字图像。
图 6. 来自 USPS 数据库的手写数字样本。
研究人员测试了从 1 次到 7 次的多项式核,结果如下:
表 2. 不同次数多项式 SVM 的结果。
关键发现:
- 错误率从 12.0% (1 次) 下降到约 4.2% (≥ 6 次) 。
- 特征空间维度急剧膨胀 (7 次 → \(10^{16}\) 维) 。
- 支持向量数量仅温和增长 (约 127 增至 190) ,显示模型复杂度取决于支持向量数量而非维度大小。
NIST 基准测试
在更大的 NIST 数据集 (60,000 个训练样本,10,000 个测试样本) 上,作者尝试了一个四次多项式 SVM——没有进行任何预处理或领域特定的优化。
图 9. NIST 基准测试结果,对比了 SVM 与其他分类器的表现。
SVM 的表现与 LeNet4 相当,均为 1.1% 错误率,尽管后者是专为数字识别设计的卷积网络。令人印象深刻的是,SVM 不依赖于任何图像几何信息,这意味着即使图像像素被完全随机打乱,它的表现仍可以保持不变。
结论: 机器学习的里程碑
《支持向量网络》这篇论文统一了三大关键思想:
- 最优超平面: 通过最大化间隔实现稳健的泛化能力。
- 软间隔: 引入灵活的错误-间隔平衡以适应现实世界数据。
- 核技巧: 无需在超大特征空间中直接计算即可实现复杂的非线性分隔。
其成果是一个精准、高效且理论基础扎实的分类器。SVM 的训练过程是一个凸优化问题,确保唯一的全局最优解,并避免陷入局部最小值。
SVM 标志着机器学习领域的重要转折点,催生了核方法,并影响了数十年的研究。即使在深度学习时代,SVM 依然是重要工具——因其多功能性、数学优雅性以及在高维任务中的突出表现而备受推崇。