笔名:阿墨
日期:2018-05-09
说实话,曾几次拿起书看过SVM,但是都半途戛然而止。此次由于要帮导师做ppt,自己便重拾书本认认真真地从头到尾看了一番,才知道SVM从线性可分到近似线性可分到线性不可分这个逐步递进的建模过程,从简单的最大硬间隔分类器到最大软间隔分类器再到(…还没看,下次再补)。虽然相关知识都来自于西瓜书或者统计学习方法,而不是来自于论文研读(以后有时间最好还是读paper比较好),但是还是觉得有必要记录一番。
给定一组训练样本 D={(x1,y1),(x2,y2),(x3,y3)...,(xm,ym)} D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) . . . , ( x m , y m ) } ,其中 xi∈Rk x i ∈ R k 而 yi∈{+1,−1} y i ∈ { + 1 , − 1 } 。所谓线性分类器便是基于此训练集D从样本空间中寻找一个m-1维的分割超平面,使得两类样本分别位于此分割超平面的两侧。
(之所以是m-1维,我们可以简单想像一下。如下图,如果数据样本是二维空间中的点,那么一条直线可以将其分开;如果数据样本是3维空间中的点,那么一个平面便可以将其分开…依次类想,所以m维的空间中便是m-1维的分割超平面)
分割超平面一般可表示为:
直观上,训练数据线性可分,那么可能存在着许多可行的分割超平面,究竟哪一个才是最好的,最好的唯一吗?SVM认为图中那个位于两类样本“正中间”的分割超平面是最好的。怎么来理解这个想法?下面我们以一个例子来说明:
上图中有两个村庄,每个村庄各有一些已建房屋和四个潜在房屋(透明些,可能被统计人员漏掉,也可能将在未来建立),现政府打算斥资在两个村庄间构建一条公路,将两个村庄分开来,便于交通的同时又不妨碍原来各村庄内部的各项生产交流活动,可如何建这条公路可难倒了政府工作人员?毕竟可有多条候选建设路线(图中仅画出4条分别为黑色以及蓝色长直线)。显然2,3,4这三条路线虽然在目前情景下是可行的,可是当我们考虑那些未见也即潜在村庄房屋时,它们便失去了优势。路线4和3都一定程度地将某些村庄的房屋划到了另外的村庄,而路线2则贯穿了某些房屋。因此相较之下,路线1胜出,因为它对于未见样本的适应能力是最好的。而这条路线也就是统计学习方法或者说西瓜书上所说的能够将两类样本正确划分并且间隔最大的直线。
对于为什么间隔最大,统计学习方法有作出一定的解释的,具体参见p97-p100。这里简要阐述下,对于训练样本而言,如果分类器建立的足够好,那么对于训练样本均有 yi∗(wTxi+b)>0 y i ∗ ( w T x i + b ) > 0 。而我们知道 |wTx+b| | w T x + b |
则反应了样本x离分割超平面的距离,距离平面越远,则分类器预测其为相应的类的把握度就越高,确信度就越高。因此 y(wTx+b) y ( w T x + b ) 则表示了分类器分类的正确性及确信度,这也被称为函数间隔。
(其实这个很容易理解,因为就是我们的作风嘛。比如我们习惯于称2.0米以上身高的人为巨人,那么现在这个分割超平面便是身高为两米,那么那些身高远高于两米的人,我们可以非常自信地判断,其为巨人,身高远低于两米的人,我们也可以非常自信地判断其为非巨人,因为这两类人他们距离我们的中间点都非常远,差异非常明显,我们可以很容易辨别。可是一些身高位于两米附近的人,就有点模凌两可了,这时我们更常做的是说他可能是巨人,而不是他一定是巨人)
那么如何来寻找这个可以将两类样本分开又间隔最大的分割超平面呢?其实直观上我们可以发现,这个超平面其实就位于连接两类样本中最近的样本的直线的垂线上,而这个最近的样本一般被称为支持向量。设支持向量距离分割超平面的距离(此处为函数间隔)为 delta=y(wTx+b) d e l t a = y ( w T x + b ) ,那么其他样本距离分割超平面的距离均满足:
注意到这个优化目标是一个典型的约束最优化问题,其目标函数 f(w,b) f ( w , b ) 是一个二次函数,约束函数是仿射函数,也即是一个凸二次规划问题,可转换为对偶问题求解。此时我们就需要用到拉格朗日乘子法将约束优化问题转为无约束优化问题:
关于原问题与对偶问题的解具体可以参看统计学习方法附录C2
因此最终对此问题的求解是先构造并求解约束最优化问题
中间求解过程可以参见p103-p106,笔者自己也做过计算,没有问题。