c++判断双击间隔_SVM最大间隔超平面学习笔记及对函数间隔设置为1的思考

69c700b87f3bf24675368103cbb7d83a.png

SVM(支持向量机)最初是一种解决二分类的有监督学习算法,其目的在于:在给定两类样本的数据集的前提下,寻找一个将两类样本分隔开的超平面(separating hyperplane),并且使得两类样本之间的边界间隔(margin)最大化。最终得到的超平面被称为决策边界(decision boundary)。

本文主要内容分为以下几点:

  • 介绍什么是超平面
  • 分隔超平面的定义
  • 最大间隔超平面的介绍
  • 为什么最小函数间隔设置为1

1 分隔超平面

首先给定一个样本集

,其中,
。样本集
由两类子样本集组成,我们可以将
分为正负样本集
,正负样本集中的样本分别用
来表示。本文开头说过,支持向量机是一种有监督学习算法,为了区分正负样本,我们会事先给样本进行数据标记,如用
进行标记,如对于正样本
,而负样本的标记
,当然可以选用其余的标记,不过采用这种标记方法有利于计算。

假设正负样本线性可分,这意味着,可以找到一个超平面

,使得正样本和负样本被其隔开。如下图所示:

3349d12b2ffb6506e26f001eddea044f.png
图1 二维空间中的线性可分

能够将正负样本分隔开的超平面,我们可以称之为分隔超平面(Seperating Hyperplane),它需要满足一些条件,这个我们在下面的内容继续介绍。首先先了解一下什么是超平面。

1.1 超平面

维空间中,超平面是一个
维的子空间,该子空间可将
维空间分隔成为两部分。在二维和三维空间中超平面的几何表示比较直观,例如二维空间是一个面,那么其超平面就是一维的直线,而在三维立体空间中,超平面是将立体分隔成两部分的二维平面。

从数学表示的层面上来看,实数域

维空间中的超平面定义如下:

可以用线性代数的知识将该表达式改写为向量内积的形式:

或者

其中

为超平面的法向量,
为偏置值(bias)。

超平面有以下几个性质:

性质1:法向量和偏置项以任意相同的倍数放缩,新表达式描述的仍然是原来的超平面。假设放缩比例为

,令
后得到的超平面表达式为
,显然,这个表达式表示的仍然是原来的超平面。举个浅显的例子,直线
与直线
是同一条直线,虽然他们的系数之比为2。

性质2:点

到超平面的距离为

性质3:超平面将

维空间划分为3部分,分为是:i)点
在超平面里
;ii)点
在超平面的“上方”
;iii)点
在超平面的“下方”
。可以通过图2加深理解。

a0031af5eea5fe4e9aabd945c849a0b1.png
图2 超平面将空间分为3部分

需要注意的是,“上方”和“下方”并不是方位上的超平面上下方,而是以超平面的法向量

的指向为准,
指向的方向称为“上方”,反之则为“下方”。

1.2 分隔超平面

SVM中,分隔超平面是一个能够将正负样本恰好隔开的超平面,并且使得正样本在分隔超平面“上方”,负样本在分隔超平面”下方“。这就意味着,分隔超平面

中的
需要满足以下条件:

其中

为正样本点,
为负样本点,而正负样本对应的标记值为
,所以这两个条件可以改写成下面两个式子:

其实,我们可以写成更一般的形式。对于线性可分的样本集,

,其中,
,分类正确的超平面
需要满足的条件为:
。令
,我们可以得到更加紧凑的表达:"分类正确"
。在SVM中,
被称为
样本点到超平面的函数间隔。在我看来,函数间隔是人为定义的,其中好处之一是,方便推导和文字叙述。

根据上面的内容,我们得出结论,对于给定的线性可分的样本集合,必然存在分隔超平面可以将正负样本分开,该分类正确的超平面需要满足的条件为:样本点到超平面的函数间隔大于零。

实际上,根据函数间隔大于零这个条件,我们可以求得无数个分隔超平面。对于人来说,我们肯定想要求得一个“最好的分隔超平面”,那评价是否最好的指标是什么呢?在SVM算法中,其评价指标为几何间隔,即点到面的距离,可以根据1.1中超平面的性质2进行计算。以图3为例,大多数人都会本能地认为图3(a)中的分类效果比图3(b)和(c)要更好,我们做出这个判断的思维步骤为:寻找与线最近的样本点→人眼感知最近的样本点与直线的几何间距→根据前面两步获得的信息判断分隔效果,间距最大的即为最好。SVM就是遵循了这样一种判别思想,并在该思想的基础上发展出相应的理论。

521443d5665260866a5c5ba0c640afb2.png
图3 选择最优的分隔超平面

在这里,可以很自然地引出SVM算法的计算目标之一:对于线性可分的样本集,在众多分隔面中,寻找出最优的那一个。最优的判定标准在于离分隔面最近的样本点与分隔面的几何间隔是否是最大的,最优的分隔面称为最大间隔分隔超平面。名字太长了,简短一点吧,最大间隔超平面(Large-margin Hyperplane)。在第2部分,对最大间隔超平面进行进一步描述。

2 最大间隔超平面

2.1 最大间隔超平面数学描述

首先将最大间隔超平面数学推导中的的数学定义名称、符号和表达式联系起来,具体如下:

线性可分的样本集 ——

,其中,

超平面 ——

函数间隔 ——

几何间隔 ——

根据第1部分的叙述,最大间隔超平面需要满足两个约束条件:(1)能够将正负样本正确分类,或者说样本点到超平面的函数间隔大于零;(2)离超平面最近的样本点与超平面的几何间隔最大。

第一个条件的数学表达式为

接着我们分析第二个条件。我们可以用式(5)所有样本点与超平面的最小几何间隔,因为我们的样本点

的数据是已知的,所以这个最小几何间隔是关于
的函数
,用
来表示,由于
无关,所以我们可以将其提出,放在最小化式子前面。接下来我们改变超平面的法向量方向和截距,即改变
,在这个改变的过程中,最小几何间隔可能发生变化也可能保持不变,(至于为什么会有不变的情况,看后面的讲解),我们需要的做的是,在最小几何间隔的所有变化值的集合中,寻找最大的那个值以及相应的
,这个过程可以用式(6)来表示。

结合这两个约束条件,我们可以得到求解最大间隔超平面的求解公式:

到了这里,最大间隔超平面的问题似乎已经解决了,毕竟已经得到了它的求解公式,但是,我们仔细看一下式(7),会发现事情远没有那么简单,

中还包含了
,这个
还可以从1到
取值,感觉求解太难了。

接下来,我们继续对式(7)进行简化。这个简化还需要从前面说的关于样本点与超平面最小几何间隔在

的变化过程中可能保持不变的内容讲起。

首先需要说的是,在最优化过程中,

的变化分为等比例变化和非等比例变化这两种。例如,我们将
表示原超平面的
表示变化后的超平面的
。变化前的超平面为
,变化后的超平面为

假设

分别为
变化的比例因子,那么
等比例变化意味着
,非等比例变化则有

当等比例变化时,变化后的超平面

,可以看到,变化后的超平面与变化前的超平面相同。以图4为例,图4三个表达式中的
虽然不同,但是对应成比例,所以表示的是同一条直线。实际上,如果我们将其中一个
等比例缩放的话,我们可以得到该直线的无数个表达式,拓展到超平面上,可以说某一确定的超平面对应无数个
如果我们不将这个缩放对超平面表达式的影响消除的话,那么就算用式(7)能够求解,解出的最优超平面也对应有无数个
,解不唯一

793aa4d7e26e59c2f022df5579cc1353.png
图4 和 等比例缩放不改变原超平面

若是我们要求某一固定的超平面,其对应的

是唯一的,那么就要需要添加限制条件。限制条件可以有很多种,选取其中一种即可。如向量
的模长为1,
,也就是说,你只能用模长为1的法向量
来表示超平面,这样就消除了等比例缩放的影响。但是,添加这样一个限制条件,虽然满足要求,但并不能对式(7)进行简化,所以我们需要换一种思路来添加限制条件。

SVM选用的限制条件为:

。这个式子将样本点和超平面联系起来,用以确定超平面的唯一表示参数

仔细思考一下这个限制条件是否合适。在所有的样本点都是已知的前提下,令最小的函数间隔等于1是否能够唯一确定超平面。可以从逻辑上思考这一点,当超平面固定,即

不会非等比例缩放,我们一定能找到,所有样本点中与超平面函数间隔最小的样本点,不妨将这个解记为
。在
的数据值和超平面固定的条件下,令
就相当于自适应缩放固定超平面的某一个
,以使得最终
代入
结果为1。

比如,图4中,我们必然可以找到距离超平面最近的点(实际上,这也是函数间隔最小的点),假设其坐标为

。接下来,任意找一个
,对其进行缩放来适应
的条件。我们可以选择等比例缩放图4中第二个式子的
,即
,使得
,假设倍数为
,那么
,所以
,这样可以求得
,于是我们可以得到满足条件的
。我们也可以放缩第三个式子的
来适应该限制条件,最终会得到同一个结果。
实际上,超平面固定时,在令最小函数间隔为1的条件下,只有唯一的
能够满足条件。

因此,限制条件

是可以消除等比例缩放对解的影响的,虽然我们不知道离超平面最近的那个样本点具体是哪一个。当超平面改变时,在该限制条件的作用下,同样会经历一个缩放的过程,使得其对应的
一定是唯一的。尽管前面介绍了那么多,到这里可能大家还是会感觉有点抽象。这些数学概念我们只能尽可能去理解,很难将其详细地描绘出来。这里顺便提一下,我们可以令
等于任意常数
作为限制条件,实际上效果与令其等于
是一样的,都是为了消除缩放的影响。

同时,需要注意的是**

等比例缩放并不改变几何间隔**,如
,其中
为比例因子,因此,当添加限制条件
时,根据前两段的内容,我们可以知道,这包含一个动态放缩以适应条件的过程,在这个放缩过程中,与超平面最近的点,其与超平面的距离(几何间隔)并不发生变化。所以当把
缩放1时,与超平面最近的点到超平面的距离为
。在满足
的条件下,其最小几何间隔就为
.

接下来我们来看看,添加这个限制条件对于式(7)的改进。首先最优化目标函数变为:

一下子简洁了好多。

然后约束条件也要变。条件

等价于
,将其与原条件
综合一下即为

于是我们得到求解最大间隔超平面的最终表达式:

最大间隔超平面最优化过程可以参见图5。在满足条件的前提下,改变

,超平面位置也会随之发生变化。这个时候,才是真正的迭代求最优解。

70456bcb9c87e29f8121e7eea34f962c.png
图5 最大间隔超平面最优化过程

以上代表对于最小函数间隔设置为1的个人见解,在语言和逻辑表达上可能有所欠缺,在这里分享一下自己的学习笔记和思考,希望对大家有所帮助。


参考资料

超平面介绍的部分内容来自于[1]中,等比例缩放的内容部分参考了[2]中@Nine的回答,题图来源于[3]中的链接。

[1​] SVM的数学原理详解

[2] 机器学习SVM中关于函数间隔为什么可以设置为1?

[3] SpaceX


12月13号更新, 针对评论中的问题给出一种感觉说不太清但是还是讲出来的比较混乱的回答, 我感觉这个东西在思维上真的很难说清楚, 只能通过很多个示例去验证说明. 由于知乎的公式体验太差了, 所以我在Typora码好公式, 导出图片发出来了.

a30ae8dc7d26df644dd99009935d5dfe.png

06067c9c61fcf5c50ed1ad5518299303.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值