⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。
Skip to content

2.6 支持向量机与核方法 ​

核心问题: 如何用间隔和核函数构造分类边界?

在线 Notebook

对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明。


线性 SVM ​

线性支持向量机寻找决策边界 wTx+b=0,并用正则化与 Hinge 损失平衡间隔和训练误差:

minw,b12‖w‖2+C∑i=1nmax(0,1−yi(wTxi+b))

C 较大时更重视训练误差,较小时允许更多间隔违反以换取更强正则化。距离边界最近、对解有直接影响的训练样本称为支持向量。

核方法 ​

核函数计算某个特征空间中的内积:

K(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩

算法只计算 K,无需显式构造 ϕ(x)。常见选择包括:

核函数公式主要参数
线性核xiTxjC
多项式核(xiTxj+c)d次数 d、常数 c
RBF 核exp⁡(−γ‖xi−xj‖2)宽度 γ

使用核函数后,预测可写为:

y^=sign(∑iαiyiK(xi,x)+b)

只有支持向量对应的系数通常非零。核技巧避免显式展开高维特征,但训练和预测仍可能随样本数增加而变慢。

线性核还是 RBF 核 ​

情况可先尝试
高维稀疏特征或近似线性边界线性 SVM
中小规模、边界明显非线性RBF 核 SVM
样本很多、需低延迟预测线性模型或其他可扩展基线

特征缩放会影响距离和间隔,应把标准化放进训练管线,并只用训练数据拟合缩放参数。C 和 γ 应通过交叉验证选择。


与神经网络的边界 ​

核 SVM 使用预先选择的核定义相似度;神经网络通过训练学习多层特征变换。二者都能形成非线性决策边界,但参数化方式、优化方法和计算成本不同。

点积注意力也会计算向量相似度,但 Query、Key 和 Value 来自可学习投影,并在序列内动态计算。它不是 RBF 核 SVM 的延伸,不需要用核函数类型去对应不同注意力头。


代码实验 ​

实验在同一数据上比较线性 SVM 与 RBF 核 SVM 的决策边界。

SVM Kernel Methods

图2.6:线性核与 RBF 核产生的决策边界。图中结果只对应当前数据和超参数。

代码文件: code/ch02_optimization/svm_kernel.py运行方式: python code/ch02_optimization/svm_kernel.py

运行后分别改变 C 与 γ,比较训练分数、测试分数和支持向量数量。


本节小结 ​

  • SVM 用间隔和损失共同确定分类边界。
  • 核函数允许算法使用隐式特征空间,但不会消除样本规模带来的计算成本。
  • 核方法、神经网络和注意力可以比较表示方式,不能当作同一种机制。

下一节: 2.7 决策树与随机森林

本教程采用 CC BY-NC-SA 4.0 许可协议