支持向量机(Support Vector Machine, SVM)是一种强大的监督学习算法,广泛应用于分类问题(如图像识别、文本分类等),也可以扩展到回归问题。SVM 的核心思想是通过寻找一个超平面(hyperplane)将数据分成两个类别,并尽量使得这两个类别之间的间隔最大,从而实现最优分类。
SVM 的数学原理基于优化问题,通过最大化分类间隔来实现分类。以下将通过数学推导详细介绍其基本原理。
假设我们有一组训练数据 ( {(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^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 ( w T x i + b ) ≥ 1 , ∀ i . y_i (w^T x_i + b) \geq 1, \quad \forall i. yi(wTxi+b)≥1,∀i.
为了使得分类的效果最好,我们需要最大化间隔。目标是最小化 ( \frac{1}{2} |w|^2 ),并满足约束条件。这个优化问题可以表示为:
min w , b 1 2 ∥ w ∥ 2 , \min_{w, b} \frac{1}{2} \|w\|^2, w,bmin21∥w∥2,
约束条件为:
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.
为了求解这个最优化问题,采用拉格朗日乘子法进行约束优化。我们构造拉格朗日函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 ] , L(w, b, \alpha) = \frac{1}{2} \|w\|^2 - \sum_{i=1}^m \alpha_i \left[ y_i (w^T x_i + b) - 1 \right], L(w,b,α)=21∥w∥2−i=1∑mαi[yi(wTxi+b)−1],
其中,( \alpha_i \geq 0 ) 是拉格朗日乘子,表示每个约束的权重。
对 ( w ) 和 ( b ) 求偏导并设为零,得到:
w = ∑ i = 1 m α i y i x i , ∑ i = 1 m α i y i = 0. w = \sum_{i=1}^m \alpha_i y_i x_i, \quad \sum_{i=1}^m \alpha_i y_i = 0. w=i=1∑mαiyixi,i=1∑mαiyi=0.
最终,原始优化问题转化为一个对偶问题:
max α ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m α i α j y i y j x i T x j , \max_{\alpha} \sum_{i=1}^m \alpha_i - \frac{1}{2} \sum_{i,j=1}^m \alpha_i \alpha_j y_i y_j x_i^T x_j, αmaxi=1∑mαi−21i,j=1∑mαiαjyiyjxiTxj,
约束条件:
0 ≤ α i ≤ C , ∑ i = 1 m α i y i = 0 , 0 \leq \alpha_i \leq C, \quad \sum_{i=1}^m \alpha_i y_i = 0, 0≤αi≤C,i=1∑mαiyi=0,
其中 ( C ) 是正则化参数,控制间隔的宽度和分类错误的惩罚。
对于非线性可分的数据,SVM 可以通过引入核函数(Kernel Function)来将数据映射到更高维的空间,从而使得数据在高维空间中变得线性可分。核函数的引入使得 SVM 在高维空间中进行分类而不需要显式地计算数据点的高维映射。
常见的核函数包括:
通过使用核函数,SVM 的优化问题变为:
min α ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m α i α j y i y j K ( x i , x j ) , \min_{\alpha} \sum_{i=1}^m \alpha_i - \frac{1}{2} \sum_{i,j=1}^m \alpha_i \alpha_j y_i y_j K(x_i, x_j), αmini=1∑mαi−21i,j=1∑mαiαjyiyjK(xi,xj),
其中 ( K(x_i, x_j) ) 是核函数。
对于非线性可分的情况,SVM 通过引入核函数在高维特征空间中进行优化,依然保持原始的最大间隔原则。分类的决策边界变得更加复杂,但 SVM 通过寻找“最优超平面”进行分类,使得正样本和负样本的间隔最大化。
支持向量机(SVM)是一种强大的分类算法,基于最大化分类间隔的原则,能够在高维空间中找到最优超平面。在处理高维数据、非线性分类问题时,SVM 常常表现出色。尽管 SVM 的计算复杂度较高,但通过引入核函数和优化算法,它已经成为机器学习中不可或缺的一部分。在实践中,通过合理选择核函数和调整正则化参数,SVM 能够在多种任务中取得良好的性能。