支持向量机SVM (Support Vector Machines)
在之前的算法中,我们是根据样本来预测出数据的标记(即结果)的概率,那么SVM算法是通过找到数据中的区分边际从而实现数据分类。
边际(Margins)
从margins来认识SVM,首先我们想想之前的算法,比如logistic regression算法,它得到的是样本对应各个标记的概率,概率越大,说明该样本有更多可能分类成该标记。如 果我们需要把这个概率提升,即在根据模型进行分类后就明确指示出是哪一类呢?比如当θTx>>0时(注意是”远大于”,即离边际的距离很远),y=1而不是得到结果p(y=1)=69%之类的概率,此时就可以明确的看到根据特征值预测出的分类结果。那么这里的边际就是所说的θTx=0。
我们再从图像上来认识下边际:
![【学习笔记】斯坦福大学公开课(机器学习) 之支持向量机 【学习笔记】斯坦福大学公开课(机器学习) 之支持向量机](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzk0Ni9iYWEwNTI0NmRkMTljOTM4N2JmZTVhZmYzYTQyODJjMi5KUEVH)
比如上图中,x和o是两种不同的数据分类。我们会找到分割两种数据的线(边际),A,B,C三个数据都在边际的一侧,所以都属于“x”类,但是A与边际的距离远远大于B和C,那么A属于”x”类的概率就更高。
标记(Notation)
为了更方便的讨论SVM,需要换一种方式来表示标记,我们使用y∈{−1,1}来做标记,并且把参数的向量形式,写成w,b参数形式:
hw,b(x)=g(wTx+b).
其中,
g(z)=1 if z≥0,否则就是
g(z)=−1。
注意到函数
g,我们的分类器直接预测出标记是1还是-1,而不会去预测样本为各类标记的概率(如logistic regression)。
函数间隔和几何间隔(Functional and geometric margins)
已知一个训练样本(x(i),y(i)),我们可以定义一个关于(w,b)的函数间隔:
γ∧ (i)=y(i)(wTx+b)
当
y(i)=1时,会让函数间隔比较大,所以就会需要让
wT+b成为一个很大的正数。相反的
y(i)=−1时,我们需要
wT+b成为一个很大的负数。函数间隔越大,那么就可以得到一个更正确,更可信的预测结果。
对于一个关于
g(z)的线性分类器来说,有一个关于函数间隔很不好的性质:当我们用
2w来代替
w,
2b来代替
b时,就会有
g(wTx+b)=g(2wT+2b),这并不会改变我们预测出的
hw,b(x),因为
hw,b(x)的值只取决于
g(wTx+b)的符合,而不与它的大小无关。这样看来,我们把函数间隔改成任意大,都不会对我们的实际效果造成影响,这样看来我们需要做出一些改变,比如做一些归一化
||w||2=1。
已知训练样本
S={(x(i),y(i));i=1,2,3⋯m},我们定义这个训练样本
S的函数距离是样本空间中各个样本到判断边界距离中最短的距离。符号记为:
γ∧=mini=1,2,⋯mγ∧ (i)
下面来看下几何间隔:
看上图,已经把关于(w,b)的,沿着向量w判定边界划出来了。注意到,w的方向与判定边界是成垂直状态。点A,一个被标记为1的训练样本,它到判定边界的距离是线段AB,我们用符号γ(i)来表示。
我们如何求出γ(i)?我们知道,w/||w||表示一个单位向量,A点用x(i)表示,而点B就可以通过向量运算得到x(i)−γ(i)∗w/||w||,而这点又在判断边界的直线上,即是满足判断边界的方程wT+b=0,所以就有下面的方程:
wT(x(i)−γ(i)∗w||w||)+b=0
那么,每个点到判断边界的距离就是:
γ(i)=wTx(i)+b||w||=(w||w||)Tx(i)+b||w||
上面就是把判断边界正数一侧的样本的几何距离,更一般的,给定样本及标记
(x(i),y(i)),我们得到几何距离:
γ(i)=y(i)((w||w||)Tx(i)+b||w||)
我们注意到,当
||w||=1的时候,几何距离与函数距离是相同的。
与函数距离类似,我们也把各个样本的几何距离中,最短的距离写成:
γ=mini=1,2,⋯mγ (i)
最优边界分类器(The optimal margin classifier)
从上面的论述来看,现在我们需要一个分类器,若要把训练样本分类,则需要分类器,一条线(几何距离),把样本很好的分割成不同类别的标记。
这个问题可以转化为找到一个超平面,使得样本空间中的样本到该平面的距离最大,即:
maxγ,w,bγ∧||w|| s.t. y(i)(wTx(i)+b)≥γ∧,i=1,2⋯m
这里就是说我们需要最大化
γ∧||w||,在叙述函数距离的时候,我们发现,
w,b的等比变化并不会影响超平面的位置,那么就可以让
γ∧=1。
所以原来的式子就变为
1||w||,我们要将这个式子最大化,等同于我们需要将
||w||2最小化即:
minγ,w,b12||w||2 s.t. y(i)(wTx(i)+b)≥1,i=1,2⋯m
这个就是在线性约束条件下的,二次优化问题。