【深度学习入门_机器学习理论】支持向量机(SVM)

发布于:2025-03-20 ⋅ 阅读:(20) ⋅ 点赞:(0)

本部分主要为机器学习理论入门_支持向量机(support vector machines, SVM),书籍参考 “ 统计学习方法(第二版)”。

学习目标: 理解决策边界、支持向量、决策/正/负超平面方程式、损失成本、软/硬间隔、核技巧升维转换。

工作之余有时间,继续填坑…

一、支持向量机(SVM)定义

支持向量机(Support Vector Machine,SVM)是一种用于分类和回归的监督学习算法,特别适用于分类问题。它的核心思想是找到一个最优超平面,将不同类别的数据分开,并最大化类别之间的边界(即“间隔”)。对于线性可分的数据,SVM通过寻找一个超平面来实现分类;对于线性不可分的数据,SVM通过核函数将数据映射到高维空间,使其在高维空间中线性可分。

在这里插入图片描述

一般的来说,当数据集线性可分时,存在多个能够正确分类的超平面。

对比一下感知机算法:

  • 感知机:利用误分类最小的策略,解有无穷多个,不唯一。

  • 支持向量机:利用间隔最大化策略,解唯一。

在这里插入图片描述
支持向量机主要包含以下三大类:

  • 线性可分支持向量机:针对数据线性可分,通过硬间隔最大化来学习
  • 线性支持向量机:针对数据近似线性可分(含噪),通过软间隔最大化来学习
  • 非线性支持向量机:针对数据线性不可分,通过核技巧及软间隔最大化来学习

二、支持向量机定义

2.1 超平面

说白了,就是所要求的解平面,也就是能够分隔数据的解集合。

超平面是分割输入变量空间的线。在SVM中,选择超平面以最佳地将输入变量空间中的点与它们的类(0级或1级)分开。在二维中,您可以将其视为一条线,并假设我们的所有输入点都可以被这条线完全分开。SVM学习算法找到导致超平面最好地分离类的系数。

其定义为:在n维空间中,超平面是一个n-1维的子空间,用于分隔数据。对于新的、未知的样本,SVM可以根据它们与超平面的相对位置来判断其所属类别。

超平面方程为:
在这里插入图片描述
其中w是权重,b是截距,训练数据就是训练得到权重和截距。

对于二维空间来说,其就是一条直线,如下图所示:

在这里插入图片描述
根据样本,可以分为正/负超平面,如下图所示。
在这里插入图片描述

2.2 间隔

超平面与最近数据点之间的距离就是间距。SVM的目标就是最大化这个间隔,如下图:
在这里插入图片描述

当然了,可能会存在一些误差样本,这个时候就需要给处理掉,那么不去掉误差样本的数据间隔就是软间隔,如下图所示:
在这里插入图片描述

去掉误差样本的数据间隔就是硬间隔

在这里插入图片描述

2.3 间隔最大化(Margin Maximization)

核心思想:SVM的目标是找到一个超平面,使得该平面到最近样本点(支持向量)的距离最大。这种间隔最大化策略旨在提高模型的鲁棒性,减少过拟合风险。

2.4 核函数

当数据线性可分时,SVM能够直接在原始特征空间中寻找一个最优的超平面,这个超平面能够将不同类别的数据分隔开来,并且保证不同类别之间的间隔最大化;若非线性可分,传统的线性超平面无法有效地区分不同类别的数据。为了解决这个问题,SVM引入了核函数的概念,其实和齐次坐标的作用差不多。

用于将数据映射到高维空间的函数,常见的核函数包括线性核、多项式核和径向基函数(RBF)核。
在这里插入图片描述
在这里插入图片描述
其中,核技巧就是对不可分数据进行升维度,然后来求解超平面的过程。
在这里插入图片描述

三、通过优化求解SVM

3.1 拉格朗日乘数法

在这里插入图片描述

3.2 KKT条件

在优化理论中,KKT(Karush-Kuhn-Tucker)条件是一组必须满足的条件,以便一个点成为凸优化问题的局部最小值,特别是对于有不等式约束的问题。

3.3 优化求解

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、SVM的优缺点

优点:

  • 可以解决高维问题,即大型特征空间;
  • 解决小样本下机器学习问题;
  • 能够处理非线性特征的相互作用;
  • 无局部极小值问题;(相对于神经网络等算法)
  • 无需依赖整个数据;
  • 泛化能力比较强;

缺点:

  • 当观测样本很多时,效率并不是很高;
  • 对非线性问题没有通用解决方案,有时候很难找到一个合适的核函数;
  • 对于核函数的高维映射解释力不强,尤其是径向基函数;
  • 常规SVM只支持二分类;
  • 对缺失数据敏感;