支持向量机SVM的原理。
1. 线性分类器
二分类问题中,标签为 (SVM 与 logistic regression 的记号差异)。
线性分类器:
其中:
决策边界是 。 预测正类, 预测负类。
2. Functional Margin(函数间隔)
对样本 ,定义其关于参数 的 functional margin:
- 分类正确时 ,错误时
- 正负判断对错,大小表示"有多自信"
整个训练集的 functional margin 取最小值:
Functional margin 的问题:尺度不唯一
缩放参数 不改变分类边界( 与 是同一超平面),但 functional margin 变成 2 倍。因此 functional margin 不是真正的几何距离——这引出了 geometric margin。
3. Geometric Margin(几何间隔)
点 到超平面 的有符号距离为 。考虑标签方向,定义 geometric margin:
核心想法: 在所有能正确分类的超平面里,选择 geometric margin 最大的那个。
4. Canonical Scaling 与 Primal Problem
同时缩放 不改变边界,可规定 (令离边界最近的样本满足 )。此时 geometric margin 。
最大化 geometric margin 等价于最小化 ,方便求导写成 。hard-margin SVM 的 primal problem:
5. Lagrangian
引入 Lagrange multipliers ,将约束合并进目标函数:
展开:
对 求偏导:
对 求偏导:
6. Dual Problem
将上述结果代回 Lagrangian,得到 dual problem:
subject to 且 。
关键结构: dual problem 只依赖样本之间的 inner product ——这是使用 kernel 的基础。
7. Support Vectors
由 KKT complementary slackness:
- 若样本不在 margin boundary 上(),则
- 只有 的样本才可能有 ——这些就是 support vectors
直觉: SVM 的决策边界只由最靠近边界的那些样本决定。
由 ,对新样本 :
分类器:
因大部分 ,实际预测仅由 support vectors 决定。
9. Kernel
Kernel 可理解为高维特征空间中的内积,但无需显式做特征映射:。
常见 kernel:
- Linear:
- Polynomial:
- Gaussian / RBF:
合法 Kernel 的条件
定义 kernel matrix 。合法 kernel 要求 kernel matrix symmetric positive semidefinite: 且对任意向量 有 (Mercer condition)。
10. Soft-margin SVM
hard-margin 要求数据完全线性可分,现实中往往做不到。引入 slack variables ,允许部分样本违反 margin:
同时在目标中惩罚:
subject to ,。
参数 : 控制 margin 大小与训练误差的 trade-off。 大 → 更注重分类正确(少违反); 小 → 更注重 margin 大。