软间隔 SVM 与铰链损失
一句话定义
软间隔 SVM 给每个样本引入松弛变量 ξi ≥ 0 允许违反间隔,目标变为 min 12‖ w ‖2 + C∑i ξi,等价于在 hinge 损失上做 L2 正则化——C 是「容错换间隔」的旋钮。
为什么重要
真实数据有噪声与重叠,硬间隔常常不可行;软间隔才是实际使用的 SVM。它与正则化经验风险(kp-002/008)的等价性是「几何视角 = 统计视角」的最佳案例,理解后可以把 SVM 放回通用框架统一记忆,而不是当成孤立算法。
前置知识
最大间隔与线性 SVM 的原问题、对偶与 KKT;损失函数:从 0-1 损失到代理损失 的 hinge 损失定义。
核心概念
- 松弛变量 ξi:样本 i 违反间隔的量(ξi > 0 在间隔内,ξi > 1 已被错分)。
- 惩罚系数 C:每单位违反的价格;C → ∞ 回到硬间隔,C 小则容忍更多违反、间隔更「宽」。
- hinge 损失:L(y, f) = max(0, 1 - y f(x))。
- 等效正则形式:min 1n∑ max(0, 1 - yi f(xi)) + λ ‖ w ‖2,λ = 12nC。
- KKT 互补松弛的三段结构:αi = 0(间隔外)/ 0 < αi < C(恰在边界)/ αi = C(违反者)。
直观类比
修隔离道路时遇到无法绕开的违章建筑(噪声样本):硬间隔要求全部拆除(不可行),软间隔允许「交罚款让建筑压在路缘上」——C 是罚款单价。罚款便宜(C 小)就多容忍几栋楼换条更宽的路;罚款昂贵(C 大)宁可把路修窄也要少容忍。
原理与机制
软间隔原问题:
约束两边乘 yi 移项得 ξi ≥ 1 - yi f(xi),配合 ξi ≥ 0 恰为 ξi ≥ max(0, 1 - yi f(xi));最优化时 ξi 取下界,故目标等价于 12‖ w ‖2 + C ∑i max(0, 1 - yi f(xi))——松弛变量就是 hinge 损失的辅助变量表示,约束优化版与损失+正则版逐字等价。
KKT 三段结构是直觉地图:ξi = 0 且在间隔外(yi f ≥ 1)→ αi = 0,不参与解;恰在边界(yi f = 1)→ 0 < αi < C,是普通支持向量;ξi > 0(间隔内或错分)→ αi = C,是被「罚款」的样本。训练后按 yi f(xi) 检查每段样本数量即可诊断 C 是否合适。
对偶形式与 kp-015 几乎相同,唯一变化是约束变为 0 ≤ αi ≤ C(盒约束),这就是经典 SMO 算法处理的问题形式。
公式与推导
等价性的最后一步(把 ξ 代入目标):
两式相差常数因子 nC,故 SVM = hinge 损失 + L2 正则的经验风险最小化,与岭回归、逻辑回归同属一个家族,只是损失不同(对照 kp-003 的损失谱系)。
图示
○ ○ ○ × ×
○ ξ=0.6┊ × ×
○──╲ ┊ ╱──×
╲ ξ┊ξ╱ 间隔带内的样本被罚 C·ξ
──────╲┊╱───── ξ = 违反量(距离式)
ξ>1 的样本已被错分
C↑ → 间隔窄、容忍少、拟合强
C↓ → 间隔宽、容忍多、更平滑实例或案例
在带类别重叠的数据上扫 C,观察训练精度与间隔(正则强度)的权衡:
from sklearn.datasets import make_blobs
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import cross_val_score
X, y = make_blobs(n_samples=400, centers=2, cluster_std=3.5, random_state=0)
for C in (0.01, 0.1, 1, 10, 100):
m = make_pipeline(StandardScaler(), SVC(kernel="linear", C=C))
print(f"C={C:>6}: CV={cross_val_score(m, X, y, cv=5).mean():.3f}")C 过小时欠拟合、过大时向硬间隔退化对噪声敏感,CV 曲线峰值处即权衡点——与 kp-008 选 λ 完全同构(C ∝ 1/λ)。
常见误区
- 把 ξi 当成「距离误差」记进损失后误以为目标非凸:目标对 (w, b, ξ) 是凸二次规划,永远有全局最优。
- 认为 C 大一定好(追求训练集干净):重叠数据上大 C 等于硬间隔硬拟合噪声,泛化崩坏。
- 忘记 hinge 损失不输出概率:需要概率时要么另配校准(Platt scaling),要么直接用逻辑回归。
与其他知识点的关系
损失函数:从 0-1 损失到代理损失 中 hinge 作为 0-1 的凸上界家族成员在此落地;正则化:岭回归、Lasso 与弹性网 的 λ 与本节 C 是同一权衡的两种参数化;核技巧与常用核函数 的对偶带盒约束后由 SMO 高效求解;不平衡数据与代价敏感学习 可用样本级权重(C 按类缩放)实现代价敏感。
自测题
- 写出软间隔原问题,并说明 ξi 的取值含义。
- 要点:min 12‖ w‖2 + C∑ξi,s.t. yi f(xi) ≥ 1 - ξi, ξi ≥ 0;ξ = 0 间隔外、0 < ξ ≤ 1 间隔内未错分、ξ > 1 错分。
- 证明/说明软间隔 SVM 等价于 hinge + L2 正则。
- 要点:ξ 的最优值即 max(0, 1 - yi f(xi)),代回目标即得;仅差常数因子。
- KKT 三段结构与 C 的关系?
- 要点:0 ≤ α ≤ C 盒约束;α = C 是被罚样本、0 < α < C 是边界支持向量、α = 0 无贡献;C 决定盒子上限。
延伸阅读
李航《统计学习方法》第 7.2 节;Hastie 等《The Elements of Statistical Learning》第 12.2 节。