← 返回题目列表

支持向量机(SVM)的基本原理是什么?什么是最大间隔?

高频 中等 第 3 / 25 题 更新于 2026/09/25
支持向量机SVM最大间隔分类
学习 AI 实战项目

简化版

SVM 在线性可分的规范化形式中寻找最大几何间隔超平面;软间隔再用 C 权衡权重范数与 hinge 违约。较大间隔提供容量控制和扰动鲁棒性的直觉,但不保证任何数据分布上都泛化最好。对偶系数非零的训练点称为支持向量,核决策函数由它们展开;支持向量未必少,错标或越界点也会影响边界。核函数改变表示能力,软间隔处理违约,两者解决的问题不同。

详细版

核心概念:

超平面:   wᵀx + b = 0            (分界面)
间隔:     两类中离超平面最近的点到它的距离之和 = 2/‖w‖
目标:     最大化间隔 2/‖w‖  ⟺  最小化 ½‖w‖²
约束:     yᵢ(wᵀxᵢ+b) ≥ 1       (每个样本正确分类且在间隔外)

为什么最大间隔更好:

  • 间隔大 = 决策边界离数据远 = 对样本扰动/噪声容忍度高 = 泛化好。
  • 这是一种结构风险最小化:不只拟合训练数据,还控制模型复杂度。

支持向量: 硬间隔的一般情形位于间隔边界;软间隔还包括间隔内和误分点。对偶中 α_i>0 的样本进入决策展开,数值实现用容差判断。

优化: 是一个凸二次规划问题,有全局最优解;实际常转对偶问题求解并引入核函数。

完整版教学

一、SVM 要解决的核心问题:哪条分界线最好

对二分类,能把两类分开的超平面往往有无数条。感知机随便找一条能分开的就停了,但直觉告诉我们:紧贴着某一类样本的分界线很危险——新数据稍微偏一点就分错了。

SVM 的洞察是:最好的分界线,应该离两类样本都尽量远,也就是在两类之间「走中间、留最大缓冲」。这个「缓冲带的宽度」就是间隔(margin),SVM 的目标就是最大化间隔,所以又叫最大间隔分类器。

   类别 A  ●●●        │缓冲│        ○○○  类别 B
                    ← 间隔 →
              最优超平面走正中间,两边留最大间隔

二、间隔为什么等于 2/‖w‖,目标为什么变成最小化 ½‖w‖²

超平面写作 wᵀx + b = 0。规定两类样本满足:

正类:  wᵀx + b ≥ +1
负类:  wᵀx + b ≤ -1

即所有样本满足 yᵢ(wᵀxᵢ+b) ≥ 1(yᵢ∈{+1,-1})。两条「间隔边界」wᵀx+b=±1 之间的距离(几何间隔)可以推出等于 2/‖w‖。

要最大化间隔 2/‖w‖,等价于最小化 ‖w‖,为了求导方便写成:

min  ½‖w‖²
s.t. yᵢ(wᵀxᵢ+b) ≥ 1,  对所有 i

这是一个凸二次规划问题:任一局部最优都是全局最优,不会出现非凸训练中的次优局部极小值。需要严谨地区分“最优目标值/决策函数”和“参数一定唯一”:在退化数据或未正则化偏置等情形下,某些参数表示未必唯一。

三、为什么最大间隔能带来好的泛化

这是 SVM 理论上最漂亮的地方。「间隔大」意味着:

  • 决策边界离所有样本都远,样本即使因为噪声抖动一点,也不容易越过边界被分错——对扰动鲁棒。
  • 从统计学习理论看,最大化间隔等价于限制了模型的复杂度(VC 维),这是一种结构风险最小化:不只最小化训练误差,还同时控制模型容量,从而上界了泛化误差。

所以 SVM 不是「碰巧」泛化好,而是把「泛化」直接写进了优化目标——让边界尽量宽,就是让模型尽量稳。

四、支持向量:只有少数样本说了算

求解后会发现一个关键事实:只有恰好落在间隔边界上(yᵢ(wᵀxᵢ+b)=1)的那些样本,才对超平面有贡献。这些样本就叫支持向量(Support Vector)——它们像「撑起间隔的柱子」。

  • 远离边界的样本(在间隔外)对结果毫无影响:把它们删掉、移动(只要不越过边界),超平面完全不变。
  • 对偶展开只包含 αᵢ>0 的支持向量;当前解下,间隔外且正确分类的样本 αᵢ=0。支持向量未必“少”,错标或越界点也可能成为支持向量,因此预测成本和离群点敏感性要看实际支持向量比例。

这也是名字「支持向量机」的由来——机器学出来的分界面,是被支持向量「支撑」起来的。

五、线性不可分怎么办:软间隔 + 核函数

现实数据常常线性不可分(两类交叉,没有超平面能完美分开)。SVM 有两件武器:

  1. 软间隔(Soft Margin):允许少数样本越过间隔甚至分错,用松弛变量 ξ 度量违反程度,并加进目标惩罚。通过参数 C 控制「间隔要多大」和「容忍多少错误」的权衡(详见软间隔专题)。这让 SVM 能容忍噪声、避免为个别点牺牲整体间隔。

  2. 核函数(Kernel):隐式改变特征空间,使原空间的非线性边界可由特征空间中的线性超平面表达。核技巧省掉显式高维坐标,但并非代价极小:Gram 矩阵可达 O(n²) 存储,训练与支持向量预测成本对样本规模敏感。

有了这两件武器,SVM 既能扛噪声,又能处理复杂非线性边界。

六、优缺点速览

优点:最大间隔目标有清晰的泛化直觉;线性 SVM 适合高维稀疏特征,核 SVM 则能表示非线性边界。核展开的预测主要依赖支持向量,但支持向量数量可能接近样本数,不能把“支持向量表示”直接等同于“模型一定很稀疏”。

缺点:核 SVM 的训练和存储对样本数敏感,C、γ 与核的选择也会显著影响结果。基于距离或内积的核通常需要统一特征尺度,但应在训练折内拟合缩放器;输出分数若要解释成概率,还需额外校准,多分类则依赖 OvR、OvO 或联合目标。

因此先区分线性与核版本:海量高维稀疏数据可评估线性 SVM;中等样本且确有非线性证据时再尝试 RBF 核,并把预处理和调参放进同一交叉验证流水线。

七、常见追问

  • 为什么间隔是 2/‖w‖? 由点到超平面距离公式,两条 wᵀx+b=±1 间隔为 2/‖w‖。
  • SVM 会陷局部最优吗? 不会,凸二次规划有全局最优。
  • 为什么叫支持向量? 因为超平面由落在间隔边界上的少数样本「支撑」。
  • 和逻辑回归比? LR 优化交叉熵,有限间隔样本通常都有非零梯度,并输出模型概率;SVM 优化最大间隔,其对偶展开只含支持向量,更关注边界与违约样本(详见 SVM vs LR 专题)。

八、用算例与工程边界复核

在规范化约束 y_i(wᵀx_i+b)≥1 下,两条支持超平面为 wᵀx+b=±1,它们的距离是 2/||w||。若 ||w||=2,间隔宽度为 1;把 w、b 同乘常数不会改变决策边界,所以必须固定函数间隔尺度。

对象/方案核心机制选择或风险
硬间隔完全可分且无松弛对异常点脆弱
软间隔加入 ξ 与 C允许违约以换泛化
核 SVM对偶中用 K(xi,xj)非线性但训练扩展性差

把推导和选择压缩成执行路径:

scale features
 -> choose linear/kernel
 -> tune C and kernel params by CV
 -> decision from support vectors

最大化的是几何间隔;函数间隔会随 w、b 同比例缩放,单独最大化没有意义。

九、常见误区与追问

  • 误区:SVM 找到的是离所有样本平均最远的分界线。 间隔由最靠近边界的样本决定,不是平均距离。
  • 误区:最大间隔保证任何数据上泛化最好。 它提供容量控制直觉和理论界,但核、C、噪声与分布仍决定效果。
  • 追问:为什么目标写 1/2||w||²? 与最大化 2/||w|| 等价,平方形式凸且求导方便。
  • 追问:b 会被正则化吗? 经典 SVM 目标只惩罚 w,具体库实现应核对。
  • 追问:线性不可分只有核函数一条路吗? 不是,软间隔先允许违约;核函数负责改变表示能力,两者解决不同问题。

十、加强记忆

硬间隔 SVM 在规范化约束 y_i(wᵀx_i+b)≥1 下最小化 ½‖w‖²,等价于最大化两条支持超平面间的 2/‖w‖。软间隔加入 hinge 违约与 C;核函数则改变特征表示。支持向量是对偶系数非零的样本,软间隔下不只包括恰在边界的点。凸性保证目标层面的全局最优,但不自动保证泛化最优或参数表示唯一。核 SVM 的主要短板是样本规模、调参与概率校准,线性 SVM 则可扩展到更大稀疏数据。