这篇文章主要介绍什么?

本文的重点是展示我们选择最佳超平面的理由。
摘要:

  • 我们如何找到最优的超平面?
  • 我们如何计算两个超平面之间的距离?
  • SVM优化问题是什么?

    如何找到最优超平面

    在上篇文章中,我们计算了一个点和一个超平面之间的距离最佳超平面 - 图1,然后我们计算出间隔为最佳超平面 - 图2。但是,即使在分离数据方面做得很好,它也不是最佳的超平面。
    image.png
    正如我们在第一篇文章中讨论的那样,最佳超平面是使训练数据的间隔最大化的一种。在上图中,我们可以看到边距中有两条蓝线分割的,并不是将数据完美分开的最大余量。最大的间隔 是如下图所示
    image.png
    这个超平面位于最初超平面的左侧,我们是怎么找到它的?我只是在两个超平面之间画了一个线段M这个时候我们应该感觉到超平面和边距紧密相关。你是对的!
    如果我有一个超平面,我可以计算出相对于某个数据点的间隔。如果我有一个由两个超平面界定的边距(图中的两条深蓝色线条),则可以找到第三个超平面在该边距的中间穿过。
    找到最大的间隔和找到最优的超平面是一回事

    我们如何找到最大的间隔

    这很简单
  1. 准备一个数据集
  2. 选择两个将数据分开的超平面,他们之间没有点
  3. 最大化他们的边距

由两个超平面界定的区域将是最大可能的边界。如果这么简单,为什么每个人都对SVM感到如此痛苦?这是因为与往常一样,简单性需要一些抽象和数学术语才能很好地理解。因此,我们现在要逐步地介绍下这份“食谱”:

Step1:有一个需要分类的数据集D

大多数情况下,数据是n维向量数据最佳超平面 - 图5。每一个数据都最佳超平面 - 图6都对应一个值最佳超平面 - 图7。但是大部分情况下:例如做文本分类的情况下,向量最佳超平面 - 图8最终有很多维度,如果它有P维时,我们称最佳超平面 - 图9时一个P维向量。
所以数据集D 是一个n组元素最佳超平面 - 图10的数据。更加通用的定义为:
最佳超平面 - 图11

Step2:选择两个分割数据的超平面,他们之间没有点

当有铅笔和纸时,找到两个分割数据的超平面很容易,但是P维大小的数据分割就很难,因为我们没有办法把它画出来。
而且,即使数据只是二维的,我们也可能找不到单独的超平面。
而且只有我们的数据是线性可分的,我们才能找到这样的一个超平面。
image.png
左边是线性可分的,右边的数据是线性不可分的。我们假设我们的数据是线性可分得,现在我们想要找到两个超平面,这两个超平面之间没有点。但是我们却没有方法去把他们可视化。
我们对可以帮助我们的超平面了解多少呢?

再看一下超平面方程

之前我们看到,超平面的方程可以写成:
最佳超平面 - 图13

最佳超平面 - 图14时,这个时候为三维数据,我们将他写成二维形式。最佳超平面 - 图15,我们选择两个超平面最佳超平面 - 图16最佳超平面 - 图17可以分割数据并且满足这样的式子:最佳超平面 - 图18。因此得到最佳超平面 - 图19最佳超平面 - 图20平面距离是相等的。
其实,变量最佳超平面 - 图21并不是必要的,所以我们可以令最佳超平面 - 图22来简化问题,所以得到了
最佳超平面 - 图23
现在我们想要确定他们之间是没有点的。我们并不是随便地选取的超平面,我们是要选择满足以下条件的超平面。
对于每一个最佳超平面 - 图24最佳超平面 - 图25

理解下这个限制条件

在下面的这幅图中,所有的红色点是1这个类,所有的蓝色点是-1这个类。我们看下图中的A,它是红色的点,所以我们需要确认它与我们的限制条件最佳超平面 - 图26不冲突。
最佳超平面 - 图27时,我们看到这个点在超平面最佳超平面 - 图28上,这个条件就已经满足了。同样的情况,B也是满足的。当最佳超平面 - 图29时,我们看到这个点位于超平面上,所以满足最佳超平面 - 图30这个条件。同样的情况下,点D,E,F,G也满足了条件。
同样地,第二个限制条件也是被满足的。
image.png
同样的下面这个图中的超平面也是满足条件的。
image.png
来看一下不满足条件的几种情况:
image.pngimage.png
当限制条件不满足的时候意味着什么?它说明我们不能够选择这两个超平面,因为这两个超平面中间的都存在点。通过定义这些条件,我们就能够选择出中间没有点的超平面,这正面我们的需求。这种情况不仅仅适用于我们的例子中,而且也适用于p维条件下。

将两个式子联合起来

在 Mathematica中,人们总喜欢把事情能够简单地表示出来。上述的两个式子可以整合成一个式子。我们先来看第一个式子最佳超平面 - 图35。我们知道它所归属的类为最佳超平面 - 图36,所以我们在式子两边同乘以最佳超平面 - 图37,注意要变号。
最佳超平面 - 图38
同理可以得到最佳超平面 - 图39的条件。
最佳超平面 - 图40
所以这个式子就被整合成了一个式子
最佳超平面 - 图41

Step3:最大化两个超平面的距离

这个可能是问题中最难的一部分。但是不用担心,我们一步一步来解决这个问题。

a)两个超平面之间的距离是什么?

在我们想办法最大化两个超平面之间的距离的时候,我们首先要明白,我们怎么去计算这个距离?
首先:

  • 最佳超平面 - 图42这个超平面满足式子:最佳超平面 - 图43
  • 最佳超平面 - 图44这个超平面满足式子:最佳超平面 - 图45
  • 最佳超平面 - 图46是超平面最佳超平面 - 图47中的点

我们把点最佳超平面 - 图48到平面最佳超平面 - 图49之间的垂直距离称为m。事实上,这个m就是我们叫做的间隔(margin)。因为最佳超平面 - 图50在平面最佳超平面 - 图51上,所以这个最佳超平面 - 图52就是两个平面之间的距离。
我们现在要想办法求出这个距离
image.png
这个时候,你可能会想,如果我们在最佳超平面 - 图54的基础上加上了一个最佳超平面 - 图55的距离,我们可能会得到一个点,这个点并不在这个平面上,而是在其他平面上。
但是这个是行不通的。因为最佳超平面 - 图56是一个标量,最佳超平面 - 图57是一个向量,向量是不可能和标量相加的,所以我们要给最佳超平面 - 图58规定一个方向,这样两个向量就能完成加法运算。
我们发现从最佳超平面 - 图59开始的最佳超平面 - 图60段距离的所有方向,最后成为了一个圆形:
image.png
从上图中我们可以发现仅仅只有距离最佳超平面 - 图62是不够的,因为缺少了方向。我们不能直接用标量+向量,但是如果用标量×向量,我们就可以先把标量转换成一个向量。
从我们一开始的目标来看,我们想要的向量是:

  • 长度为最佳超平面 - 图63
  • 与超平面最佳超平面 - 图64是垂直的。

幸运的是,我们现在有一个现成的向量是垂直于最佳超平面 - 图65的,这个向量就是最佳超平面 - 图66,(因为最佳超平面 - 图67)是不是也可以理解为叉积的形式。
通过向量最佳超平面 - 图68我们可以定义最佳超平面 - 图69上的单位向量:
最佳超平面 - 图70
这个向量最佳超平面 - 图71的长度为1,方向与向量最佳超平面 - 图72的相同。
image.png
这个时候我们就得到了这个向量:最佳超平面 - 图74,我们令这个向量最佳超平面 - 图75
image.png
我们最终求出来了,我们找到了一个向量能够与向量最佳超平面 - 图77相加,这个向量就是我们的最佳超平面 - 图78向量,我们相加后的结果为向量最佳超平面 - 图79
image.png
由于z位于超平面最佳超平面 - 图81上,所以满足这个超平面方程:最佳超平面 - 图82
接下来继续推导:最佳超平面 - 图83
最佳超平面 - 图84
接下来我们逐推导:
最佳超平面 - 图85
因为我们的最佳超平面 - 图86最佳超平面 - 图87平面上,所以最佳超平面 - 图88,代入上述式子中,
最佳超平面 - 图89
经过上面一大堆的计算,我们最终算得了两个平面之间的距离最佳超平面 - 图90

b)如何最大化两个超平面之间的距离

我们刚才得出了间隔大小:最佳超平面 - 图91,我们想要最大化两个平面之间的距离,唯一能够改变的便是向量最佳超平面 - 图92的长度最佳超平面 - 图93。向量的长度越小,那么两个平面的间隔也就越大。

c)最大化超平面的间隔相当于最小化向量w的大小

由上面我们得到的条件:
最佳超平面 - 图94
解决我们的最佳超平面 - 图95的关键就是解决上面的方程。所以我们的思路就是,在满足上面的方程的情况下,寻找出最小的最佳超平面 - 图96。需要不断地迭代寻找。

结论

我们发现找到最佳超平面需要我们解决一个优化问题。优化问题本身有些棘手。您还需要更多背景信息才能解决这些问题。因此,我们将逐步进行。让我们在第4部分中发现无约束的最小化问题!谢谢阅读。