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

本部分主要为机器学习理论入门_支持向量机(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只支持二分类;
  • 对缺失数据敏感;
相关推荐
问天_观心4 小时前
大模型微调学习(二)
人工智能·python·深度学习·学习·语言模型·transformer
指掀涛澜天下惊4 小时前
强化学习进阶篇八 策略梯度算法
深度学习·学习·算法·强化学习
Mickey Q8 小时前
【深度学习】数值稳定性和模型初始化
人工智能·深度学习
揽秀亭长8 小时前
论文降AI率哪个方法比较实用?4种方式实际对比
人工智能·深度学习
数智工坊10 小时前
NTIRE2024×4图像超分竞赛综述|Mamba崛起、数据缩放、频域增强成为新趋势
网络·人工智能·深度学习·cnn·机器人
2601_9620779811 小时前
利用Python,四步掌握机器学习
python·机器学习·数据挖掘·数据分析·编程
小雨笙笙11 小时前
机器学习:线性回归学习
学习·机器学习·线性回归
盼小辉丶12 小时前
PyTorch强化学习实战——融合人类示范数据的高效强化学习
人工智能·pytorch·python·深度学习·强化学习
天远Date Lab12 小时前
零信任架构实战:基于天远车信盟出险构建自动化汽车消费贷合规网关
人工智能·机器学习·计算机视觉·ocr
DM今天肝到几点?12 小时前
GPT-6 Astra 发布:ARC-AGI-3 从 7.8% 跳到 99.9%,OpenAI 宣告「欢迎进入 AGI 时代」
人工智能·gpt·深度学习·agi