返回
支持向量机 (SVM) 学习指南(一):数学推导
人工智能
2024-01-03 10:57:53
各位人工智能的探索者,欢迎来到支持向量机(SVM)学习之旅的第一部分。我们将从数学推导的角度,深入剖析 SVM 的原理,揭开其强大的分类能力背后的奥秘。
一、SVM 简介
支持向量机(SVM)是一种监督式机器学习算法,广泛应用于分类任务。它通过在样本数据中寻找一个超平面,将不同的类别分开,从而实现分类。SVM 具有以下优势:
- 高分类精度: SVM 在处理高维数据和非线性可分问题时表现出色。
- 鲁棒性强: SVM 对噪声和离群点具有较强的鲁棒性,不易受到过拟合的影响。
- 可解释性高: SVM 的决策边界清晰易懂,便于对分类结果进行解释。
二、SVM 数学推导
2.1 线性可分情况
对于线性可分的数据集,SVM 的目标是寻找一条超平面,将两个类别完全分开。超平面的方程为:
w^T x + b = 0
其中:
w
是超平面的法向量x
是样本向量b
是超平面的截距
为了找到最佳超平面,SVM 采用最大化超平面两侧支持向量(距离超平面最远的样本点)的距离作为优化目标:
max margin = 2 / ||w||
通过引入松弛变量,可以处理线性不可分的情况,从而得到软间隔 SVM 的优化问题:
min 1/2 ||w||^2 + C ∑ξ_i
其中:
C
是惩罚参数ξ_i
是松弛变量
2.2 对偶问题
SVM 原始问题的求解比较复杂,因此将其转化为对偶问题求解。对偶问题的优化目标为:
max α - ∑α_i α_j y_i y_j x_i^T x_j
约束条件为:
∑α_i y_i = 0
0 ≤ α_i ≤ C
求解对偶问题可以得到超平面的法向量 w
和截距 b
:
w = ∑α_i y_i x_i
b = y_i - w^T x_i (其中 α_i 最大)
2.3 核函数
对于非线性可分的数据集,SVM 可以通过使用核函数将数据映射到更高维空间,从而实现分类。常用的核函数有:
- 线性核函数
- 多项式核函数
- 高斯核函数
三、SMO 算法
SMO(序列最小优化)算法是一种高效的求解 SVM 对偶问题的方法。它将大规模优化问题分解为一系列较小的二次规划问题,逐步求解。
SMO 算法的基本步骤如下:
- 选择一对违反 KKT 条件的变量
α_i
和α_j
。 - 固定其他变量,求解
α_i
和α_j
的子问题。 - 更新
α_i
和α_j
的值。 - 重复上述步骤,直到满足停止条件。
四、应用场景
SVM 广泛应用于以下场景:
- 图像分类: 识别物体、场景和面部。
- 文本分类: 分类电子邮件、新闻文章和评论。
- 生物信息学: 分析基因表达模式和预测疾病。
- 金融预测: 预测股票价格和汇率走势。