返回

支持向量机 (SVM) 学习指南(一):数学推导

人工智能

各位人工智能的探索者,欢迎来到支持向量机(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 算法的基本步骤如下:

  1. 选择一对违反 KKT 条件的变量 α_iα_j
  2. 固定其他变量,求解 α_iα_j 的子问题。
  3. 更新 α_iα_j 的值。
  4. 重复上述步骤,直到满足停止条件。

四、应用场景

SVM 广泛应用于以下场景:

  • 图像分类: 识别物体、场景和面部。
  • 文本分类: 分类电子邮件、新闻文章和评论。
  • 生物信息学: 分析基因表达模式和预测疾病。
  • 金融预测: 预测股票价格和汇率走势。