Processing math: 4%

大间距分类器背后的数学原理 (选学)

  • 大间距分类器的数学实现
  • 向量的内积
  • SVM的目标函数

向量内积

假设有两个向量,u和v,都是二维向量。uTv叫做向量u 和v之间的内积

将两个向量画在图上。

向量u在横轴上,取值为某个u1,而在纵轴上,高度是u2作为u的第二个分量。现在,很容易计算的一个量就是向量u的范数,即向量u的欧几里得长度。根据毕达哥拉斯定理, ,这是向量u的长度,它是一个实数。

计算u和v之间的内积的几何做法,我们将向量v做一个直角投影到向量u上,度量这条红线的长度p,因此 p 就是向量v投影到向量u上的量。因此可以将

另一种线性代数方法,u^Tv=u_1\times v_1+u_2\times v_2,会给出同样的结果。

顺便,有u^Tv=v^Tu

需要注意的就是p值是有符号的,即它可能是正值,也可能是负值。如下图,如果u 和v之间的夹角大于 90 度,则如果将v投影到u 上,会得到这样的一个投影,这是 p 的长度,在这个情形下我们仍然有

,唯一一点不同的是 p 在这里是负的。在内积计算中,如果u 和v之间的夹角小于 90 度,那么那条红线的长度 p 是正值。然而如果这个夹角大于 90 度,则 p 将会是负的。就是这个小线段的长度是负的。如果它们之间的夹角大于 90 度,两个向量之间的内积也是负的。

SVM的目标函数

这就是我们先前给出的支持向量机模型中的目标函数。接下来忽略掉截距,令\theta_0=0,这样更容易画示意图。假设特征数 n = 2,则仅有两个特征x_1,x_2。 此时,支持向量机的优化目标函数可以写作:

当然你可以将其写作\theta_0,\theta_1,\theta_2,但是,数学上不管你是否包含,其实并没有差别,因此在我们接下来的推导中去掉\theta_0不会有影响这意味着我们的目标函数是等于 \frac{1}{2}||theta||^2。因此支持向量机做的全部事情,就是极小化参数向量\theta范数的平方。

现在我们将要深入地理解\theta^Tx。给定参数向量\theta给定一个样本$x^{(i)}就类似于u和v。

使用我们之前的方法,我们计算的方式就是我将训练样本投影到参数向量\theta,然后我来看一看这个线段的长度,我将它画成红色。我将它称为 p^{(i)}用来表示这是第i个训练样本在参数向量\theta上的投影,\theta^Tx将会等于p乘以向量\theta的长度或范数。

这里表达的意思是:这个\theta^Tx^{(i)} \geq1或者\theta^Tx^{(i)} < -1的,约束是可以被p^{(i)} \cdot x \geq 1这个约束所代替的。我们的优化目标就变成了p^{(i)} \cdot x

需要提醒一点,我们之前曾讲过这个优化目标函数可以被写成等于

假设支持向量机会选择这个绿色决策边界。这不是一个非常好的选择,因为它的间距很小。这个决策界离训练样本的距离很近。我们来看一下为什么支持向量机不会选择它。

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

比如这个样本,我们假设它是我的第一个样本x^{(1)},如果我考察这个样本到参数\theta的投影,投影是这个短的红线段,就等于p^{(1)}。类似地,样本x^{(2)},它到\theta的投影在这里。投影是这个短的粉线段p^{(2)},它事实上是一个负值。

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

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

以上就是为什么支持向量机最终会找到大间距分类器的原因。因为它试图极大化这些p^{(i)}的范数,它们是训练样本到决策边界的距离。

最后一点,我们的推导自始至终使用了这个简化假设,就是参数 \theta_0=0。它能够让决策界通过原点。如果你令 \theta_0不是 0 的话,含义就是你希望决策界不通过原点。我将不会做全部的推导。实际上,支持向量机产生大间距分类器的结论,会被证明同样成立,证明方式是非常类似的,是我们刚刚做的证明的推广。