Lecture 7: Kernels. Support Vector Machines (SVM)
Lecture 7: Kernels. Support Vector Machines (SVM)
概述
本讲介绍两件互相成就的事:核方法 (Kernel Methods)——一种在不显式构造高维特征的情况下让线性模型“隐式”在高维空间工作的技巧;以及支持向量机 (SVM)——基于最大间隔思想的强大分类器。SVM 的对偶形式与核技巧结合,诞生了“核 SVM”,能高效处理非线性分类。本讲是课程中数学最密集的部分之一。
核心概念与数学直觉
- 特征映射与核技巧:线性模型无法处理非线性可分数据。思路:把输入 $x$ 映射到高维特征空间 $\phi(x)$,在其中做线性分类。
- 问题:$\phi(x)$ 维度可能爆炸(如二次多项式映射有 $O(n^2)$ 维)。
- 核技巧 (Kernel Trick):许多算法(如 SVM 对偶、岭回归)中 $\phi(x)$ 只以内积 $\langle \phi(x), \phi(z) \rangle$ 的形式出现。若存在函数 $K(x, z) = \langle \phi(x), \phi(z) \rangle$ 可直接高效计算,就无需显式构造 $\phi$!
- 例子:$K(x,z) = (x^T z)^2$ 对应二次多项式特征映射——计算是 $O(n)$,而显式 $\phi$ 是 $O(n^2)$ 维。核技巧 = 免费的高维空间。
- 常用核:
- 线性核:$K(x,z) = x^T z$。
- 多项式核:$K(x,z) = (x^T z + c)^d$。
- 高斯核 (RBF):$K(x,z) = \exp\left(-\frac{\vert x - z\vert ^2}{2\sigma^2}\right)$——对应无限维特征空间,衡量两个点的相似度(距离近相似度高)。
- 合法核的判据(Mercer 定理):$K$ 是合法核 ⟺ 对任意有限点集,核矩阵 $K_{ij} = K(x^{(i)}, x^{(j)})$ 是半正定的。直觉:核矩阵是“两两相似度”表,必须像内积矩阵一样良定义。
- 核的运算:核的和、积、常数倍仍是核——可组合出复杂核。
- SVM:最大间隔分类器:
- 问题定义:线性二分类。存在无数条分界线都能正确分开数据——SVM 选间隔最大的那条。
- 直观解释:把分界线想象成“公路”,两侧留出最宽的“缓冲区”(间隔)。间隔越大,对新数据越鲁棒(离边界越远越安全)。SVM 选择使间隔最大的分界线,只由离边界最近的点决定——这些点叫支持向量 (support vectors)。
- 函数间隔 vs 几何间隔:
- 函数间隔:$\hat{\gamma}^{(i)} = y^{(i)}(w^T x^{(i)} + b)$(对正确分类样本为正;对 $(w,b)$ 整体缩放会变大——不规范)。
- 几何间隔:$\gamma^{(i)} = y^{(i)}\left(\frac{w^T}{\vert w\vert } x^{(i)} + \frac{b}{\vert w\vert }\right)$——归一化后的函数间隔,缩放不变,几何意义是点到超平面的距离。
- 优化问题(原始形式):最大化最小几何间隔:
$\max_{\gamma, w, b} \gamma \quad \text{s.t.} \quad y^{(i)}(w^T x^{(i)} + b) \ge \gamma, \ \|w\| = 1$规范化后等价于:$\min_{w, b} \frac{1}{2}\|w\|^2 \quad \text{s.t.} \quad y^{(i)}(w^T x^{(i)} + b) \ge 1, \ \forall i$- $\frac{1}{2}\vert w\vert ^2$:最小化 $\vert w\vert $ = 最大化间隔(间隔 $= 2/\vert w\vert $)。
- 直觉:约束“每个点至少在边界外侧”,目标“边界越宽越好”。
- 软间隔 (Soft Margin):数据线性不可分或有噪声时引入松弛变量 $\xi_i$ 与惩罚 $C$:
$\min_{w,b,\xi} \frac{1}{2}\|w\|^2 + C \sum_{i=1}^{m} \xi_i \quad \text{s.t.} \quad y^{(i)}(w^T x^{(i)} + b) \ge 1 - \xi_i, \ \xi_i \ge 0$- $C$:对“越界点”的容忍度。$C$ 大 ⇒ 严格分类(可能过拟合);$C$ 小 ⇒ 容忍误分(更平滑)。$\xi_i$ 衡量第 $i$ 个点越界的程度。
- 对偶形式与核化:构造拉格朗日,对偶问题只依赖内积 $x^{(i)T} x^{(j)}$(替换为 $K(x^{(i)}, x^{(j)})$ 即得核 SVM)。KKT 条件给出:$w = \sum_i \alpha_i y^{(i)} \phi(x^{(i)})$——决策只由 $\alpha_i > 0$ 的支持向量决定:
$h(x) = \text{sign}\left( \sum_{i \in SV} \alpha_i y^{(i)} K(x^{(i)}, x) + b \right)$- 直觉:新点分类 = 与所有支持向量的“相似度”加权投票。
- SMO 算法:坐标上升思想的特例,每次只优化两个 $\alpha$(闭式解),循环直到收敛——是实践中训练 SVM 的标准算法。
算法伪代码与逻辑解说:SMO(简化版)
伪代码
输入:
- 训练数据 (X, y),y ∈ {-1, +1}
- 核函数 K(·,·),惩罚参数 C
输出:
- 拉格朗日乘子 alpha,偏置 b
1. 初始化 alpha = 0, b = 0
2. 循环直到 alpha 收敛(KKT 条件近似满足):
2.1 选取一对"违反 KKT 最严重"的乘子 alpha_i, alpha_j(启发式选择)
2.2 计算误差: E_i = f(x^(i)) - y^(i),其中 f(x) = Σ_k alpha_k y_k K(x_k, x) + b
2.3 解析更新 alpha_j(带上下界 L, H 的裁剪):
alpha_j_new = alpha_j + y_j (E_i - E_j) / (K_ii + K_jj - 2K_ij)
alpha_j_new = clip(alpha_j_new, L, H) // L, H 由 C 与 alpha_i+alpha_j 决定
2.4 更新 alpha_i = alpha_i + y_i y_j (alpha_j_old - alpha_j_new)
2.5 更新 b(由支持向量条件)
3. 返回 alpha, b
【算法逻辑解说】
- 为什么对偶:原始问题是约束优化(难);对偶问题约束简单($0 \le \alpha_i \le C$),且目标函数只含核内积——核技巧在此落地。
- Step 2.1 选对 (pair):SMO 每次只动两个 $\alpha$(一个也动不了:$\sum \alpha_i y_i = 0$ 约束)。启发式优先选“误差最大”的点对,加速收敛。
- Step 2.3 解析更新:固定其他 $\alpha$ 后,$\alpha_j$ 的优化有闭式解——分子是误差差,分母是核矩阵二阶差(曲率);裁剪到 $[L, H]$ 保证约束 $0 \le \alpha \le C$ 与 $\sum \alpha_i y_i = 0$ 同时满足。
- 收敛判定:所有点满足 KKT 条件(对 $\alpha_i = 0$:点在边界内;$0 < \alpha_i < C$:点在边界上;$\alpha_i = C$:点越界)。KKT 是“最优性”的精确刻画。
- 预测:只需支持向量($\alpha_i > 0$ 的点),其余点不参与——稀疏性让 SVM 预测高效。
关键要点
- 核技巧:只需内积可计算 ⇒ 隐式高维(甚至无限维)特征空间,计算代价不变。
- SVM = 最大间隔分类器;间隔大 ⇒ 泛化好(理论上有界,L13 学习理论部分会提)。
- 软间隔参数 $C$ 是偏差-方差旋钮:$C$ 大→低偏差高方差。
- 对偶 + KKT:解由支持向量稀疏表示;SMO 是标准训练算法。
- 高斯核参数 $\sigma$ 同样控制复杂度:$\sigma$ 小→决策边界更复杂(高方差)。
常见误区与注意事项
- 不缩放特征直接上核 SVM:高斯核依赖欧氏距离,量纲大的特征主导相似度——必须先标准化。
- $\sigma$ 与 $C$ 一起盲调:高斯核 SVM 有两个超参数,应网格搜索(对数刻度)。$\sigma$ 过小→每个点都是孤岛(过拟合);过大→核退化为线性(欠拟合)。
- 误以为 SVM 输出是概率:标准 SVM 输出的是到边界的距离(margin),不是概率;需要校准(Platt scaling)才能当概率用。
- 大数据集用 SVM:核矩阵 $O(m^2)$ 内存、SMO $O(m^2)$~$O(m^3)$ 时间;$m > 10^5$ 时优先考虑线性模型/神经网络。
- 混淆函数间隔与几何间隔的缩放不变性:函数间隔随 $\vert w\vert $ 缩放变化,几何间隔不变——优化必须用几何间隔(或固定 $\vert w\vert =1$ 的规范化形式)。
思考题
- 问题:为什么最大化间隔等价于最小化 $\frac{1}{2}\vert w\vert ^2$?
- 答案:几何间隔 $\gamma = 1/\vert w\vert $(在约束 $y^{(i)}(w^Tx^{(i)}+b) \ge 1$ 规范化后,边界到超平面距离为 $1/\vert w\vert $,总间隔 $2/\vert w\vert $)。最大化 $2/\vert w\vert $ ⟺ 最小化 $\vert w\vert $ ⟺ 最小化 $\frac{1}{2}\vert w\vert ^2$(平方仅便于求导)。
- 问题:高斯核 $K(x,z) = \exp(-\vert x-z\vert ^2/2\sigma^2)$ 对应无限维特征映射——直觉上它“记住了什么”?
- 答案:它衡量点与点的相似度(距离越近越相似)。在训练点上构造的“相似度山峰”(每个支持向量一个峰),叠加后形成任意复杂的决策曲面。$\sigma$ 控制峰宽:$\sigma$ 小→峰窄→只影响极近的点→边界锯齿化(高方差)。
- 问题:线性不可分数据上,为何软间隔 SVM 仍可能优于强制硬间隔?
- 答案:硬间隔要求所有点严格分开——对噪声点会“委曲求全”形成病态边界(高方差、泛化差)。软间隔允许少数点越界(付出 $C\xi_i$ 代价),换来更平滑、间隔更大的边界——用少量训练误差换更小的泛化误差(偏差-方差权衡)。
