假设我有两个向量,?和?,我将它们写在这里。两个都是二维向量,我们看一下,?? ?的结果。?? ?也叫做向量?和?之间的内积。由于是二维向量,我可以将它们画在这个图上。
我们说,这就是向量?即在横轴上,取值为某个?1,而在纵轴上,高度是某个?2作为?的第二个分量。现在,很容易计算的一个量
就是向量?的范数。∥?∥表示?的范数,即?的长度,即向量?的欧几里得长度。根据毕达哥拉
斯定理, 这是向量?的长度,它是一个实数。
现在让我们回头来看向量? ,因为我们想计算内积。?是另一个向量,它的两个分量?1
和?2是已知的。向量?可以画在这里,现在让我们来看看如何计算?和?之间的内积。这就是
具体做法,我们将向量?投影到向量?上,我们做一个直角投影,或者说一个90 度投影将其
投影到?上,接下来我度量这条红线的长度。我称这条红线的长度为?,因此?就是长度,或
者说是向量?投影到向量?上的量,我将它写下来,?是?投影到向量?上的长度,因此可以将
或者说?的长度。这是计算内积的一种方法。如果你从几何上画出p 的值,同
时画出?的范数,你也会同样地计算出内积,答案是一样的。另一个计算公式是:?? ?就是
[?1 ?2] 这个一行两列的矩阵乘以?。因此可以得到?1 × ?1 + ?2 × ?2。根据线性代数的知识,
这两个公式会给出同样的结果。顺便说一句,?? ? = ???。因此如果你将?和?交换位置,将
?投影到?上,而不是将?投影到?上,然后做同样地计算,只是把?和?的位置交换一下,你
事实上可以得到同样的结果。申明一点,在这个等式中?的范数是一个实数,?也是一个实
数,因此?? ?就是两个实数正常相乘。
最后一点,需要注意的就是?值,?事实上是有符号的,即它可能是正值,也可能是负值。
我的意思是说,如果?是一个类似这样的向量,?是一个类似这样的向量,?和?之间的夹角
大于90 度,则如果将?投影到?上,会得到这样的一个投影,这是?的长度,在这个情形下
我们仍然有?? ?是等于?乘以?的范数。唯一一点不同的是?在这里是负的。在内积计算中,
如果?和?之间的夹角小于90 度,那么那条红线的长度?是正值。然而如果这个夹角大于90
度,则?将会是负的。就是这个小线段的长度是负的。如果它们之间的夹角大于90 度,两个
向量之间的内积也是负的。这就是关于向量内积的知识。我们接下来将会使用这些关于向量
内积的性质试图来理解支持向量机中的目标函数。
我接下来忽略掉截距,令?0 = 0,这样更容易画示意图。我将特征数?置为2,因此我们
仅有两个特征?1, ?2,现在我们来看一下目标函数,支持向量机的优化目标函数。当我们仅
有两个特征,即? = 2时,这个式子可以写作:
我们只有两个参数?1, ?2。你可能注意到括号里面的这一项是向量?的范数,或者说是向量?的长度。我的
意思是如果我们将向量?写出来,那么我刚刚画红线的这一项就是向量?的长度或范数。这
里我们用的是之前学过的向量范数的定义,事实上这就等于向量?的长度。
当然你可以将其写作?0, ?1, ?2,如果?0 = 0,那就是?1, ?2的长度。在这里我将忽略?0,
这样来写?的范数,它仅仅和?1, ?2有关。但是,数学上不管你是否包含,其实并没有差别,
因此在我们接下来的推导中去掉?0不会有影响这意味着我们的目标函数是等于
因此
支持向量机做的全部事情,就是极小化参数向量?范数的平方,或者说长度的平方。
现在我将要看看这些项:???更深入地理解它们的含义。给定参数向量?给定一个样本
?,这等于什么呢?在前一页幻灯片上,我们画出了在不同情形下,?? ?的示意图,我们将会
使用这些概念,?和?(?)就类似于?和? 。
让我们看一下示意图:我们考察一个单一的训练样本,我有一个正样本在这里,用一个
叉来表示这个样本?(?),意思是在水平轴上取值为?1(?),在竖直轴上取值为?2(?)。这就是我画出的训练样本。尽管我没有将其真的看做向量。
它事实上就是一个始于原点,终点位置在这个训练样本点的向量。现在,我们有一个参数向量我会将它也画成向量。我将?1画在横轴这里,将?2 画在纵轴这里,那么内积???(?) 将会是什么呢?
使用我们之前的方法,我们计算的方式就是我将训练样本投影到参数向量?,然后我来
看一看这个线段的长度,我将它画成红色。我将它称为?(?)用来表示这是第 ?个训练样本在
参数向量?上的投影。根据我们之前幻灯片的内容,我们知道的是???(?)将会等于? 乘以向
量 ? 的长度或范数。这就等于?1 ⋅ ?1(?) + ?2 ⋅ ?2(?)。这两种方式是等价的,都可以用来计算?和?(?)之间的内积。
这告诉了我们什么呢?这里表达的意思是:这个???(?) >= 1 或者???(?) < −1的,约束
是可以被?(?) ⋅ ∥?∥ >= 1这个约束所代替的。因为???(?) = ?(?) ⋅ ∥?∥ ,将其写入我们的优化目标。我们将会得到没有了约束,???(?)而变成了?(?) ⋅ ∥?∥。
需要提醒一点,我们之前曾讲过这个优化目标函数可以被写成等于。
现在让我们考虑下面这里的训练样本。现在,继续使用之前的简化,即?0 = 0,我们来
看一下支持向量机会选择什么样的决策界。这是一种选择,我们假设支持向量机会选择这个
决策边界。这不是一个非常好的选择,因为它的间距很小。这个决策界离训练样本的距离很
近。我们来看一下为什么支持向量机不会选择它。
对于这样选择的参数?,可以看到参数向量?事实上是和决策界是90 度正交的,因此这
个绿色的决策界对应着一个参数向量?这个方向,顺便提一句?0 = 0的简化仅仅意味着决策
界必须通过原点(0,0)。现在让我们看一下这对于优化目标函数意味着什么。
比如这个样本,我们假设它是我的第一个样本?(1),如果我考察这个样本到参数?的投
影,投影是这个短的红线段,就等于?(1),它非常短。类似地,这个样本如果它恰好是?(2),
我的第二个训练样本,则它到?的投影在这里。我将它画成粉色,这个短的粉色线段是?(2),
即第二个样本到我的参数向量?的投影。因此,这个投影非常短。?(2)事实上是一个负值,
?(2)是在相反的方向,这个向量和参数向量?的夹角大于90 度,?(2)的值小于0。
我们会发现这些?(?)将会是非常小的数,因此当我们考察优化目标函数的时候,对于正
样本而言,我们需要?(?) ⋅ ∥?∥ >= 1,但是如果 ?(?)在这里非常小,那就意味着我们需要?的范
数非常大.因为如果 ?(1) 很小,而我们希望?(1) ⋅ ∥?∥ >= 1 ,令其实现的唯一的办法就是这两
个数较大。如果 ?(1) 小,我们就希望?的范数大。类似地,对于负样本而言我们需要?(2) ⋅
∥?∥ <= −1。我们已经在这个样本中看到?(2)会是一个非常小的数,因此唯一的办法就是?的
范数变大。但是我们的目标函数是希望找到一个参数?,它的范数是小的。因此,这看起来
不像是一个好的参数向量?的选择。
相反的,来看一个不同的决策边界。比如说,支持向量机选择了这个决策界,现在状况
会有很大不同。如果这是决策界,这就是相对应的参数?的方向,因此,在这个决策界之下,
垂直线是决策界。使用线性代数的知识,可以说明,这个绿色的决策界有一个垂直于它的向
量?。现在如果你考察你的数据在横轴?上的投影,比如这个我之前提到的样本,我的样本
?(1),当我将它投影到横轴?上,或说投影到?上,就会得到这样?(1)。它的长度是?(1),另一
个样本,那个样本是?(2)。我做同样的投影,我会发现,?(2)的长度是负值。你会注意到现在
?(1) 和?(2)这些投影长度是长多了。如果我们仍然要满足这些约束,?(?) ⋅ ∥?∥>1,则因为?(1)
变大了,?的范数就可以变小了。因此这意味着通过选择右边的决策界,而不是左边的那个,
支持向量机可以使参数?的范数变小很多。因此,如果我们想令?的范数变小,从而令?范数
的平方变小,就能让支持向量机选择右边的决策界。这就是支持向量机如何能有效地产生大
间距分类的原因。
看这条绿线,这个绿色的决策界。我们希望正样本和负样本投影到?的值大。要做到这
一点的唯一方式就是选择这条绿线做决策界。这是大间距决策界来区分开正样本和负样本这
个间距的值。这个间距的值就是?(1), ?(2), ?(3)等等的值。通过让间距变大,即通过这些
?(1), ?(2), ?(3)等等的值,支持向量机最终可以找到一个较小的?范数。这正是支持向量机中
最小化目标函数的目的。
以上就是为什么支持向量机最终会找到大间距分类器的原因。因为它试图极大化这些
?(?)的范数,它们是训练样本到决策边界的距离。最后一点,我们的推导自始至终使用了这
个简化假设,就是参数?0 = 0。
就像我之前提到的。这个的作用是:?0 = 0的意思是我们让决策界通过原点。如果你令
?0不是0 的话,含义就是你希望决策界不通过原点。我将不会做全部的推导。实际上,支持
向量机产生大间距分类器的结论,会被证明同样成立,证明方式是非常类似的,是我们刚刚
做的证明的推广。
之前视频中说过,即便?0不等于0,支持向量机要做的事情都是优化这个目标函数对应
着?值非常大的情况,但是可以说明的是,即便?0不等于0,支持向量机仍然会找到正样本
和负样本之间的大间距分隔。