SVM——(二)线性可分之目标函数推导方法2

来源:互联网 发布:淘宝请买家提供凭证 编辑:程序博客网 时间:2024/06/07 03:56

这是接着上一篇文章(方法1)整理的第二种推导方法。这是从另外一个点来思考如何求得目标优化函数,建议两种都看一下。这样能理解得更加透彻。

0.引言

什么是支持向量机(Support Vector Machine)? 我们需要明确的是:支持向量机它是一种算法,用来寻找一个“最佳”超平面。(直线也是超平面)

如下图所示:

这里写图片描述

那条线算是“最佳”超平面呢?直觉告诉你是中间红色这一条。事实上也是,因为其两侧离它最近的点的距离最大,且两侧距离的绝对值相等。同时我们称两侧平面上的样本点为支持向量(support vector)。那我们又该如何来找到这个超平面呢?

1.间隔的度量方式

1.1 超平面的表达

在谈距离之前,我们先把超平面的表达式给写出来:

wTx+b=0(01)

其中b表示截距(形式同y=kx+b);另一个需要说明的就是,我们在SVM中,用y=+1,y=1分别来表示positive point和negative point;之所以这样做,其一是因为历史原因(可能是惯例),其二(后面会提到)

从上面的表达式我们知道,知道找到参数w,b,也就代表确立了超平面。那么应该从哪个地方入手呢? 当然就是从SVM的核心思想:最大化间隔(gap)入手。

1.2 函数间隔(functional margin)

上面说到SVM的核心思想就是最大化间隔,既然是最大化间隔,那总该得有个度量间隔的量。我们知道,当超平面wTx+b=0确定后,|wTx+b|可以相对的来表示每个样本点到超平面的距离,也就是说虽然实际距离不是|wTx+b|这么多,但是依旧遵循绝对值大的离超平面更远的原则。如下图:

这里写图片描述

线x1+x23=0,A,ByA=+1,yB=1A线|wTx+b|=|2+33|=2B线|wTx+b|=|1+13|=1

我们可以注意到,只要分类正确,y(i)(wTx+b)>0就成立;或者说如果y(i)(wTx+b)>0,就意味着分类正确;且其值越大,说明其分类正确的可信度就越高。而这也是y为什么取±1的第二个原因。所以此时我们将训练集中所有样本点到超平面的函数间隔(functional margin)定义为如下:

γ^(i)=y(i)(wTx(i)+b)(02)

且定义训练集到超平面的函数间隔为其中的最小值:
γ^=mini=1,2...mγ^(03)

但是我们发现,如果同时在方程(01)的两边乘以k(k0);虽然此时超平并没有发生改变,但是相对距离却变成了之前的k倍,所以仅有函数间隔明显是不够的,还要引入另外一种度量方式,几何间隔。

1.2几何间隔

如下图所示,所谓几何间隔(geometric margins),就是样本点到直线实实在在的距离,只要直线不发生改变,那么间隔就不会发生任何改变;这样就避免了在函数间隔中所遇到的问题。

这里写图片描述

那么应该如何来表示几何间隔呢?

这里写图片描述

如图所示,直线方程为wTx+b=0,A为数据集中任意一个点x(i)γ(i)为A到直线的距离,可以看成是向量BA的模;W为垂直于wTx+b=0的法向量。此时我们可以得到点B的坐标为:

x(i)γ(i)W||W||(04)

又因为B点在直线上,所以满足:

wT(x(i)γ(i)W||W||)+b=0(05)

因此我们可以通过化简得到几何距离的计算公式,但问题在于W该怎么得到?其实W就是w。假设有一直线wTx+b=0,w=(w1,w2)T,(即:w1x1+w2x2+b=0)那么该直线的斜率k1=w1/w2,又因为W垂直于直线,所以W的斜率为k2=w2/w1。因此W的方向向量为(1,k2),再同时乘以w1即可得到W=(w1,w2)=w

也就是说:若直线斜率为k,则他的一个方向向量为a⃗ =(1,k),证明见此处

所以有:

wT(x(i)γ(i)w||w||)+b=0(06)

γ(i)=wTx(i)+b||w||=(w||w||)Tx(i)+b||w||(07)

如图:

这里写图片描述

直线方程为:x1+x23=0,A为正样本,B为负样本,即yA=+1,yB=1

则:

γA=(w||w||)Tx(A)+b||w||=((1,1)1+1)T(2,3)+31+1=2γB=(w||w||)Tx(A)+b||w||=((1,1)1+1)T(1,1)+31+1=12

此时我们发现,这是一个有符号的距离:正样本到直线的距离为正;负样本到直线的距离为负。但无论如何,同函数间隔一样只要是分类正确的情况下都满足y(i)γ(i)>0,同样,我们将数据集中所有样本点到平面的几何间隔(Geometric margin)定义为如下形式:

γ(i)=y(i)((w||w||)Tx(i)+b||w||)(08)

且定义训练集到超平面的几何间隔为其中的最小值:
γ=mini=1,...mγ(i)(09)

同时,我们还可以发现函数间隔同几何间隔存在以下关系:

1.2. if ||w||=1,γ^=γ;γ=γ^||w||(10)(11)

此时我们已经有了对于间隔度量的方式,所以下一步自然就是最大化这个间隔来求得平面。

2.最大间隔分类器

什么是最大间隔分类器(Maximum margin classifiers)呢?上面我们说到有了间隔的度量方式之后,接着就是最大化这一间隔,然后求得超平面wTx+b=0。然后通过函数g(wTx+b)将所有样本点输出只含{1,+1}的值,以此来对数据集进行分类。而g(wTx+b)就是一个分类器,又因为是通过最大化几何间隔得来的,故将其称之为最大间隔分类器。

从上面的公式(09)我们得到了数据集到平面的几何间隔,然后再最大化几何间隔,即:

maxw,bγs.t.y(i)((w||w||)Tx(i)+b||w||)γ,i=1,2,...m(12)

式子(12)的含义就是找到参数w,b,γ,使得满足以下条件:
1. γ尽可能大,因为目的就是最大化γ;
2. 同时要使得样本中所有的几何距离都大于γ,因为由(09)可以知道γ是是所有间隔中的最小值;

怎么直接解决上面这个优化问题? 当然我也不知道能还是不能,至少按照主流的SVM推导过程,不是这样做的。当然,我最后用到的方式肯定也和和主流方式一样,只是我换了一个叙述方式(顺序),使得大家(至少是我自己)更能接受一点。

既然不能直接优化,那我们不妨再次回顾一下SVM的思想“最大化(几何)间隔”。什么意思?或者说最大化的前提是什么?可能你已经想到了。当然得先确定平面(不论是否为最佳平面),然后才能度量样本点到平面的间隔。

所以,由函数间隔与几何间隔的关系(11)我们可以得出以下优化问题:

maxw,bγ^||w||s.t.y(i)(wTx(i)+b)γ^,i=1,2,...m(13)

此时我们发现,约束条件几何间隔依然变成了函数间隔,准确说应该既是函数间隔同样也是几何间隔。既然可以看做函数间隔,那么令γ^=1自然也不会影响最终的优化结果(原因戳此处)

所以上述优化问题(13)就可以转化为如下形式:

maxw,b1||w||s.t.y(i)(wTx(i)+b)1,i=1,2,...m(14)

但是对于这样一个优化问题(14),我们还是无法直接解决。我们知道,对于f(x)>0,maxf(x)min1f(x)min1(f(x))n三者求解出的x都相同。所以可以进一步化简为:

minw,b12||w||2s.t.y(i)(wTx(i)+b)1,i=1,2,...m(15)

之所以要进行这样的处理,是因为我们可以将其转换为凸优化问题,用现有的方法求解。(前面在乘以12是为了后面求导的时候能更方便,同时这也不会影响优化结果)

到这一步就可以用现有(off-the-shelf)的QP(quadratic programming)软件求解出w,b。下面是介绍求解的算法。


SVM——(七)SMO(序列最小最优算法)
SVM——(六)软间隔目标函数求解
SVM——(五)线性不可分之核函数
SVM——(四)目标函数求解
SVM——(三)对偶性和KKT条件(Lagrange duality and KKT condition)
SVM——(二)线性可分之目标函数推导方法2
SVM——(一)线性可分之目标函数推导方法1

参考:

  • 《机器学习》周志华
  • 《统计学习方法》李航
  • Andrew Ng. CS229. Note3
  • 学习July博文总结——支持向量机(SVM)的深入理解(上)
阅读全文
0 0
原创粉丝点击