支持向量机(SVM)第一部分:理论基础与线性模型
1. 背景与核心概念
支持向量机(SVM) 是由 Vapnik 团队在 AT&T 贝尔实验室开发的监督学习算法:
- 核心目标:寻找最优分类超平面,最大化两类数据点的间隔(Margin)
- 关键特性:
- 最大间隔分类器(Max Margin Classifier)
- 最初用于分类,后扩展至回归和时间序列预测
- 曾作为文本处理的强基准模型(Strong Baseline)
- 核心洞察:
当数据线性可分时,存在无数个可行超平面。
SVM选择 间隔最大 的超平面,提升分类鲁棒性和泛化能力。
2. 问题定义与数学形式化
- 输入:训练样本
其中 (特征向量),(类别标签) - 目标:找到分类超平面 满足:f(x_i) \begin{cases} > 0 & \text{若 } y_i = +1 \\ < 0 & \text{若 } y_i = -1 \end{cases}
- 决策规则:预测标签为 这个函数的各个部分及其意义如下: 函数的各个部分及其意义
3. 线性可分与间隔最大化
3.1 支持超平面与间隔定义
- 支持超平面:与分类超平面平行且距离相等的两个平面:\langle w, x \rangle + b = +1 \quad \text{和} \quad \langle w, x \rangle + b = -1
- 间隔公式:
推导 1(几何投影法):
边界超平面到原点的距离:间隔 =
推导 2(距离公式法):
- 点 到超平面的距离:
- 支持超平面上的点满足
- 两支持超平面间距 =
3.2 优化问题原始形式
最大化间隔等价于最小化 (为方便求导,目标函数取 ):
约束条件物理意义:
确保所有样本被正确分类且位于支持超平面外侧()
4. 对偶问题与拉格朗日乘子法
4.1 拉格朗日函数构造
引入拉格朗日乘子 :
4.2 KKT 条件
最优解需满足:
4.3 对偶问题形式
代入 KKT 条件化简得:
对偶问题优势:
- 复杂度取决于样本数而非特征维数
- 显式引入内积 → 为核函数铺垫
- 物理意义:最大化样本间的"协方差作用"
5. 支持向量(Support Vectors)
5.1 定义与性质
- 支持向量:满足 的样本点
- 几何意义:位于支持超平面上的点()
- 关键性质:
- 解 的表达式:(仅由支持向量决定)
- 稀疏性:多数 ,非支持向量不影响模型
- 决策函数简化为:
- 偏置 的计算:( 为任意支持向量)
生活比喻:
支持向量就像支撑帐篷的关键柱子,其他样本是固定绳子的地钉——去掉地钉帐篷仍能站立,但去掉柱子帐篷会倒塌。
6. 算法流程总结
- 输入:训练集
- 求解对偶问题:
- 计算参数:
- ( 为支持向量)
- 预测:
7. SVM vs 其他分类器
| 分类器 | 适用场景 | 决策边界 | 核心特点 |
|---|---|---|---|
| 决策树 | 离散特征,规则清晰 | 轴平行分段 | 可解释性强 |
| 贝叶斯 | 特征独立,概率估计 | 概率等高线 | 需要先验分布 |
| K近邻 | 小样本,局部相似 | 不规则多边形 | 计算开销大 |
| SVM | 高维数据,线性/非线性 | 最大间隔超平面 | 泛化能力强 |
文本分类实例:
- 正例: "I love Iron Man!" → 特征 ["love":1, "Iron":1, "Man":1]
- 负例: "It looks ugly..." → 特征 ["ugly":1]
- 支持向量: "awesome", "brash" 等关键判别词对应的样本
8. 核心公式总结
原始优化问题:
对偶问题:
决策函数:
9. 重要说明
- 命名由来:解仅由支持向量决定,模型复杂度与支持向量数量相关
- 后续扩展:
- 线性不可分情况:引入松弛变量 (后续讲解)
- 非线性问题:通过核函数 替换内积(后续讲解)
- 回归问题:支持向量回归(SVR)
支持向量机(SVM)第二部分:线性不可分与核方法详解
一、线性不可分:软间隔与松弛变量
1. 核心问题与解决方案
- 问题背景:当数据无法被完美线性分割时(存在噪声或重叠),硬间隔SVM失效
- 创新方案:引入松弛变量(Slack Variables) 允许部分样本违规
- 优化目标:平衡间隔最大化和分类错误最小化
参数 的物理意义:
- → ∞ :退化为硬间隔SVM(不容忍任何错误)
- → 0 :无限宽间隔(忽略所有分类错误) 实际应用:通过交叉验证选择最佳
2. 松弛变量的几何解释
| 值 | 样本位置 | 分类状态 |
|---|---|---|
| = 0 | 在间隔外侧 | 完全正确分类 |
| (0,1] | 在间隔内部 | 正确但置信度低 |
| > 1 | 越过决策边界 | 错误分类 |
3. 损失函数视角
- Hinge损失:()
- 软间隔SVM等价于:
- 对比其他损失:
- 0/1损失:(非凸,难优化)
- 对率损失:(逻辑回归使用)
Hinge损失的优势:
仅关心分类边界附近的样本(支持向量),对远离边界的正确分类点不敏感
二、核函数技巧:升维解决非线性问题
1. 核心思想与数学原理
- 基本问题:原始空间线性不可分(如异或问题)
- 解决方案:通过映射 将数据升维到特征空间
- 核技巧:避免显式计算 ,直接定义核函数
- 对偶问题转化为:
2. 常用核函数详解
| 核函数 | 表达式 | 特点 | 适用场景 |
|---|---|---|---|
| 线性核 | 退化回线性SVM | 高维稀疏数据 | |
| 多项式核 | 控制复杂度 | 图像分类 | |
| 高斯核 (RBF) | 控制带宽 | 万能核,通用问题 | |
| Sigmoid核 | 类似神经网络 | 文本分类 |
3. 核函数构造原理
- Mercer定理:合法核函数必须对应半正定Gram矩阵
- 构造方法:
- 显式定义 (如多项式特征)
- 组合简单核:
- 高斯核的分解证明:
4. 核函数应用示例
- 多项式核():
对应特征映射:
几何意义:将二维点映射到三维抛物面实现线性可分
三、SVM实战:图像分类案例
Caltech101数据集实验
- 数据:9144张图,102类别(101物体+背景)
- 流程:
- 关键步骤:
- 预处理:转灰度图,缩放至最长边120像素
- 特征提取:底层视觉特征(LLC)
- 分类器:高斯核SVM
- 结果:
每类训练样本数 测试准确率 15 70.16% 30 73.44%
结论:SVM在小样本场景下仍表现强劲,适合高维特征分类
四、SVM优缺点总结
优点
- 理论完备:最大间隔导出凸优化问题,保证全局最优
- 泛化能力强:结构风险最小化原则
- 核技巧:优雅解决非线性问题,避免维度灾难
实际效果:高斯核SVM在MNIST数据集上可达99%+准确率
- 稀疏解:决策函数仅依赖支持向量,预测高效
缺点
- 核函数选择:依赖经验规则(如文本用线性核,图像用高斯核)
- 超参数敏感: 和 需精细调优
- 计算复杂度:训练时间复杂度 ,大数据需优化
- 解决方案:使用LIBLINEAR(线性核)或随机采样
