三个角度看SVM(1)——最大间隔分类器

来源:互联网 发布:网络语555… 编辑:程序博客网 时间:2024/06/11 17:04

“横看成岭侧成峰,远近高低各不同。”

支持向量机(Support Vector Machine, SVM)作为一个被广泛应用的有监督机器学习算法,网络上对它的介绍数不胜数,其中更有不少好文佳作。本文与它们的区别在于:并不着重于“教程式”地对SVM进行系统性介绍,而是希望从三个不同的角度对这个算法进行探究。我相信经过这番“把玩”,看过你会跟我一样觉得:机器学习真的是好玩!


1、引言

最大化类间间隔分类器(maximum margin classifier),估计是最为直观,也是最为人们所熟悉的对于SVM的理解。我们不妨也先从这个角度切入,看看为什么SVM能给我们带来优良的泛化能力。这一部分的路线图如下:
路线图

2、线性可分和线性分类器

对于一个二分类问题,如果存在至少一个超平面能够将不同类别的样本分开,我们就说这些样本是线性可分的(linear separable)。所谓超平面,就是一个比原特征空间少一个维度的子空间,在二维情况下就是一条直线,在三维情况下就是一个平面。

线性分类器(linear classifier)是一类通过将样本特征进行线性组合来作出分类决策的算法,它的目标就是找到一个如上所述能够分割不同类别样本的超平面。这样在预测的时候,我们就可以根据样本位于超平面的哪一边来作出决策。

用数学语言来描述,一个线性函数可以简单表示为:f(x)=wTx+b,而线性分类器则根据线性函数的结果进行分类决策:

y=g(f(x))=g(wTx+b)
其中g()是一个将变量映射到不同类别的非线性函数,可以简单取为:
g(z)=1,1,if z0if z<0

即分类的结果由 f(x) 的符号决定,f(x)=wTx+b0即为分类超平面。

下图展示了几个线性可分/不可分的例子,并且画出了一个可能的分类超平面:
图片来源

3、最大化间隔

在样本线性可分的情况下,可行的分类超平面可能会有很多,如下图的L1L2L3
这里写图片描述

那么怎么选择一个最好的呢?从上图我们可以直观看出,L2比另外两条分界线要更好,这是因为L2离样本的距离更远一些,让人觉得确信度更高。这好比人(相当于样本)站在离悬崖边(分类边界)越远,人就会感到越安全(分类结果是安全还是危险)。从统计的角度讲,由于正负样本可以看作从两个不同的分布随机抽样而得,若分类边界与两个分布的距离越大,抽样出的样本落在分类边界另一边的概率就会越小。

SVM正是基于这种直观思路来确定最佳分类超平面的:通过选取能够最大化类间间隔的超平面,得到一个具有高确信度和泛化能力的分类器,即最大间隔分类器。

3.1、间隔

既然SVM的目标是最大化间隔,我们便要先对“间隔”进行定义。所谓间隔,就是分类超平面与所有样本距离的最小值,表示为:

γ=min{dist(l,xi) | i=1,2,...,N}
其中l表示分类超平面,N为样本个数,xi为第i个样本。接下来我们还需要定义样本到超平面的“距离” dist(l,x)

假设任意一个样本点x0,其在分类超平面上的投影记作x̂ 0。对于分类超平面wTx+b=0,我们知道他的法向量是w,法向量的方向可以由法向量除以其模长所得:ww。我们将dist(l,xi)记为dd0),则可以得到:

x0x̂ 0=dww
等式两边同时左乘wT并加上b,并且利用超平面上的点wTx̂ 0=0的性质,我们可以得到:
d=wTx+bw
y{1,1}为分类标签,由于y(wTx+b)=wTx+b,我们可以以此消去上式的绝对值。

综上所述,我们可以得到对于分类超平面lN个样本xi的“间隔”的表达式:

γ=min{yi(wTxi+b)w i=1,2,...,N}

3.2、最大化

有了上述定义的间隔,接下来的事情就很直接了——求解能使间隔最大化的参数wb,即求解以下优化函数:

maxw,b γ=min{yi(wTxi+b)w i=1,2,...,N}
y0(wTx0+b)w=γ,上述优化函数也可以写成如下等价的形式:
maxw,b y0(wTx0+b)w
s.t. yi(wTxi+b)y0(wTx0+b), i=1,2,...,N
其中第二行的约束条件是为了满足对“间隔”的定义。下面我们来做一些数学上的小变换,使形式更为简洁。

我们定义ŵ =w / y0(wTx0+b)b̂ =b / y0(wTx0+b),则目标函数可写成:1 / ŵ ,约束条件可写成:yi(wTxi+b)1, i=1,2,...,N。再用w替换ŵ ,并且利用maxw1 / wmaxw1 / w2等价的原理,可以得到以下下等价的优化问题:

maxw,b 1w2
s.t. yi(wTxi+b)1, i=1,2,...,N

4、松弛变量

以上我们都只关心一个目的:寻找能够最大化间隔的分类超平面。然而,由于样本点中异常点的存在,只考虑这一个因素往往无法得到一个最佳的分类器。我们来看下图的例子:
松弛变量

从上图可以看出:若我们严格遵守“间隔”的限制,由于蓝色异常点的存在,最终只能得到一个间隔很小的分类超平面。反之,如果我们能够放宽对于间隔的限制,便可以一定程度的忽略异常点的影响,反而能得到间隔更大的分类超平面。

上述容忍异常点的思路可以通过引入“松弛变量”(slack variable)实现。在原优化问题中,我们对“间隔”的限制表现在 yi(wTxi+b)1, i=1,2,...,N 当中。为了放宽对此的限制,我们对每个样本引入其对应的松弛变量 ζi (ζi0),则限制条件变为:

yi(wTxi+b)1ζi, i=1,2,...,N
从上式可以看出,若样本点xi不是异常点(满足 yi(wTxi+b)1),则其松弛变量ζi=0,与原限制一样。若样本点xi是异常点,只要ζi足够大,限制条件便能满足,分类超平面(由wb决定)不受影响。直观上讲,ζi等于将异常点“拉”回原间隔处所需要移动的距离,如下图所示:
松弛变量2

松弛变量的引入有助于增强模型对异常点的容忍能力,还能解决一定的数据线性不可分的问题。然而,如果不对松弛变量进行限制,得到的分类器又会变得没有用处(大量的错误分类)。因此,我们需要同时对两个目标进行优化:最大化间隔和容忍异常样本,并且引入一个平衡参数 CC0)来衡量这两个方面的重要程度。引入松弛变量后的完整优化问题如下:

maxw,b 1w2Ciζi
s.t. yi(wTxi+b)1ζi, i=1,2,...,N
ζi0

最后,我们再来分析一下平衡参数 C 对求得分类超平面的影响。

  • C 取无穷:ζi只能为零,代表无法容忍任何误判样本的出现,即严格遵守“间隔”的限制,得到没有引入松弛变量时的分类超平面
  • C取零:ζi可以任意大,即任何误判结果都可以被容忍,得到分类超平面没有意义
  • C较大:ζi不能很大,因此限制条件难以被忽略,会得到较为狭窄间隔的分类超平面
  • C较小:ζi影响较小,因此限制条件可以被忽略,会得到较为宽间隔的分类超平面

5、结语

作为最直观简单的角度,最大化间隔的思想不仅带我们一步步走向SVM背后的原理,更让我们理解到SVM具有的良好泛化能力的原因。虽然我们现在得到的SVM只能处理线性的情况,但我觉得从最大间隔分类器的角度去看,走到这一步已经足够了。SVM还蕴含着很多有趣的性质和优点,我们会在其他角度的探寻中一一发现。

Reference

1、本校AI课课件及参考资料:http://www.cs.rochester.edu/~jliu/CSC-242/svm.pdf, http://www.robots.ox.ac.uk/~az/lectures/ml/lect2.pdf
2、July博客:支持向量机通俗导论
3、PRML Chapter 7.

0 0