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 \bigy_i(w \\cdot x_i + b) - 1\\big L(w,b,α)=21∥w∥2−i=1∑nαiyi(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. 在小样本数据集上表现出色。

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

相关推荐
Axis tech7 小时前
MANUS手套为NVIDIA的DreamDojo机器人世界模型提供真实的手部运动数据
人工智能·深度学习·机器学习
zzz_23687 小时前
【Java实习面试算法冲刺】图论
java·算法·面试
大鱼>8 小时前
宠物监控数据安全与隐私保护:端到端加密与合规实践
人工智能·深度学习·算法·iot·宠物
被自己蠢哭8 小时前
BFS广度优先搜索问题:#P00496. 华为od机试—自动泊车
算法
:-)8 小时前
分支限界算法
算法
lisw058 小时前
计算免疫学的前沿领域
人工智能·机器学习
大鱼>8 小时前
宠物行为识别AI算法详解:从数据采集到模型部署的完整方案
人工智能·深度学习·算法·宠物
王莎莎-MinerU8 小时前
解析回归集:RAG 和 Agent 上线前,先把表格、公式、版面测清楚
人工智能·算法·数据挖掘·回归·pdf·ocr
KaMeidebaby8 小时前
卡梅德生物技术快报|兔单克隆抗体:噬菌体 Fab 免疫文库搭建实操:兔单克隆抗体重组构建完整参数
前端·网络·数据库·人工智能·算法
AndrewHZ8 小时前
【LLM技术全景】混合精度与分布式训练:训练大模型的工程奥秘
人工智能·分布式·深度学习·算法·ai·语言模型·llm