关于SVM数学细节逻辑的我的理解(一) :获得最大间隔分类器的基本形式

 

网上,书上有不少的关于SVM的资料,可是我以为一些细节的地方并无讲的太清楚,下面是我对SVM的整个数学原理的推导过程,其中逻辑的推导力求每一步都是有理有据。如今整理出来和你们讨论分享。算法

由于目前个人SVM的数学原理尚未过多的学习核函数,因此下面的整理都不涉及到核函数。并且由于不少地方我还没理解太透,因此目前我整理的部分主要分为:网络

①最大间隔分类器,其中包括优化目标的一步步推导,还有关于拉格朗日函数,KKT条件,以及对偶问题等数学优化的知识机器学习

②软间隔优化形式,即加入了松弛变量的优化目标的一步步推导函数

SMO算法工具

 下面是第一部分,获得SVM的基本形式。学习

.前言:

虽然仍是有不少地方不能理解,可是我以为目前理解的程度已经进入了一个瓶颈了,或许从头整理一遍会突破呢。(后来证实确实本身整理推导一遍有很大的收获)优化

不得不说SVM是真的难,神经网络若是说难就难在反向传播算法,不过那也只是个链式求导法则,而SVM则涉及到最优化的大量数学知识,毕竟光是一个SVM就能写本书(《支持向量机导论》)的...spa

OK,开始整理整个SVM的思路。可能一开始仍是有不少不清楚的地方,不过慢慢修改吧。3d

并且想要本身画一些图,可是目前还没找到好的工具,因此就先剪切一些书上的图,我会标注好来源的。blog

二.获得最最基本的形式

(不知道起什么题目更好)

 

 

图来自于机器学习P121

我以为不少人可能对SVM要作什么很熟悉了,如今仍是啰嗦一下:

如今给你训练数据,其中(牢记这个,在后面很重要),咱们要作的就是找到一个超平面能够把这两类数据给分开。如今假设,这个数据集是线性可分的(先考虑数据集是线性可分的状况),那么咱们其实能够找到不少超平面来分开这两类数据,好比上面这个图中能够看到由不少状况。那么咱们该找哪一种状况呢?

 

直观上看,咱们须要找的这个超平面,它离两边的不一样类型的数据集距离最远”,就好比上面加粗的那条直线。这个直线看起来距离两类数据集是“最远的”,这样在预测时可能更准确一些,这个我以为你们都能理解。但这是直观上的说法,若是要使用数学原理来解决,咱们首先须要找到衡量平面到数据集的距离远近的标准,这就引出了函数间隔”和“几何间隔”的概念。

(寻找最大间隔直观上看是最优的,并且其实背后有对应的数学原理,我记得在《支持向量机导论》中应该是第四章讲了,可是目前仍是没太理解,你们有兴趣能够看一看)

 

1.函数间隔与几何间隔定义

首先咱们定义超平面的表达式为,那么复习一下高中学的知识咱们知道,平面上一个点x到这个平面的距离是,而这个就是几何间隔的定义。

(若是不熟悉这个,那确定熟悉一个点(x,y)Ax+By+C=0,的距离公式是

函数间隔是什么呢?这里就须要强调的取值了:,对于正样例它的label+1,对于负样例它的label-1。(因此乘上不改变原来的绝对值)

咱们用来表示一个样本点到这个超平面的函数间隔

(关于函数间隔的定义是在《支持向量机导论》第二章中找到的)

2.函数间隔与几何间隔的关系

须要注意的是,若是找到了一个超平面能够正确分开这个数据集,那么意味着对于每一个样本点x来讲,其实它的函数间隔大于等于0,即:

 

我以为这一步理解很关键。具体解释就是:对于正样例,由于它的=1,而由于它被正确分类了,因此它的,因此能够获得,对于负样例同理。

(不少书上直接给出,我以为思惟跨度就有点大了,关于的说明后面讲)

而后进一步咱们其实能够获得,若是这个样本被正确分类了,那么:

 

因此函数间隔其实也能够用表示。

回顾以前几何间隔的计算式子,不少时候其实分子都不用绝对值符号来表示,咱们能够把分子的绝对值换成函数间隔,那么这个样本到超平面的几何间隔其实就能够写成:

 

因此我以为这就是函数间隔和几何间隔之间的关系,即在样本集线性可分的状况下,对于某一个成功分类的超平面来讲,每一个样本点到这个超平面的几何间隔就是函数间隔再除以范数

3.定义超平面到训练集的间隔

 

而后咱们以前的几何间隔,函数间隔什么的都是点到平面的距离,如今咱们定义一个超平面到训练集间隔为这个超平面到训练集的每一个点的几何距离最小的距离。

(关于这个的定义我是参考了《Pattern Recognition and Machine Learning 》关于SVM的讲解,这本书是我见过的讲的最细的了)

这个平面到数据集的间隔就是咱们一开始直观感觉时所须要的那个衡量远近的数值。

从这个意义上来讲,其实咱们在衡量一个平面到数据集的“远近”时,咱们其实只须要看的是到全部的样本点距离中最近的那个。

 

因此对于一个超平面(ω,b)咱们能够获得它到给定训练集的间隔为:

 

这个式子很容易理解,若是放进min里面,即,就表示在每一个几何间隔中找最小的。由于和具体样本点无关因此被提了出来,而后后面的

就是表示训练集中每一个点到这个超平面的函数间隔中的最小值。

这里还须要理解的是,若是给定了这个分类超平面,那么这个超平面到训练集的距离就定了,由于训练集是给定了每一个点是固定的。因此超平面若是调整,这个间隔就会变化。

 

4.获得最最原始的优化目标

因此咱们如今须要找到这么一个超平面,它不但能够正确分类,并且它到训练集的间隔是全部可正确分类的超平面中最大的。这也是咱们一开始提出的那个直观上的问题。

 

而后咱们就能够获得咱们的最最原始的优化目标了:

 

(写到这里我在想一个问题,如何能保证按照这个优化目标找出来的超平面它正好到正样本集和负样本集的间隔是同样的。通过思考后发现,这个已经被包含在了这个优化目标内部。能够这么解释:由于其实我以为咱们能够把平面优化分为ω的最优化和b的最优化,对于相同的ω,不一样的b的平面都是平行的。当ω固定时,这时一个正样本到这个平面的距离和一个负样本到这个平面的距离之和的最小值也固定了!后面补图说明。

可是不一样的b会致使不一样,不一样的b会致使平面保持相同的“斜率”平移。发现由于这里取最小值。因此咱们假设这个平面从正负样本的正中间往正样本方向偏离一小段距离,那么多是到正样本距离变小,到负样本的距离变大,可是注意到是取最小值,因此这个最小值就会从原来的1/2变小,并非咱们最后的最优的结果,因此从这个角度看,直线位于正中间是最优的。)

(这个最原始的优化目标不少书上都没有,我也是在《Pattern Recognition and Machine Learning》这本书上找到的,这本书至关不错)

 

.获得SVM的基本形式

 

获得这个最最原始的优化目标后,直接尝试解决它是很复杂的。咱们还能够进一步简化。注意到若是咱们对ω和b同时进行缩放,即,而后把kω和kb代入原来的式子,会发现对原来的优化问题并无影响,因子都被约了。那咱们就能够经过这个特性来简化式子。

因此咱们不如就让这个1,即咱们经过同时缩放ω和b距离超平面最近的那些样本点的函数间隔为1,这样调整后,不只对原来的优化问题没有影响,并且还能简化计算。

(这里缩放须要理解到位,同时缩放ω和b,会改变每一个样本点到这个超平面的函数间隔,可是并不会改变每一个样本点到这个超平面的几何间隔,因此咱们不如就让距离这个超平面最近的那些点的函数间隔1,简化了计算,可是也带来了约束

可是既然设置了=1,那么就意味着增长了约束

对于离超平面最近的那些样本点,它们的

对于其余的样本点,它们的

因此如今能够说:当能够找到一个超平面正确分类给定的训练集时,每一个样本点的函数间隔知足:

 

这个就是简化所带来的约束条件

如今咱们看一看简化后的优化式子变成了:

 

约束就是上面的对于每一个样本点知足

可是咱们通常把这个优化问题转化为和它等价的:

 

并且通常会加上系数1/2,书上说是为了以后推导的方便。

因此如今咱们的优化问题变成了:

 

  其中i=1,2,3...m

这个就是《机器学习》书上说的SVM的基本形式。

 

 

 

如今整理一下推导出这个基本形式的过程:

(1)最最原始的优化目标:,即咱们须要在每一个能够正确分类的平面中,找到一个到数据集的间隔最大的平面,其中间隔被定义为这个数据集样本到这个平面的最小距离

(2)根据wb缩放后优化目标不变,咱们就可让1来简化这个问题,获得,而后再转化为等价的

,可是注意此时就有了约束条件了!

 

能够看到光是获得这个最基本的形式的推导其实就有不少不少须要思考和理解的细节。

PS:谁知道如何把word上的公式方便的粘贴到网页上?必须得一个一个复制...

参考资料汇总:

[1]《机器学习》

[2]《支持向量机导论》

[3]《Pattern Recognition and Machine Learning》

相关文章
相关标签/搜索