【机器学习300问】26、什么是SVM支持向量机?

〇、小卖部二分类的例子

地图上有两个小卖部A和B,地图上的点代表一个人,调查这些人去A或者B小卖部的可能性,根据可能性将人群分为A派和B派。假设我们只考虑人们距离小卖部的距离这一个特征,比如距离A小卖部近的人去A的概率大。
图1

有监督的二分类模型,就是希望找到这样一个决策边界,使得正类数据和负类数据尽可能的分开。于是找到这个决策边界的策略不同,诞生了很多机器学习算法。

假如我有这样一个策略,找到距离小卖部最远的人,并在与他相隔一段距离的位置画一条线当做决策边界。便可以区分开两种人群,像下图这样:
图2

一、支持向量机是什么?

定义:支持向量机(Support Vector Machine, SVM)是一种监督学习模型,在机器学习领域中主要用于分类和回归分析,但其在分类任务上的表现尤为突出。

基本思想:SVM的基本思想是通过构建一个最大间隔决策边界来划分不同类别的数据点,这个决策边界能够最大化两个类别之间的边界距离,也就是最大化分类的"间隔"。

看上面这个很专业的定义和基本思想会有这样几个问题:

  1. 什么是支持向量?
  2. 两个类别之间的边界距离(也就是"间隔")怎么确定?
  3. SVM的目的是什么?

(1)什么是支持向量?

支持向量机SVM名字就带有"支持向量",所以弄懂什么是支持向量非常重要!我先简单一句话说:支持向量的本质就是一些特殊的样本点,特殊在他们距离边界最近。

换个说法:支持向量(Support Vectors)是指在训练集中的那些对构建分类决策边界起决定性作用(又可以说是支撑作用)的样本点。

它们还有一个特点这里必须提到:支持向量直接决定了决策边界的位置,并且只有这些点对最终模型有直接影响;改变其他非支持向量的样本位置不会改变最优决策边界。

(2)两个类别之间的边界距离怎么确定?

这里的"边界距离"通常指的是支持向量到决策边界(超平面)的距离,也称为间隔。

在SVM中,决策边界是通过最大化两类之间的间隔来确定的。这个间隔是支持向量(即最接近决策边界的数据点)到决策边界的距离的两倍。

(3)SVM的目的是什么?

对于线性可分的数据集,SVM的目标是在二维空间中找到一条直线,使得这个直线不仅能够将不同类别的样本分开,而且两类样本距离该直线的距离(即间隔)最大。
图3

三、什么是软间隔SVM?

(1)硬间隔SVM与软间隔SVM

有软间隔SVM,那你肯定会问有没有硬间隔SVM?当然有!实际上如果你不强调软间隔SVM的话,默认就是在说硬间隔SVM。硬间隔是说,决策边界必须将所有的样本都分开!有着很强硬的一个间隔!我要把每一个都分开!实际上这是一种理想情况,对应的是线性可分样本空间,例如上面图2的情况。
图4

所谓软间隔SVM,就是容忍误差的存在,允许一些正类样本点跑到负类中去。但"容忍"意味着有个限度,这个容忍限度就叫做松弛变量(或称为惩罚变量)。

这样做有一些好处,比如在**硬间隔SVM中,模型要求所有训练样本都能够被超平面正确且最大化地分开,即所有的样本都必须位于决策边界的同侧,并且离边界有一定的最小距离。**然而,在现实世界的应用场景中,数据往往不是完全线性可分的,强行寻找一个能够将所有样本严格分开的超平面可能会导致过拟合问题,即模型对训练数据表现得过于完美而丧失了泛化能力。所以软间隔SVM可以:

  1. 处理非线性可分的数据
  2. 提高模型的泛化能力

(2)软间隔SVM是怎么做到惩罚的呢?

软间隔SVM引入了一个松弛变量,允许某些样本点可以跨越决策边界而不严格满足分类条件,同时通过引入惩罚项来控制这种"违规"的程度。这个惩罚项通常体现在目标函数中,通过一个参数C(惩罚系数)来控制模型对误分类样本的容忍度和对间隔大小的重视程度

四、什么是内核函数?

之前在讲硬间隔的时候说到了,现实世界的数据往往不是完全线性可分的,那么对于无法线性分离的情况,除了软间隔SVM还有什么别的方法吗?有的!

现在我们把小卖部二分类的例子,做一点点改变,如果人们的位置用经度和维度来表示,例如下面这样的样本空间:

如果只有经度和维度两个特征量来标注样本的话,那么这个训练集就是一个非线性的,但是假设我们再加上一个海拔特征量,也许就可以将样本区分开!像是这样:

常用的核函数包括线性核、多项式核、高斯核(径向基函数核,RBF)和Sigmoid核等。这些核函数具有不同的特性和适用场景。例如,线性核主要用于线性可分的数据集,而多项式核和高斯核则可以处理非线性可分的数据集。Sigmoid核在某些情况下也与神经网络有关。 具体这个核函数长什么样子?怎么用?就不在这篇文章里阐述了。后续有机会单独写文章为大家介绍。

五、什么是核技巧?

核技巧(Kernel Trick)是支持向量机(SVM)中的一项重要技术。它允许在解决非线性分类或回归问题时,将低维空间中的数据通过某种映射函数 \(\phi\) 映射到高维特征空间,在这个新空间中原本不可分的数据可能变得线性可分。

然而,直接计算高维空间中的内积或距离运算往往非常复杂或者计算成本高昂,尤其是当映射后的维度非常高时。核技巧的关键在于,它不是直接进行这种高维映射,而是通过定义一个核函数,使得在原始低维空间中可以直接计算两个样本在高维特征空间上的内积

利用核函数,可以在不显式地执行高维映射的情况下求解优化问题,从而大大简化了算法的实现,并且保持了良好的计算效率和泛化能力。在支持向量机中,核技巧被广泛应用于训练阶段,特别是在构建最大化间隔超平面时,以及在预测阶段评估新样本类别时。

相关推荐
sp_fyf_20242 分钟前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-05
人工智能·深度学习·神经网络·算法·机器学习·语言模型·自然语言处理
EterNity_TiMe_2 分钟前
【机器学习】智驭未来:探索机器学习在食品生产中的革新之路
人工智能·python·机器学习·性能优化·学习方法
C++忠实粉丝1 小时前
前缀和(6)_和可被k整除的子数组_蓝桥杯
算法
木向1 小时前
leetcode42:接雨水
开发语言·c++·算法·leetcode
TU^1 小时前
C语言习题~day16
c语言·前端·算法
吃什么芹菜卷1 小时前
深度学习:词嵌入embedding和Word2Vec
人工智能·算法·机器学习
wclass-zhengge1 小时前
数据结构与算法篇(树 - 常见术语)
数据结构·算法
labuladuo5201 小时前
AtCoder Beginner Contest 372 F题(dp)
c++·算法·动态规划
夜雨翦春韭1 小时前
【代码随想录Day31】贪心算法Part05
java·数据结构·算法·leetcode·贪心算法
萱仔学习自我记录3 小时前
PEFT库和transformers库在NLP大模型中的使用和常用方法详解
人工智能·机器学习