svm支持向量机

支持向量机(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) 将数据映射到高维特征空间。常用核函数包括:

  1. 线性核
    κ ( x i , x j ) = x i ⋅ x j \kappa(x_i, x_j) = x_i \cdot x_j κ(xi,xj)=xi⋅xj

  2. 多项式核
    κ ( 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

  3. 高斯核(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 的核心特点:

  1. 能有效处理高维数据;
  2. 通过核函数扩展到非线性问题;
  3. 在小样本数据集上表现出色。

但对于大规模数据集,其计算复杂度较高。

相关推荐
Mr.Winter`1 小时前
深度强化学习 | 图文详细推导软性演员-评论家SAC算法原理
人工智能·深度学习·神经网络·机器学习·数据挖掘·机器人·强化学习
强盛小灵通专卖员1 小时前
分类分割详细指标说明
人工智能·深度学习·算法·机器学习
IT猿手5 小时前
基于强化学习 Q-learning 算法求解城市场景下无人机三维路径规划研究,提供完整MATLAB代码
神经网络·算法·matlab·人机交互·无人机·强化学习·无人机三维路径规划
蜡笔小新..7 小时前
从零开始:用PyTorch构建CIFAR-10图像分类模型达到接近1的准确率
人工智能·pytorch·机器学习·分类·cifar-10
万能程序员-传康Kk8 小时前
旅游推荐数据分析可视化系统算法
算法·数据分析·旅游
PXM的算法星球8 小时前
【并发编程基石】CAS无锁算法详解:原理、实现与应用场景
算法
ll7788118 小时前
C++学习之路,从0到精通的征途:继承
开发语言·数据结构·c++·学习·算法
烨然若神人~8 小时前
算法第十七天|654. 最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
算法
爱coding的橙子8 小时前
每日算法刷题Day2 5.10:leetcode数组1道题3种解法,用时40min
算法·leetcode
奋斗者1号9 小时前
机器学习之决策树模型:从基础概念到条件类型详解
人工智能·决策树·机器学习