SVM通俗详解

突然发现这篇文章阅读量这么高,2022-05-30更:
机器学习-常用回归算法归纳(里面有比这个更清楚的SVM讲解)
https://blog.csdn.net/qq_42363032/article/details/121019360

SVM,英文全称为 Support Vector Machine,中文名为支持向量机,由数学家Vapnik等人早在1963年提出。在深度学习兴起之前,SVM一度风光无限,是机器学习近几十年来最为经典的,也是最受欢迎的分类方法之一。

1 SVM与“三八线”

不少人在初识SVM时会感觉到高深难懂。现在,就从你我熟知的“三八线”来走进SVM的思想内涵。

回忆下小时候,同桌同学经常会用粉笔或是小刀在课桌中间划一条“三八线”将课桌一分为二。大家约定好每个人只能在自己的那半课桌领域活动,谁也不能越界,越界是小猪、小狗。
在这里插入图片描述
同桌“三八线”

这样的“三八线”就可以看作二维空间中SVM的形象解释,它传递出了以下几点重要的信息:

1.是一条直线(线性函数);

2.能将桌面分为两个部分,分别属于你和我(具有分类功能,是一种二值分类);

3.位于课桌正中间,不偏向任何一方(注重公平原则,才能保证双方利益最大化)。

以上三点也正是SVM分类器的中心思想所在。

这是因为:SVM本质模型是特征空间中最大化间隔的线性分类器,是一种二分类模型。

首先,线性分类器指的就是线性函数;其次,最大化间隔离不开公平原则;再者,其解决的是二值分类问题(分两类);而特征空间则表明了其学习分类的对象是样本的特征数据。接下来,我们将会一一了解到这些SVM的本质精髓。

2为何叫支持向量机?

通过回忆“三八线”的故事,我们已经清楚了SVM的几个中心思想。下面我们再来了解支持向量机这一名称的渊源。

之所以叫支持向量机,因为其核心理念是:支持向量样本会对识别的问题起关键性作用。那什么是支持向量(Support vector)呢?支持向量也就是离分类超平面(Hyper plane)最近的样本点。

如下图所示,有两类样本数据(橙色和蓝色的小圆点),中间的红线是分类超平面,两条虚线上的点(橙色圆点3个和蓝色圆点2个)是距离超平面最近的点,这些点即为支持向量。简单地说,作为支持向量的样本点非常非常重要,以至于其他的样本点可以视而不见。而这个分类超平面正是SVM分类器,通过这个分类超平面实现对样本数据一分为二。
在这里插入图片描述
支持向量与分类超平面示例

3 什么是线性分类器?

SVM是一种线性分类器,分类的对象要求是线性可分。因此我们首先要了解什么是线性可分与线性不可分。

假如在课桌“三八线”的两旁分别放了一堆苹果和一堆荔枝,通过“三八线”这样一条直线就能把苹果和荔枝这两种类别的水果分开了(如左下图),这种情况就是线性可分的。但是如果苹果和荔枝的放置位置是苹果包围荔枝的局面(如右下图),就无法通过一条直线将它们分开(即这样的直线是不存在的),这种情况则是线性不可分的情形。当然,这里举例的对象是苹果、荔枝等具体实物。在机器学习上,学习分类的对象则转化为一系列的样本特征数据(比如苹果、荔枝的相关特征数据,形状、颜色等)。
在这里插入图片描述
因此,只有当样本数据是线性可分的,才能找到一条线性分割线或分割面等,SVM分类才能成立。假如样本特征数据是线性不可分的,则这样的线性分割线或分割面是根本不存在的,SVM分类也就无法实现。

在二维的平面课桌上,一条直线就足以将桌面一分为二。但如果扩展到三维空间中,则需要一个平面(比如一面墙、一扇屏风等)才能将立体空间区域一分为二。而对于高维空间(我们无法用图画出),能将其一分为二的则称为超平面。

因此,对于不同维度空间,SVM的形式特点也不同,具体表现如下:
在这里插入图片描述
课桌是一个水平面,属于二维空间,因此,中间的“三八线”就可以简单看做SVM的一种形象解释。如果沿“三八线”的竖直方向放置一块挡板,那这块挡板就可形象看作三维空间的SVM。而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。

我们已经清楚SVM是一种线性分类器,无论是二维空间的直线,还是三维空间的平面,以及多维空间的超平面,它们的数学表现形式都有着相同的特性,那就是都属于线性函数。线性函数的特点是计算简单,易于求解。

对于我们熟悉的二维空间(平面坐标),直线的函数表达式为:

y=ax+b

如下图所示,我们只要通过平面上两个坐标点A、B的数值代入上述方程,即可求出系数a,b。从而得到直线方程的表达式。
在这里插入图片描述
直线方程示意图

在高维空间中,超平面的函数表达式为:
在这里插入图片描述
上述方程式中,求出W、b,就得到了超平面的函数方程式。机器学习训练过程就是要求出最合适的W、b,亦即找到了最合适的分类超平面。

4.致力间隔最大化

如何找到最合适的分类超平面?依据的原则就是间隔最大化。

所谓间隔最大化,说的是分类超平面跟两类数据的间隔要尽可能大(即远离两边数据),这就要提到我们前面说到的公平原则。“三八线”要划在课桌正中间,不偏向任何一方,才能保证双方利益最大化。对于分类超平面来说,也就是要位于两类数据的正中间,不偏向任何一类,才能保证离两边数据都尽可能远,从而实现间隔最大化。

如左下图所示,有两类样本数据(分别用橙色和蓝色的小圆圈表示),我们可通过红色或蓝色两条直线(L1或L2)将这两类样本数据分开。事实上,我们还可以画出很多条直线将两类样本分开,也就是说,存在有多个可行的线性分类器能将两类样本分类。SVM的最终目标是:以间隔最大化为原则找到最合适的那个分类器。

在这里插入图片描述
从直观上看,图中蓝线L2偏向了橙色数据一方,有失公平原则,因而不是我们要找的理想的分类器。红线L1则较注重公平,不偏向任何一类数据,从而能较好地确保离两类数据都尽可能远,实现间隔最大化,这样的分类超平面具有更好的泛化性能,分类更加准确,正是我们要找的最合适的分类器。

我们注意到,图中两条虚线(S1和S2)上的圆点数据即为支持向量(Support vector),它们距离分类超平面最近。现在我们仅保留这些支持向量数据点进行分析(右上图),可以看出两条虚线之间的间隔距离为r。依据公平原则,支持向量到分类超平面的距离则为r/2,这个值即为分类间隔。间隔最大化,就是最大化这个值(r/2)。

由此可以看出,分类间隔值(r/2)只与支持向量数据点有关,与其他非支持向量数据点无关。这也正好诠释了我们在文中开头说到的:SVM的核心理念是支持向量样本会对识别的问题起关键性作用。也就是说,分类超平面的确定仅取决于支持向量。

对于给定的训练样本,首先要找到距离分类超平面最近的点(支持向量),再通过最大化这些点之间的间隔来求解。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如何处理线性不可分?
在前面苹果和荔枝的例子当中,我们已经了解到 SVM 要求样本数据是线性可分的,这样才会存在分类超平面。而如果样本数据是非线性的情况,那将如何处理呢?SVM的解决办法就是先将数据变成线性可分的,再构造出最优分类超平面。

SVM 通过选择一个核函数 K ,将低维非线性数据映射到高维空间中。原始空间中的非线性数据经过核函数映射转换后,在高维空间中变成线性可分的数据,从而可以构造出最优分类超平面。

如下图所示:原始样本数据在二维空间里无法线性分割,经过核函数映射到三维空间中则可构造出分类超平面进行二类划分。
在这里插入图片描述
核函数映射示例
接下来,我们来关注什么是核函数(Kernel Function)。

简单地说,核函数是计算两个向量在隐式映射后空间中的内积的函数。核函数通过先对特征向量做内积,然后用函数 K 进行变换,这有利于避开直接在高维空间中计算,大大简化问题求解。并且这等价于先对向量做核映射然后再做内积。

在实际应用中,通常会根据问题和数据的不同,选择不同的核函数。例如,常用的有以下几种:
在这里插入图片描述
线性核函数,就是简单原始空间中的内积。

多项式核函数,可根据R和d的取值不同,而有不同的计算式。

高斯核函数,可根据实际需要灵活选取参数σ,甚至还可以将原始维度空间映射到无穷维度空间。不过,如果σ取值很大,会导致高次特征上的权重衰减快;如果σ取值很小,其好处是可以将任意的数据映射成为线性可分,但容易造成过拟合现象。

高斯核函数是非常经典,也是使用最广泛的核函数之一。下图是把低维线性不可分的数据通过高斯核函数映射到了高维空间的示例图:
在这里插入图片描述
至此,我们已经知道核函数不使用显式的计算核映射,并且能够很好地解决线性不可分问题。在实际应用中,如果训练样本数量大,经训练后得出的模型中支持向量的数量会有很多,利用该模型进行新样本预测时,需要先计算新样本与每个支持向量的内积,然后做函数 K转换,耗时长、速度慢。

在这里插入图片描述

突然发现这篇文章阅读量这么高,2022-05-30更:
机器学习-常用回归算法归纳(里面有比这个更清楚的SVM讲解)
https://blog.csdn.net/qq_42363032/article/details/121019360

参考https://baijiahao.baidu.com/s?id=1639719949469452687&wfr=spider&for=pc

  • 259
    点赞
  • 907
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,常用于分类和回归问题。其原理相对来说较为复杂,但可以通过以下通俗易懂的方式进行解释: SVM的基本思想是找到一个最佳的超平面将不同类别的数据完全分开。换句话说,我们要找到一个决策边界,使得属于某一类的样本点都在一个侧面,而属于另一类的样本点则在另一侧面。 为了找到这个最佳的超平面,SVM引入了支持向量的概念。支持向量是离决策边界最近的那些样本点,它们对于决策边界的确定起到关键作用。这些支持向量点到决策边界的距离被称为间隔,我们的目标是找到最大化间隔的决策边界。 但是,在实际问题中,数据往往无法完全线性分开。为解决这个问题,SVM引入了核函数的概念。核函数将数据从原始空间映射到更高维的特征空间,在特征空间中,原本线性不可分的问题可能变得线性可分。 基于核函数的SVM即通过在特征空间中寻找最佳的超平面来解决非线性问题。通过设置不同的核函数,我们可以将数据映射到不同的特征空间,并得到不同的决策边界。 SVM的训练过程可以通过求解一个凸优化问题来实现。优化问题的目标是最大化间隔,同时要求决策边界的分类结果尽量准确。通过使用相关的数学方法,可以求解出最优的超平面以及对应的支持向量。 总之,SVM是一种通过找到最佳的超平面来实现分类的机器学习算法。它的原理简单概括为找到一条决策边界,使得离这条边界最近的样本点都被正确分类,并且间隔最大化。通过引入核函数,SVM也可以解决非线性分类问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WGS.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值