SVM支持向量机:Maximum Margin Classifier

1.理解

数据点用X表示,是一个n维的向量,类别为y,值为-1、1表示两个类别.

假设数据线性可分(在绝大部分时候数据并不是线性可分的,我们不能找到这样一个超平面,但目前我们先从最简单的情形讲起),线性分类器就是要在n维的数据空间中找到一个超平面,其方程可以表示为
wTX+b=0 w^TX+b=0
我们希望这个超平面能够将两类数据分割开来。令f(X)=wTX+bf(X)=w^TX+b,则如果f(X)=0f(X)=0XX位于超平面上,我们要求f(X)<0f(X)<0时对应y=1y=-1,f(X)>0f(X)>0时,对应y=1y=1.

对于如下图,我们的目标即找到合适的决策边界将数据进行分隔,我们可以有很多的选择,但是这些选择之间存在优劣的差别。

SVM支持向量机(一)
在进行预测的时候,我们计算f(X)f(X)的值,当其小于0的时候则类别为-1.当其结果大于0的时候则判定其类别为1,当f(X)=0f(X)=0的时候则很难办,分到哪类都不对。事实上,对于f(X)f(X)的绝对值很小的时候都很难处理,因为此时只要超平面有轻微的变动就会导致结果类别的变动,所以我们希望f(X)f(X)的绝对值都很大,这样我们就会更加确信它是属于哪一类别。相较与绿色和红色的决策边界,黑色的决策边界对于数据点具有更大的距离,f(X)f(X)的绝对值更大。

直观上讲,黑色的决策边界对于训练样本局部扰动性的“容忍性“更好,我们假设再添加一个样本点,则红色的决策边界需要做出更多的调整。换言之黑色决策边界具有更强的泛化能力,鲁棒性更强。

2.求解

如何找到这条线呢?
SVM支持向量机(一)

定义RRfunction marginfunction\ marginRR的长度即为f(X)f(X)的绝对值
R=y(wTX+b)(y) R=y(w^TX+b)(通过乘以y来保证非负性)
定义γ\gammageometrical margingeometrical\ margin:即点到直线的距离为
γ=wTX+bw=y(wTX+b)w \gamma=\frac{|w^TX+b|}{\parallel w \parallel}=\frac{y(w^TX+b)}{\parallel w\parallel}
显然,两者之间相差一个w\parallel w\parallel的缩放因子。
γ=Rw \gamma=\frac{R}{\parallel w \parallel}
我们将γ\gamma作为margin的度量。

我们可以知道,当数据线性可分的情况下,在间隔范围内不存在任何数据,即满足:
yi(wTXi+b)wγ  (i{1,2...m})yi(wTXi+b)γw=R \begin{aligned}& \frac{y_i(w^TX_i+b)}{\parallel w \parallel}\geq\gamma\ \ (i\in \{1,2...m\}) \\& y_i(w^TX_i+b)\geq\gamma\parallel w \parallel=R\end{aligned}

在满足此条件的情况下,我们想要找到最大的margin,即:
maxw,bγ=maxw,bRw \begin{aligned}\max_{w,b}\gamma=\max_{w,b}\frac{R}{\parallel w\parallel}\end{aligned}
根据中学知识,当超平面被固定之后,等比例缩放参数wwbb表示的是同一个超平面,而R=y(wTX+b)R=y(w^TX+b)显然可以看出RR的大小可跟随参数的缩放而变化(γ\gamma不存在这个问题,它只跟随超平面的变动而变动)。为了确定超平面,我们可将RR固定下来,此时为了最大化γ\gamma 仅需最大化w1\parallel w \parallel^{-1},而这相当于最小化w2\parallel w\parallel^2,于是公式应该如下(设RR=1,12\frac12只是为了求解方便):
minw,b12w2s.t.yi(wTX+b)1,  i=1,2,..m \min_{w,b}\frac12\parallel w \parallel^2 \\s.t.yi(w^TX+b)\geq1,\ \ i=1,2,..m
通过求解这个问题,我们就可以找到一个margin最大的分类器,如下图所示:

SVM支持向量机(一)
到此为止,Maximum Margin Classifier就讲完了,通过最大化margin,我们使得该分类器对数据进行分类时具有了最大的confidence(事实上,根据margin的定义,准确来说,是对”对不confidence的数据具有了最大的confidence“)。如上图所示,我们可以看到 超平面两边的那个 gap 分别对应的两条平行的线(在高维空间中也应该是两个超平面)上有一些点,显然两个超平面上都会有点存在,否则我们就可以进一步扩大 gap ,也就是增大 γ\gamma 的值了。这些点呢,就叫做 support vector .

参考链接:
支持向量机(十分优秀)

相关文章: