原来这就是支持向量机

本文介绍了支持向量机(SVM)的基本思想和核心概念,包括最大间隔分类器、函数间隔和几何间隔。通过最大化间隔来找到最优超平面,SVM能够提供良好的泛化能力。优化问题是通过求解最大化几何间隔的约束问题,从而得到SVM模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!

在前面一系列的文章中,我们已经学习了多种分类算法模型,对于机器学习算是有了一定的了解。在接下来的几篇文章中,我们将开始逐步介绍《跟我一起机器学习》中的最后一个分类模型——支持向量机。**支持向量机(Support Vector Machine)**可以算得上是机器学习算法中最经典的模型之一。之所以称之为经典是因为其有着近乎完美的数学推导与证明,同时也正是因为这个原因,使得其求解过程有着很高的数学门槛。因此,对于接下来的内容,笔者也仅仅只会从支持向量机的建模过程出发,介绍支持向量机的主要思想以及它需要解决的问题。至于最后的求解过程,我们依旧通过现有的开源框架来实现。

1 引例

那什么是支持向量机呢?初学者刚接触到这个算法时基本上都会被这个名字所困扰,到底啥叫“向量机”,听起来总觉得怪怪的。因此首先需要明白的是,支持向量机其实和"机"一点关系也没有,算法的关键在于“支持向量”。并且支持向量机主要也是用于解决分类问题的一个算法模型,只是它相较于前面介绍的几种模型有着更好的泛化能力。

如图所示为四种模型对同一个数据集的分类后的决策边界,可以看到尽管每个模型都能准确地将数据集分成两类,但是从各自的决策边界来看却有着很大的区别。为了能清楚的进行观察,我们将四个决策边界放到一张图里面。

如图所示便为四个模型的决策边界放到一张图中的样子,可以发现模型c(灰色直线)的泛化能力应该会是最差的,因为从数据的分布位置来看真实的决策面应该是一条左高右低倾斜的直线。其次是模型c(蓝色直线)的泛化能力,因为模型c的决策面太过于的偏向于棕色的样本点;有一个原则就是:当没有明确的先验知识告诉我们决策面应该偏向于哪边时,最好的做法应该是居于中间的位置(类似于模型a和模型d的决策面)。那么模型a和模型d谁又更胜一筹呢?

从图中一眼便可以看出,模型d的决策面更居于“中间”(事实上就是在中间),而模型a的决策面也略微的偏向于棕色样本点。因此在这四个模型中,模型d的泛化能力通常情况下都会是最强的。那有的朋友可能就会问,假如我们把模型a中的决策面向上移动一点,使得其也居于两条虚线之间,那么此时应该选择谁呢?答案当然依旧是d,原因在于模型d的决策面还满足另外一个条件:到两条虚线的距离最大。换句话说也就是,模型d中两条虚线之间的距离要大于模型a中两条虚线之间的距离。说到这里,相信大家已经明白了,其实模型d对应的就是支持向量机模型,而虚线上的两个点称为支持向量。可以发现其实对决策面其决定性作用的也只有这两个样本点,说白了就是通过这两个点就能训练得到模型d。

说到这里可以得出的结论就是,通过支持向量机我们便能够得到一个最优超平面,该超平面满足到左右两侧最近样本点的间隔相同,且离最近样本点的间隔最大。那我们又该如何来找到这个超平面呢?

2 间隔的度量方式

2.1 超平面的表达

在谈距离之前,我们先把超平面的表达式给写出来:

w T x + b = 0 (1) w^Tx+b=0\tag{1} wTx+b=0(1)
其中 b b b表示截距;另一个需要说明的就是,我们在SVM中,用 y = + 1 , y = − 1 y=+1,y=-1 y=+1,y=1分别来表示正样本和负样本。从表达式我们可以知道,当通过某种方法找到参数 w , b w,b w,b后,也就代表确立了超平面。那么应该从哪个地方入手呢? 当然就是从SVM的核心思想:最大化间隔(gap) 入手。

2.2 函数间隔(functional margin)

上面说到SVM的核心思想就是最大化间隔,既然是最大化间隔那总得有个度量间隔的量才行。我们知道,当超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0确定后, ∣ w T x + b ∣ |w^Tx+b| wTx+b可以相对的来表示每个样本点到超平面的距离,也就是说虽然实际距离不是 ∣ w T x + b ∣ |w^Tx+b| wTx+b这么多,但是依旧遵循绝对值大的离超平面更远的原则。如下图所示:

其中直线方程为: x 1 + x 2 − 3 = 0 x_1+x_2-3=0 x1+x23=0,且 A , B A,B A,B分别为正负两个样本点,即 y A = + 1 , y B = − 1 y^A=+1,y^B=-1 yA=+1,yB=1,则此时有:

A A A到直线的相对距离为 ∣ w T x + b ∣ = ∣ 2 + 3 − 3 ∣ = 2 |w^Tx+b|=|2+3-3|=2 wTx+b=2+33=2,点 B B B到直线的相对距离为 ∣ w T x + b ∣ = ∣ 1 + 1 − 3 ∣ = 1 |w^Tx+b|=|1+1-3|=1 wTx+b=1+13=1

同时我们可以注意到,只要分类正确, y ( i ) ( w T x + b ) > 0 y^{(i)}(w^Tx+b)>0 y(i)(wTx+b)>0就成立;或者说如果 y ( i ) ( w T x + b ) > 0 y^{(i)}(w^Tx+b)>0 y(i)(wTx+b)>0成立,就意味着分类正确,且其值越大说明其分类正确的可信度就越高,而这也是 y y y为什么取 ± 1 \pm1 ±1的原因。所以此时我们将训练集中所有样本点到超平面的函数间隔定义为如下:
γ ^ ( i ) = y ( i ) ( w T x ( i ) + b ) (2) \hat{\gamma}^{(i)}=y^{(i)}(w^Tx^{(i)}+b)\tag {2} γ^(i)=y(i)(wTx(i)+b)(2)
且定义训练集到超平面的函数间隔中的最小值为:
γ ^ = min ⁡ i = 1 , 2... m γ ^ ( i ) (3) \hat{\gamma}=\min_{i=1,2...m}\hat{\gamma}^{(i)}\tag{3} γ^=i=1,2...mminγ^(i)(3)
但是我们发现,如果同时在方程 ( 1 ) (1) (1)的两边乘以 k ( k ≠ 0 ) k(k\neq0) k(k=0);虽然此时超平并没有发生改变,但是相对距离却变成了之前的 K K K倍,所以仅有函数间隔明显是不够的,还要引入另外一种度量方式——几何间隔。

2.3 几何间隔

如下图所示,所谓几何间隔(geometric margins),就是样本点到直线实实在在的距离。只要直线不发生改变,那么间隔就不会发生任何改变,这样就避免了在函数间隔中所存在的问题。那么应该如何来表示几何间隔呢?

如图所示,直线方程为 w T x + b = 0 w^Tx+b=0 wTx+b=0 A A A为数据集中任意一个点

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值