吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

  假设我有两个向量,????和????,我将它们写在这里。两个都是二维向量,我们看一下,???????? ????的结果。???????? ????也叫做向量????和????之间的内积。由于是二维向量,我可以将它们画在这个图上。

我们说,这就是向量????即在横轴上,取值为某个????1,而在纵轴上,高度是某个????2作为????的第二个分量。现在,很容易计算的一个量

就是向量????的范数。∥????∥表示????的范数,即????的长度,即向量????的欧几里得长度。根据毕达哥拉
斯定理,吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM) 这是向量????的长度,它是一个实数。

  现在让我们回头来看向量???? ,因为我们想计算内积。????是另一个向量,它的两个分量????1
和????2是已知的。向量????可以画在这里,现在让我们来看看如何计算????和????之间的内积。这就是
具体做法,我们将向量????投影到向量????上,我们做一个直角投影,或者说一个90 度投影将其
投影到????上,接下来我度量这条红线的长度。我称这条红线的长度为????,因此????就是长度,或
者说是向量????投影到向量????上的量,我将它写下来,????是????投影到向量????上的长度,因此可以将

吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)或者说????的长度。这是计算内积的一种方法。如果你从几何上画出p 的值,同

时画出????的范数,你也会同样地计算出内积,答案是一样的。另一个计算公式是:???????? ????就是
[????1 ????2] 这个一行两列的矩阵乘以????。因此可以得到????1 × ????1 + ????2 × ????2。根据线性代数的知识,
这两个公式会给出同样的结果。顺便说一句,???????? ???? = ????????????。因此如果你将????和????交换位置,将
????投影到????上,而不是将????投影到????上,然后做同样地计算,只是把????和????的位置交换一下,你
事实上可以得到同样的结果。申明一点,在这个等式中????的范数是一个实数,????也是一个实
数,因此???????? ????就是两个实数正常相乘。

吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

  最后一点,需要注意的就是????值,????事实上是有符号的,即它可能是正值,也可能是负值。
我的意思是说,如果????是一个类似这样的向量,????是一个类似这样的向量,????和????之间的夹角
大于90 度,则如果将????投影到????上,会得到这样的一个投影,这是????的长度,在这个情形下
我们仍然有???????? ????是等于????乘以????的范数。唯一一点不同的是????在这里是负的。在内积计算中,
如果????和????之间的夹角小于90 度,那么那条红线的长度????是正值。然而如果这个夹角大于90
度,则????将会是负的。就是这个小线段的长度是负的。如果它们之间的夹角大于90 度,两个
向量之间的内积也是负的。这就是关于向量内积的知识。我们接下来将会使用这些关于向量
内积的性质试图来理解支持向量机中的目标函数。

吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

我接下来忽略掉截距,令????0 = 0,这样更容易画示意图。我将特征数????置为2,因此我们
仅有两个特征????1, ????2,现在我们来看一下目标函数,支持向量机的优化目标函数。当我们仅
有两个特征,即???? = 2时,这个式子可以写作:

吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

  我们只有两个参数????1, ????2。你可能注意到括号里面的这一项是向量????的范数,或者说是向量????的长度。我的

意思是如果我们将向量????写出来,那么我刚刚画红线的这一项就是向量????的长度或范数。这
里我们用的是之前学过的向量范数的定义,事实上这就等于向量????的长度。

当然你可以将其写作????0, ????1, ????2,如果????0 = 0,那就是????1, ????2的长度。在这里我将忽略????0,
这样来写????的范数,它仅仅和????1, ????2有关。但是,数学上不管你是否包含,其实并没有差别,
因此在我们接下来的推导中去掉????0不会有影响这意味着我们的目标函数是等于吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

因此
支持向量机做的全部事情,就是极小化参数向量????范数的平方,或者说长度的平方。

现在我将要看看这些项:????????????更深入地理解它们的含义。给定参数向量????给定一个样本
????,这等于什么呢?在前一页幻灯片上,我们画出了在不同情形下,???????? ????的示意图,我们将会
使用这些概念,????和????(????)就类似于????和???? 。

吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

  让我们看一下示意图:我们考察一个单一的训练样本,我有一个正样本在这里,用一个
叉来表示这个样本????(????),意思是在水平轴上取值为????1(????),在竖直轴上取值为????2(????)。这就是我画出的训练样本。尽管我没有将其真的看做向量。

它事实上就是一个始于原点,终点位置在这个训练样本点的向量。现在,我们有一个参数向量我会将它也画成向量。我将????1画在横轴这里,将????2 画在纵轴这里,那么内积????????????(????) 将会是什么呢?

  使用我们之前的方法,我们计算的方式就是我将训练样本投影到参数向量????,然后我来
看一看这个线段的长度,我将它画成红色。我将它称为????(????)用来表示这是第 ????个训练样本在
参数向量????上的投影。根据我们之前幻灯片的内容,我们知道的是????????????(????)将会等于???? 乘以向
量 ???? 的长度或范数。这就等于????1 ⋅ ????1(????) + ????2 ⋅ ????2(????)。这两种方式是等价的,都可以用来计算????和????(????)之间的内积。

这告诉了我们什么呢?这里表达的意思是:这个????????????(????) >= 1 或者????????????(????) < −1的,约束
是可以被????(????) ⋅ ∥????∥ >= 1这个约束所代替的。因为????????????(????) = ????(????) ⋅ ∥????∥ ,将其写入我们的优化目标。我们将会得到没有了约束,????????????(????)而变成了????(????) ⋅ ∥????∥。

吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

需要提醒一点,我们之前曾讲过这个优化目标函数可以被写成等于吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

  现在让我们考虑下面这里的训练样本。现在,继续使用之前的简化,即????0 = 0,我们来
看一下支持向量机会选择什么样的决策界。这是一种选择,我们假设支持向量机会选择这个
决策边界。这不是一个非常好的选择,因为它的间距很小。这个决策界离训练样本的距离很
近。我们来看一下为什么支持向量机不会选择它。

  对于这样选择的参数????,可以看到参数向量????事实上是和决策界是90 度正交的,因此这
个绿色的决策界对应着一个参数向量????这个方向,顺便提一句????0 = 0的简化仅仅意味着决策
界必须通过原点(0,0)。现在让我们看一下这对于优化目标函数意味着什么。

吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

  比如这个样本,我们假设它是我的第一个样本????(1),如果我考察这个样本到参数????的投
影,投影是这个短的红线段,就等于????(1),它非常短。类似地,这个样本如果它恰好是????(2),
我的第二个训练样本,则它到????的投影在这里。我将它画成粉色,这个短的粉色线段是????(2),
即第二个样本到我的参数向量????的投影。因此,这个投影非常短。????(2)事实上是一个负值,
????(2)是在相反的方向,这个向量和参数向量????的夹角大于90 度,????(2)的值小于0。

  我们会发现这些????(????)将会是非常小的数,因此当我们考察优化目标函数的时候,对于正
样本而言,我们需要????(????) ⋅ ∥????∥ >= 1,但是如果 ????(????)在这里非常小,那就意味着我们需要????的范
数非常大.因为如果 ????(1) 很小,而我们希望????(1) ⋅ ∥????∥ >= 1 ,令其实现的唯一的办法就是这两
个数较大。如果 ????(1) 小,我们就希望????的范数大。类似地,对于负样本而言我们需要????(2) ⋅
∥????∥ <= −1。我们已经在这个样本中看到????(2)会是一个非常小的数,因此唯一的办法就是????的
范数变大。但是我们的目标函数是希望找到一个参数????,它的范数是小的。因此,这看起来
不像是一个好的参数向量????的选择。

吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

  相反的,来看一个不同的决策边界。比如说,支持向量机选择了这个决策界,现在状况
会有很大不同。如果这是决策界,这就是相对应的参数????的方向,因此,在这个决策界之下,
垂直线是决策界。使用线性代数的知识,可以说明,这个绿色的决策界有一个垂直于它的向
量????。现在如果你考察你的数据在横轴????上的投影,比如这个我之前提到的样本,我的样本
????(1),当我将它投影到横轴????上,或说投影到????上,就会得到这样????(1)。它的长度是????(1),另一
个样本,那个样本是????(2)。我做同样的投影,我会发现,????(2)的长度是负值。你会注意到现在
????(1) 和????(2)这些投影长度是长多了。如果我们仍然要满足这些约束,????(????) ⋅ ∥????∥>1,则因为????(1)
变大了,????的范数就可以变小了。因此这意味着通过选择右边的决策界,而不是左边的那个,
支持向量机可以使参数????的范数变小很多。因此,如果我们想令????的范数变小,从而令????范数
的平方变小,就能让支持向量机选择右边的决策界。这就是支持向量机如何能有效地产生大
间距分类的原因。

  看这条绿线,这个绿色的决策界。我们希望正样本和负样本投影到????的值大。要做到这
一点的唯一方式就是选择这条绿线做决策界。这是大间距决策界来区分开正样本和负样本这
个间距的值。这个间距的值就是????(1), ????(2), ????(3)等等的值。通过让间距变大,即通过这些
????(1), ????(2), ????(3)等等的值,支持向量机最终可以找到一个较小的????范数。这正是支持向量机中
最小化目标函数的目的。

  以上就是为什么支持向量机最终会找到大间距分类器的原因。因为它试图极大化这些
????(????)的范数,它们是训练样本到决策边界的距离。最后一点,我们的推导自始至终使用了这
个简化假设,就是参数????0 = 0。

吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)

  就像我之前提到的。这个的作用是:????0 = 0的意思是我们让决策界通过原点。如果你令
????0不是0 的话,含义就是你希望决策界不通过原点。我将不会做全部的推导。实际上,支持
向量机产生大间距分类器的结论,会被证明同样成立,证明方式是非常类似的,是我们刚刚
做的证明的推广。

  之前视频中说过,即便????0不等于0,支持向量机要做的事情都是优化这个目标函数对应
着????值非常大的情况,但是可以说明的是,即便????0不等于0,支持向量机仍然会找到正样本
和负样本之间的大间距分隔。