最大间隔与线性 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,问题变为
间隔宽度为 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 的拉格朗日对偶):
推导: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 损失;核技巧与常用核函数 利用对偶的内积结构做核化;逻辑回归与交叉熵损失 是同任务的非概率对照模型;偏差-方差分解与过拟合 的泛化直觉由间隔提供理论化版本。
自测题
- 为什么解只由支持向量决定?
- 要点:互补松弛 αi [yi f(xi) - 1] = 0,间隔外的样本约束严格满足 → αi = 0,不出现在 w = ∑ αi yi xi 中。
- 为什么从原问题转到对偶问题?
- 要点:对偶形式只含内积 xi^⊤ xj、约束更简,且 w 的样本组合表示使核技巧成为可能(kp-017)。
- 规范化「函数间隔 = 1」为什么不失一般性?
- 要点:w, b 等比缩放不改变超平面与几何间隔,总能缩放到最近样本函数间隔为 1,从而把比值优化变成无约束变量的凸二次规划。
延伸阅读
Cortes & Vapnik, Support-Vector Networks(Machine Learning, 1995);李航《统计学习方法》第 7 章。