一文详解支持向量机(SVM)

©PaperWeekly 原创 · 作者|王东伟

单位|Cubiz

研究方向|深度学习

本文介绍支持向量机(Support Vector Machine,SVM)。

在上一篇文章关于逻辑回归的叙述中,我们提到了决策边界(decision boundary),它实际上是分割 n 维数据点的一个超平面(hyperplane),比如 n=2 时决策边界为直线,n=3 为平面,n=4 为三维“平面”(有三个维度的超平面)。一般来说,n 维空间的超平面有 n-1 个维度,并且可以把空间分割为两个部分。

严格上,“分割空间”是仿射空间超平面的性质,其他空间类型则未必,更多的细节请参阅 Hyperplane. Wikipedia。

SVM 算法的目标,是找到一个超平面分割不同类别的数据点,并且使得数据点与超平面的最小距离最大。听起来有些拗口,接下来我们以一个简单的例子说明,如图 1 所示,“x”表示正类样本,“o”表示负类样本。

显然,图 1.2 所示的决策边界具有更大的“间隔”(margin),通常具有更稳定的分类性能。粗略地说,大间隔分类器对于未知样本的分类准确率具有更大的均值和更小的方差,比如对于图 1.1 的决策边界,未知的正类样本很大概率会“越过”边界而被错误分类,而图 1.2 的 决策边界则给了未知样本“更大的容错空间”。

关于如何得到最大间隔的决策边界,本文后半部分有较严格的数学推导,不过现在先以“提出假设、设定误差函数、求极值点”的思路来理解 SVM 的原理。

对于上述二分类问题,SVM 算法的步骤如下:

  1. 假设:

  2. 误差函数:

  3. 极值点:

其中 C 为常数,暂时无需理会。注意到,SVM 直接给出样本的分类 y = 1 或者 y = -1,而逻辑回归是给出 y = 1 的概率。其中:

等价于:

这也正是我们使用 {1, -1} 表示正负类的原因,可以让 有更简洁的表达。

支持向量机的几何意义

接下来,我们将从几何的角度理解支持向量机。

▲ 图2

如图 2, 是分割正负类样本的直线。A 点为正类样本(即 ),坐标为 ,AB 为垂线段, 为 A 到直线的距离。不难证明向量 垂直于直线。由于 ,并且 (因为 为单位向量),得到点 B 的坐标:

点 B 位于直线上,即:

整理得到:

同理,对于负类样本可以得到:

进一步得到:

需要指出的是,以上推导基于样本是线性可分的情况(即存在一条线性边界可以完美区分两类数据点),其他情况稍后探讨。

回到误差函数。我们把它分成两部分:

观察 表达式,对于正类样本,如果我们希望 ,只需满足 ,即 ;对于负类样本同样可以得到 时,

注意到,对于任意一条以 100% 正确率分割正负类样本的直线 ,等比缩放 仍然得到同一条直线,意味着我们可以任意调节 ,使得对于任意样本都有 ,即 。因此,如果我们暂时忽略 ,仅仅让 取得极小值,我们可以得到无数条符合条件的决策边界。

▲ 图3

图 3 显示了其中三条满足 取极小值的决策边界。

现在同时让 取得极小值。注意到 ,即我们需要保持 的同时,让 尽可能小。因为 表示数据点到直线的距离,事实上我们只需关注距离直线最近的点,令

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值