SVM与核方法核心30 分钟kp-015#SVM#间隔#对偶问题

最大间隔与线性 SVM

进度

一句话定义

线性支持向量机在可分数据上寻找「离两类都最远」的最大间隔超平面:最小化 12‖ w ‖2 使得所有样本满足 yi(w^⊤ xi + b) ≥ 1,其解只由少数「支持向量」决定。

为什么重要

SVM 是「从几何直觉出发做优化设计」的典范:最大化间隔等价于最小化容量界(泛化误差界与间隔成正比),拉格朗日对偶又自然引出核技巧(kp-017)。它的推导串起了约束优化、KKT 条件、凸对偶一整套数学,是理解现代优化视角的经典教材。

前置知识

线性回归与最小二乘法 的超平面与线性代数(点积、范数);损失函数:从 0-1 损失到代理损失 的损失视角可对照(SVM 的损失是 hinge);拉格朗日乘子法概念。

核心概念

  • 超平面:w^⊤ x + b = 0,法向量 w。
  • 函数间隔:yi(w^⊤ xi + b),几何间隔:上式除以 ‖ w ‖(点到面真实距离)。
  • 支持向量:恰好落在间隔边界 y(w^⊤ x + b) = 1 上的样本,解的承重墙。
  • 硬间隔:要求所有样本严格满足约束(可分数据)。
  • 原问题/对偶问题:原始约束优化与其拉格朗日对偶,对偶解出后自然暴露内积形式。

直观类比

在两片小区(类别)之间修一条最宽的隔离道路:道路中线是决策面 w^⊤ x + b = 0,两侧路缘是间隔边界。决定路宽的只有紧贴路缘的那几栋楼(支持向量),把远处的楼推倒重建,路一毫米都不动——「解只依赖支持向量」的直观来源,也是 SVM 解稀疏、对远端样本鲁棒的原因。

原理与机制

几何间隔最小值 γmin = mini yi(w^⊤ xi + b)‖ w ‖。最大化 γ 有尺度不变性:w, b 同乘 c 面不变,故可规范化令支持向量处函数间隔恰为 1,问题变为

minw, b 12‖ w ‖2    s.t.    yi(w^⊤ xi + b) ≥ 1

间隔宽度为 2‖ w ‖——最大化宽度等价于最小化 ‖ w ‖2,且目标严格凸、约束线性,解唯一。从统计学习理论看,间隔越大,包含该分类器的假设空间越窄,泛化界越好:几何选择由此获得理论辩护。

引入拉格朗日乘子 αi ≥ 0,KKT 条件给出三点关键:(1) 平稳性得 w = ∑i αi yi xi——解是样本的线性组合;(2) 互补松弛 αi[yi(w^⊤ xi + b) - 1] = 0——非支持向量 αi = 0;(3) 代回得对偶问题只含样本内积 xi^⊤ xj——为核化埋下伏笔。

公式与推导

对偶问题(12‖ w ‖2 的拉格朗日对偶):

maxα  ∑i=1nαi - 12∑i,jαiαj yi yj (xi^⊤ xj)    s.t.    ∑i αi yi = 0,  αi ≥ 0

推导:L(w, b, α) = 12‖ w ‖2 - ∑i αi[yi(w^⊤ xi + b) - 1],对 w, b 求偏导置零代入化简即得。预测函数 f(x) = ∑i ∈ SV αi yi (xi^⊤ x) + b——只需保存支持向量。

图示

 ○ ○                  × ×
   ○ ○   ○←SV      × ×
      ╲  ┊  ╱  ×←SV
       ╲ ┊ ╱  ╱
        ╲┊╱  ╱   ← 最大间隔超平面
         ┊  ╱      中线: wᵀx + b = 0
         ┊ ╱       间隔边界: y(wᵀx+b) = ±1
         ┊╱        宽度 = 2/‖w‖,只由 SV 决定

实例或案例

线性 SVM 与逻辑回归在同一数据的对比(同族线性边界,损失不同):

from sklearn.datasets import make_classification
from sklearn.svm import LinearSVC
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import cross_val_score

X, y = make_classification(n_samples=600, n_features=10, random_state=0)
svc = make_pipeline(StandardScaler(), LinearSVC(C=1.0, max_iter=5000))
lr  = make_pipeline(StandardScaler(), LogisticRegression(max_iter=2000))
print("LinearSVC:", cross_val_score(svc, X, y, cv=5).mean().round(3))
print("LogReg   :", cross_val_score(lr, X, y, cv=5).mean().round(3))

小样本、维度较高时 SVM 的间隔正则常略占优;海量样本时逻辑回归/SGD 更实际(对偶 SVM 的核矩阵 O(n2) 是硬伤)。

常见误区

  • 不缩放特征直接跑 SVM:距离与内积被大量纲特征统治,必须标准化(对照 kp-027)。
  • 把「最大间隔」理解为「对所有样本都远」:恰恰相反,优化只关心最近的那几个样本,远端样本约束松弛不活跃。
  • 硬间隔用于有噪声的真实数据:一个错标样本就能毁掉可行性,实际一律用软间隔(kp-016)。

与其他知识点的关系

软间隔 SVM 与铰链损失 把硬约束松弛为软约束并连接 hinge 损失;核技巧与常用核函数 利用对偶的内积结构做核化;逻辑回归与交叉熵损失 是同任务的非概率对照模型;偏差-方差分解与过拟合 的泛化直觉由间隔提供理论化版本。

自测题

  1. 为什么解只由支持向量决定?

- 要点:互补松弛 αi [yi f(xi) - 1] = 0,间隔外的样本约束严格满足 → αi = 0,不出现在 w = ∑ αi yi xi 中。

  1. 为什么从原问题转到对偶问题?

- 要点:对偶形式只含内积 xi^⊤ xj、约束更简,且 w 的样本组合表示使核技巧成为可能(kp-017)。

  1. 规范化「函数间隔 = 1」为什么不失一般性?

- 要点:w, b 等比缩放不改变超平面与几何间隔,总能缩放到最近样本函数间隔为 1,从而把比值优化变成无约束变量的凸二次规划。

延伸阅读

Cortes & Vapnik, Support-Vector Networks(Machine Learning, 1995);李航《统计学习方法》第 7 章。