机器学习玩具代码项目中的SVM算法详解
1. 支持向量机(SVM)概述
支持向量机(Support Vector Machine, SVM)是一种经典的监督学习算法,主要用于解决分类问题。它的核心思想是找到一个最优的超平面,将不同类别的样本分隔开,同时最大化分类边界与最近样本点之间的距离(称为间隔)。
SVM的主要特点包括:
- 基于结构风险最小化原则,具有良好的泛化能力
- 可以通过核技巧处理非线性分类问题
- 对高维数据表现良好
- 对小样本数据也能取得不错的效果
2. 线性SVM原理
2.1 基本概念
线性SVM假设数据是线性可分的,目标是找到一个超平面: $$ w^{T}x + b = 0 $$
其中:
- $w$是法向量,决定了超平面的方向
- $b$是位移项,决定了超平面与原点的距离
2.2 间隔最大化
SVM的核心思想是最大化间隔,即找到使两类样本距离超平面最近的点(支持向量)到超平面的距离最大的超平面。
几何间隔公式: $$ \frac{1}{|w|}\left|w^{T}x + b\right| $$
函数间隔公式: $$ y(w^{T}x + b) $$
优化目标转化为: $$ \max \frac{1}{|w|} \quad \text{s.t.} \quad y_i(w^{T}x_i + b) \geq 1 $$
最终转化为二次规划问题: $$ \min \frac{1}{2}|w|^{2} \quad \text{s.t.} \quad y_i(w^{T}x_i + b) \geq 1 $$
3. 对偶问题求解
3.1 拉格朗日对偶
引入拉格朗日乘子$\alpha_i \geq 0$,构建拉格朗日函数: $$ L(w, b, \alpha) = \frac{1}{2}|w|^{2} - \sum_{i=1}^{m}\alpha_i[y_i(w^{T}x_i + b) - 1] $$
通过KKT条件转化为对偶问题: $$ \max_{\alpha} \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i,j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^{T}x_j $$
3.2 SMO算法
序列最小优化(SMO)算法是求解SVM对偶问题的有效方法,其基本思想是:
- 每次选择两个变量$\alpha_i$和$\alpha_j$
- 固定其他变量,优化这两个变量
- 重复直到收敛
4. 软间隔SVM
4.1 引入松弛变量
对于线性不可分或存在噪声的数据,引入松弛变量$\xi_i \geq 0$,允许部分样本分类错误: $$ y_i(w^{T}x_i + b) \geq 1 - \xi_i $$
优化目标变为: $$ \min \frac{1}{2}|w|^{2} + C\sum_{i=1}^{m}\xi_i $$
其中$C$是惩罚参数,控制对误分类的惩罚程度。
4.2 对偶问题
软间隔SVM的对偶问题与硬间隔类似,只是增加了约束: $$ 0 \leq \alpha_i \leq C $$
5. 核技巧与非线性SVM
5.1 核函数原理
对于非线性可分数据,通过映射函数$\phi$将数据映射到高维空间,使其线性可分。核函数定义为: $$ K(x, x') = \phi(x)^{T}\phi(x') $$
这样可以在低维空间计算高维空间的内积,避免维度灾难。
5.2 常用核函数
- 线性核:$K(x, x') = x^{T}x'$
- 多项式核:$K(x, x') = (\gamma x^{T}x' + r)^d$
- 高斯核(RBF):$K(x, x') = \exp(-\gamma|x - x'|^2)$
- Sigmoid核:$K(x, x') = \tanh(\gamma x^{T}x' + r)$
5.3 核SVM优化问题
引入核函数后,优化问题变为: $$ \min_{\alpha} \frac{1}{2}\sum_{i,j=1}^{m}\alpha_i\alpha_jy_iy_jK(x_i, x_j) - \sum_{i=1}^{m}\alpha_i $$
6. 实现与应用建议
在实际应用中,建议:
- 数据预处理:标准化数据通常能提高SVM性能
- 参数选择:
- 线性SVM:主要调整惩罚参数C
- 核SVM:需要选择核函数类型及相关参数
- 核函数选择:
- 线性核适合特征多、样本少的情况
- RBF核适合特征少、样本多的情况
- 计算效率:对于大规模数据,可以考虑线性SVM或使用近似方法
7. 总结
SVM是一种强大的分类算法,通过间隔最大化原则保证了良好的泛化能力。从线性可分情况出发,通过引入软间隔处理噪声数据,通过核技巧处理非线性问题,使其成为机器学习中广泛使用的算法之一。理解SVM的数学原理有助于更好地应用和调参,在实际问题中取得更好的效果。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考