支持向量机(SVM)
1. SVM 的核心思想
支持向量机(Support Vector Machine, SVM)是一种监督学习算法,用于分类和回归任务。其目标是找到一个超平面,将数据点分为不同类别,同时 最大化分类间隔(margin)。
对于线性可分数据,SVM 构造一个间隔最大的超平面;对于线性不可分数据,通过 核函数(Kernel Function) 将数据映射到高维特征空间,在高维空间中寻找分类超平面。
2. 线性 SVM 的公式推导
2.1 超平面定义
给定训练数据集:
{ ( x 1 , y 1 ) , ( x 2 , y 2 ) , ... , ( x n , y n ) } \{(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n)\} {(x1,y1),(x2,y2),...,(xn,yn)}
其中:
- x i ∈ R d x_i \in \mathbb{R}^d xi∈Rd:表示输入特征向量;
- y i ∈ { − 1 , + 1 } y_i \in \{-1, +1\} yi∈{−1,+1}:表示对应的标签。
假设超平面方程为:
w ⋅ x + b = 0 w \cdot x + b = 0 w⋅x+b=0
其中:
- (w) 为法向量,决定超平面的方向;
- (b) 为偏置,决定超平面的位置。
2.2 分类间隔
分类间隔 (M) 定义为:
M = 2 ∥ w ∥ M = \frac{2}{\|w\|} M=∥w∥2
为了最大化间隔,等价于最小化 (|w|^2)。同时,为了正确分类,需要满足:
y i ( w ⋅ x i + b ) ≥ 1 , ∀ i y_i(w \cdot x_i + b) \geq 1, \quad \forall i yi(w⋅xi+b)≥1,∀i
2.3 优化目标
优化问题可以表示为:
min w , b 1 2 ∥ w ∥ 2 \min_{w, b} \frac{1}{2} \|w\|^2 w,bmin21∥w∥2
约束条件为:
y i ( w ⋅ x i + b ) ≥ 1 , ∀ i y_i(w \cdot x_i + b) \geq 1, \quad \forall i yi(w⋅xi+b)≥1,∀i
3. 对偶问题推导
引入拉格朗日乘子 α i ≥ 0 \alpha_i \geq 0 αi≥0,构造拉格朗日函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i [ y i ( w ⋅ x i + b ) − 1 ] L(w, b, \alpha) = \frac{1}{2} \|w\|^2 - \sum_{i=1}^n \alpha_i \big[y_i(w \cdot x_i + b) - 1\big] L(w,b,α)=21∥w∥2−i=1∑nαi[yi(w⋅xi+b)−1]
对 (w) 和 (b) 求导并令导数为 0,可得:
w = ∑ i = 1 n α i y i x i w = \sum_{i=1}^n \alpha_i y_i x_i w=i=1∑nαiyixi
∑ i = 1 n α i y i = 0 \sum_{i=1}^n \alpha_i y_i = 0 i=1∑nαiyi=0
将 (w) 和 (b) 的表达式代入拉格朗日函数,得到对偶形式:
max α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( x i ⋅ x j ) \max_{\alpha} \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)
约束条件为:
∑ i = 1 n α i y i = 0 , α i ≥ 0 \sum_{i=1}^n \alpha_i y_i = 0, \quad \alpha_i \geq 0 i=1∑nαiyi=0,αi≥0
最终,分类决策函数为:
f ( x ) = sign ( ∑ i = 1 n α i y i ( x ⋅ x i ) + b ) f(x) = \text{sign}\left(\sum_{i=1}^n \alpha_i y_i (x \cdot x_i) + b\right) f(x)=sign(i=1∑nαiyi(x⋅xi)+b)
4. 核函数与非线性 SVM
对于线性不可分数据,SVM 通过核函数 κ ( x i , x j ) \kappa(x_i, x_j) κ(xi,xj) 将数据映射到高维特征空间。常用核函数包括:
-
线性核 :
κ ( x i , x j ) = x i ⋅ x j \kappa(x_i, x_j) = x_i \cdot x_j κ(xi,xj)=xi⋅xj -
多项式核 :
κ ( x i , x j ) = ( x i ⋅ x j + c ) d \kappa(x_i, x_j) = (x_i \cdot x_j + c)^d κ(xi,xj)=(xi⋅xj+c)d -
高斯核(RBF 核) :
κ ( x i , x j ) = exp ( − ∥ x i − x j ∥ 2 2 σ 2 ) \kappa(x_i, x_j) = \exp\left(-\frac{\|x_i - x_j\|^2}{2\sigma^2}\right) κ(xi,xj)=exp(−2σ2∥xi−xj∥2)
非线性问题的对偶形式为:
max α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j κ ( x i , x j ) \max_{\alpha} \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j \kappa(x_i, x_j) αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjκ(xi,xj)
5. 软间隔 SVM
对于线性不可分数据,可以引入松弛变量 ξ i \xi_i ξi 和惩罚参数 C C C,优化目标为:
min w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i \min_{w, b, \xi} \frac{1}{2} \|w\|^2 + C \sum_{i=1}^n \xi_i w,b,ξmin21∥w∥2+Ci=1∑nξi
约束条件为:
y i ( w ⋅ x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 y_i(w \cdot x_i + b) \geq 1 - \xi_i, \quad \xi_i \geq 0 yi(w⋅xi+b)≥1−ξi,ξi≥0
6. 总结
SVM 的核心特点:
- 能有效处理高维数据;
- 通过核函数扩展到非线性问题;
- 在小样本数据集上表现出色。
但对于大规模数据集,其计算复杂度较高。