吴恩达机器学习笔记及作业代码实现中文版
第十章 支持向量机
大间隔分类器的数学原理
-
假设我有两个二维向量 和 , 也叫做向量 和 之间的内积。
- 向量 在横轴上取值为某个 ,而在纵轴上,高度是某个 作为 的第二个分量。
- 表示 的范数,即 的长度,即向量 的欧几里得长度。 ,这是向量 的长度,它是一个实数。
- 现在让我们回头来看向量 , 是另一个向量,它的两个分量 和 是已知的。
- 我们将向量
做一个直角投影到向量
上,接下来度量投影的长度
,或
者说是向量 投影到向量 上的量,因此可以将 。 - 另一个计算公式是: 就是 这个一行两列的矩阵乘以 。因此可以得到 。
- ,因此如果你将 和 交换位置,将 投影到 上,而不是将 投影到 上,然后做同样地计算,事实上可以得到同样的结果。
- 事实上是有符号的,即它可能是正值,也可能是负值。
- 在内积计算中,如果
和
之间的夹角小于 90 度,那么
是正值。然而如果这个夹角大于 90度,则
将会是负的,两个向量之间的内积也是负的。
-
支持向量机模型中的目标函数:
- 接下来忽略掉截距,令 ,这样更容易画示意图。我将特征数n置为2,因此我们仅有两个特征 ,当我们仅有两个特征时,这个式子可以写作: 。括号里面的这一项是向量 的范数,或者说是向量 的长度。
- 因此支持向量机做的全部事情,就是极小化参数向量
范数的平方,或者说长度的平方。
- 我们考察一个单一的训练样本,我有用一个叉来表示一个正样本
,意思是在水平轴上取值为
,在竖直轴上取值为
。
- 我们计算的方式就是将训练样本投影到参数向量 ,然后我来看一看这个线段的长度,我将它画成红色。我将它称为 用来表示这是第 个训练样本在参数向量 上的投影。
- 将会等于 乘以向量 的长度或范数,即 。
- 这里表达的意思是:
或者
的约束是可以被
这个约束所代替的。因为
,将其写入优化目标会得到没有了约束的
。
- 优化目标函数可以被写成 。
- 对于选择的参数 ,可以看到参数向量 事实上是和决策界是90度正交的, 的简化仅仅意味着决策界必须通过原点(0, 0)。
- 现在看一下这对于优化目标函数意味着什么:
- 比如第一个样本 ,这个样本到参数 的投影是短的红线段,就等于 ,它非常短。类似地,第二个训练样本 到 的投影是短的粉色线段 。这个投影非常短, 事实上是一个负值。
- 我们会发现这些 将会是非常小的数,因此当我们考察优化目标函数的时候,对于正样本而言,如果 在这里非常小,那就意味着我们需要 的范数非常大。类似地,对于负样本而言, 是一个非常小的数,因此唯一的办法就是 的范数变大。
- 但是我们的目标函数是希望找到一个参数
,它的范数是小的。因此,这看起来不像是一个好的参数向量
的选择。
- 因此这意味着通过选择右边的决策界,而不是左边的那个,支持向量机可以使参数 的范数变小很多。如果我们想令 的范数变小,从而令 范数的平方变小,就应该让支持向量机选择右边的决策界。这就是支持向量机如何能有效地产生大间距分类的原因。
- 我们希望正样本和负样本投影到 的值大。要做到这一点的唯一方式就是选择这条绿线做决策界。这是大间距决策界来区分开正样本和负样本这个间距的值。这个间距的值就是 等等的值。通过让间距变大,支持向量机最终可以找到一个较小的 范数。这正是支持向量机中最小化目标函数的目的。
- 以上就是为什么支持向量机最终会找到大间距分类器的原因。因为它试图极大化这些 的范数,它们是训练样本到决策边界的距离。
- 最后一点,我们的推导自始至终使用了一个简化假设,就是参数 。 的意思是我们让决策界通过原点。如果你令 的话,含义就是你希望决策界不通过原点。实际上,支持向量机产生大间距分类器的结论,会被证明同样成立,证明方式是非常类似的,是我们刚刚做的证明的推广。
-
即便 不等于0,支持向量机要做的事情都是优化这个目标函数对应着 值非常大的情况,支持向量机仍然会找到正样本和负样本之间的大间距分隔。