支持向量机(SVM)详解:原理与优化
支持向量机 (SVM) 详解
1. 基本概念
支持向量机(Support Vector Machine, SVM)是一种强大的监督学习算法,广泛应用于分类问题(如图像识别、文本分类等),也可以扩展到回归问题。SVM 的核心思想是通过寻找一个超平面(hyperplane)将数据分成两个类别,并尽量使得这两个类别之间的间隔最大,从而实现最优分类。
- 分类问题:SVM 的目标是找到一个能够将不同类别的样本区分开来的超平面。
- 最大间隔:通过寻找具有最大间隔的超平面来增强模型的泛化能力。
- 支持向量:SVM 中的支持向量是离决策边界最近的样本点,它们决定了超平面的位置。
2. 数学原理
SVM 的数学原理基于优化问题,通过最大化分类间隔来实现分类。以下将通过数学推导详细介绍其基本原理。
2.1 线性可分情况
假设我们有一组训练数据 ( {(x_i, y_i)} ),其中 ( x_i \in \mathbb{R}^n ) 是输入特征,( y_i \in {-1, 1} ) 是输出标签,表示数据的类别。我们希望通过一个超平面将这两类数据分开。
- 超平面方程:
一个超平面在 ( n )-维空间中的表示为:
w T x + b = 0 , w^T x + b = 0, wTx+b=0,
其中:
- ( w ) 是法向量(normal vector),决定了超平面的方向;
- ( b ) 是偏置项(bias),决定了超平面的偏移。
- 间隔:
对于一个超平面 ( w^T x + b = 0 ),分类间隔(margin)是指从超平面到离它最近的样本点的距离。对于给定的样本点 ( x_i ),其到超平面的距离为:
distance ( x i , hyperplane ) = ∣ w T x i + b ∣ ∥ w ∥ . \text{distance}(x_i, \text{hyperplane}) = \frac{|w^T x_i + b|}{\|w\|}. distance(xi,hyperplane)=∥w∥∣wTxi+b∣.
为了获得最佳的分类性能,我们希望最大化这个间隔,即最大化 ( \frac{1}{|w|} ),这等价于最小化 ( \frac{1}{2} |w|^2 )(为了简化计算,通常将 ( \frac{1}{2} ) 作为一个常数)。
- 约束条件:
为了确保所有样本都被正确分类,要求每个样本点 ( x_i ) 满足:
- 对于 ( y_i = +1 ),我们希望 ( w^T x_i + b \geq 1 );
- 对于 ( y_i = -1 ),我们希望 ( w^T x_i + b \leq -1 )。
将这两个条件结合起来,得到:
y i ( w T x i + b ) ≥ 1 , ∀ i . y_i (w^T x_i + b) \geq 1, \quad \forall i. yi(wTxi+b)≥1,∀i.
2.2 最优化问题
为了使得分类的效果最好,我们需要最大化间隔。目标是最小化 ( \frac{1}{2} |w|^2 ),并满足约束条件。这个优化问题可以表示为:
min w , b 1 2 ∥ w ∥ 2 , \min_{w, b} \frac{1}{2} \|w\|^2,