支持向量机(Support Vector Machine, SVM)是曾经打败神经网络的分类方法,从90年代后期开始在很多领域均有举足轻重的应用,近年来,由于深度学习的兴起,SVM的风光开始衰退,但是其仍然不失为一种经典的分类方法。SVM最初由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis于1963年提出,之后经过一系列改进,现今普遍使用的版本由Corinna Cortes 和 Vapnik于1993年提出,并在1995年发表[1]。深度学习兴起之前,SVM被认为是机器学习近几十年来最成功、表现最好的方法。

1. 间隔最大化

  本文讨论线性可分的支持向量机,详细推导其最大间隔和对偶问题的原理。简单起见,以二分类为例,如下图,设训练集为D={(x1,y1),...,(xn,yn)},蓝色圆点为一类,红色方块为另一类,分类的目标是寻找一个超平面,将两类数据分开。在二维平面中,分类超平面就是一条直线,从图中可以看出,能将训练样本分开的超平面有很多可能(图中绿色虚线),超平面除了要将训练集中的数据分开,还要有较好的泛化性能,需要把测试集中的数据也划分开。从直观上看,绿色实线是比较好的一个划分,因为该直线距离两类数据点均较远,对于数据局部扰动的容忍性较好,能够以较大的置信度将数据进行分类。

支持向量机(SVM)之线性分类

  所以,距离两类数据点间隔最大的超平面为最好的分类面,两类数据点距离超平面的间隔(margin)如下图,假设图中两条虚线的表达式为wTx+b=1wTx+b=1 (为什么等号右边为1?因为若wTx+b=c,令w=w/cb=b/c即可,wb是要学习的参数,其大小是随等式右边的常数变化的),那么,中间分类面的表达式为wTx+b=0。为方便计算,将两类数据的标签设为±1,蓝色圆点为y=1,红色方块为y=1,如果分类超平面能将两类数据正确分类,那么就有
{wTxi+b1yi=1wTxi+b1yi=1

并且两类数据到超平面的距离之和,也就是间隔为:
2||w||

支持向量机(SVM)之线性分类

  要找到间隔最大的超平面,就是使2||w||最大,也即12||w||2最小,同时满足
{wTxi+b1yi=1wTxi+b1yi=1

这个需要满足的条件可简化为yi(wTxi+b)1,最终,寻找具有最大间隔的划分超平面转化为一个有约束的最优化问题
  min12||w||2
  s.t.yi(wTxi+b)1,i=1,,n
其中,约束里的等号在上图中绿色虚线穿过的点处成立,这些点距离超平面最近,被称为“支持向量”(Support Vector),后面我们会看到,分类超平面仅由支持向量决定,这就是线性可分支持向量机的基本模型。

2. 对偶问题

  为了求解上述有约束的最优化问题,应用拉格朗日对偶性,通过求解对偶问题(dual problem)得到原始问题(primal problem)的最优解,这样求解的优点是:1. 对偶问题通常更容易求解,2. 自然引入核函数,进而推广到非线性分类的情况[2]。

2.1 拉格朗日对偶性

  首先给出原始问题,设f(x)ci(x)hj(x)是定义在Rn上的连续可微函数,给定如下原始问题
   minxf(x)
   s.t. ci(x)0,i=1,2,...,k
    hj(x)=0,j=1,2,...,l
其拉格朗日函数(Lagrange function)为
   L(x,α,β)=f(x)+i=1kαici(x)+j=1lβjhj(x)
其中,αiβj为拉格朗日乘子,并且αi0,考虑x的函数
  θP(x)=maxα,β;αi0L(x,α,β)
如果x违反原问题的约束条件,即存在i{1,...,k}使得ci(x)>0或者存在j{1,...,l}使得hj(x)0,那么就可以令αi+,或者令βjhj(x)+,从而
  θP(x)=maxα,β;αi0[f(x)+i=1kαici(x)+j=1lβjhj(x)]=+
相反,如果x满足原问题的约束条件,则可令αi=0βj=0,使得θP(x)=f(x)
因此有
  θP(x)={f(x)x满足原始问题约束+x违反原问题约束
所以,原问题就可以转化为最小化θP(x),即
  minxθP(x)=minxmaxα,β;αi0L(x,α,β)
该问题取最小值时,x是满足原始问题的约束的。接下来构造其对偶问题,首先定义αβ的函数
  θD(α,β)=minxL(x,α,β)
再对上式最大化
  maxα,β;αi0θD(α,β)=maxα,β;αi0minxL(x,α,β)
将该式表示有约束的最优化问题就得到了原始问题的对偶问题:
  maxα,βθD(α,β)=maxα,βminxL(x,α,β)
  s.t. αi0,i=1,...,k
  那么原始问题和对偶问题的解存在什么关系呢?记原始问题的最优值为p=minxθP(x),对偶问题的最优值为d=maxα,β;αi0θD(α,β),那么有dp,此处不再证明,可简单理解为(最大值中的最小值)大于等于(最小值中的最大值)。在什么条件下等号成立呢?这个条件就是强对偶(strong duality),并且在强对偶前提下,如果xα, β分别是原始问题和对偶问题的可行解,则xα, β 分别是原始问题和对偶问题的最优解,此时可以用解对偶问题替代解原始问题。但是强对偶条件是一个比较严格的约束,一般情况下无法满足,如果原问题满足一定的条件,就比较容易达到强对偶,这些条件就叫做约束规范 (constraint qualifications)。适用于SVM的约束规范是Slater条件,即原问题是一个凸优化问题(f(x)ci(x)均是凸函数),并且存在x,使所有的等式约束成立,不等式约束严格成立(ci(x)<0)。在满足这些条件的前提下,有学者提出了xα, β分别是原始问题和对偶问题的最优解的充分必要条件:KKT条件(Karush–Kuhn–Tucker conditions)
  1. ci(x)0,hj(x)=0,i=1,...,k,j=1,...,l
  2. f(x)+i=1kαici(x)+j=1lβjhj(x)=0
  3. αi0,αici(x)=0,βj0
其中,αici(x)=0称为KKT的互补松弛条件(Complementary slackness),由此可知,若αi>0,则必有ci(x)=0

2.2 SVM的对偶问题

  回顾一下SVM的原问题,
  min12||w||2
  s.t.yi(wTxi+b)1,i=1,,n
构造拉格朗日函数:
  L(w,b,λ)=12wTw+i=1nλi(1yi(wTxi+b)),λi0
可以将原问题等价为:
  minw,bθP(w,b)=minw,bmaxλ;λi0L(w,b,λ)
易知,原问题满足Slater条件,所以也满足KKT条件,可以将原问题转化为对偶问题进行求解,即求
  maxλθD(λ)=maxλminw,bL(w,b,λ)
  s.t. λi0,i=1,...,n
首先求内部的项minw,bL(w,b,λ),令L(w,b,λ)wb的导数为0
Lw=wi=1nλiyixi=0
Lb=i=1nλiyi=0
因此有w=i=1nλiyixi,并且i=1nλiyi=0。把w代入L(w,b,λ)

L(λ)=12i=1nλiyixiTj=1nλjyjxj+i=1nλi(1yi(j=1nλjyjxjTxi+b))=12i=1nj=1nλiλjyiyjxiTxj+i=1nλii=1nj=1nλiλjyiyjxiTxji=1nλiyib=12i=1nj=1nλiλjyiyjxiTxj+i=1nλi

该问题转化成只包含λ的最优化问题,求出λ就可以求出wb。将L(λ)取负数,把最大化转化为最小化
  minλL(λ)=12i=1nj=1nλiλjyiyjxiTxjTi=1nλi
  s.t.λi0,i=1nλiyi=0,i=1,...,n
该问题为二次规划问题,存在全局最优解,设最优解为λ=(λ1,...,λn),那么就可以计算原始问题的最优解w=i=1nλiyixi
由KKT的对偶松弛条件可知,如果λi0,则有1yi(wTxi+b)=0,由于y{+1,1},因此
  b=yiwTxi=yij=1nλjyjxjTxi
  在预测阶段,对于新数据点z,计算
  y^=wTz+b=i=1nλiyixiTz+b
如果y^>0,则将z分为正类,否则分为负类。

3. SVM进一步分析

  等式1yi(wTxi+b)=0对应的是下图中分类超平面两侧的虚线,再向两侧延伸,就会有1yi(wTxi+b)0,由于λi(1yi(wTxi+b))=0,所以,对于两条虚线外侧的点,其对应的λi=0。事实上,只有少数的点会落在分类超平面两侧的虚线上,这些点是距离分类超平面最近的点,被称为支持向量。由w=i=1nλiyixib=yij=1nλjyjxjTxi可知,分类超平面仅由支持向量来决定,所以支持向量机具有较高的稀疏性。

支持向量机(SVM)之线性分类

  支持向量机建立问题的思路是找到距离分类超平面最近的点,通过最大化这些点之间的间隔来求解,间隔最大化的平面具有较高的鲁棒性。

[1] Cortes C, Vapnik V. Support-vector networks. Machine learning. 1995 Sep 1;20(3):273-97.
[2] 李航. 统计学习方法,清华大学出版社,2012.

相关文章:

  • 2021-11-16
  • 2021-11-16
  • 2021-11-16
  • 2021-11-16
  • 2021-08-28
  • 2021-10-04
  • 2021-10-12
  • 2021-09-10
猜你喜欢
  • 2021-11-16
  • 2021-11-16
  • 2021-11-19
  • 2021-12-10
  • 2021-12-10
  • 2021-11-16
  • 2021-11-16
  • 2021-11-16
相关资源
相似解决方案