Processing math: 100%

【机器学习基础】第十七课:支持向量机之对偶问题

求解支持向量机,二次规划

171 Views | 3673 Words

Posted by x-jeff on November 18, 2020

【机器学习基础】系列博客为参考周志华老师的《机器学习》一书,自己所做的读书笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。

1.对偶问题

我们希望求解

minw,b12w2s.t.yi(wTxi+b)1,i=1,2,...,m

来得到最大间隔划分超平面所对应的模型:

f(x)=wTx+b

其中w,b是模型参数。注意到式(1.1)本身是一个凸二次规划(convex quadratic programming)问题,能直接用现成的优化计算包求解,但我们可以有更高效的办法。

“二次规划”相关内容见本文第2部分。

对式(1.1)使用拉格朗日乘子法可得到其“对偶问题”(dual problem)。具体来说,对式(1.1)的每条约束添加拉格朗日乘子αi0,则该问题的拉格朗日函数可写为:

L(w,b,α)=12w2+mi=1αi(1yi(wTxi+b))

其中α=(α1;α2;;αm)。令L(w,b,α)wb的偏导为零可得:

w=mi=1αiyixi 0=mi=1αiyi

将式(1.4)代入式(1.3),即可将L(w,b,α)中的wb消去,再考虑式(1.5)的约束,就得到式(1.1)的对偶问题:

maxαmi=1αi12mi=1mj=1αiαjyiyjxTixjs.t.mi=1αiyi=0αi0,i=1,2,...,m

关于“对偶问题”的讲解请见:对偶问题

解出α后,求出wb即可得到模型:

f(x)=wTx+b=mi=1αiyixTix+b

从对偶问题式(1.6)解出的αi是式(1.3)中的拉格朗日乘子,它恰对应着训练样本(xi,yi)。注意到式(1.1)中有不等式约束,因此上述过程需满足KKT条件,即要求:

{αi0yif(xi)10αi(yif(xi)1)=0

于是,对任意训练样本(xi,yi),总有αi=0yif(xi)=1。若αi=0,则该样本将不会在式(1.7)的求和中出现,也就不会对f(x)有任何影响;若αi>0,则必有yif(xi)=1,所对应的样本点位于最大间隔边界上,是一个支持向量。⚠️这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关。

那么我们该如何求解式(1.6),得到α呢?有两种方法:

  1. 这是一个二次规划问题,可使用通用的二次规划算法来求解。
  2. 使用更为高效的其他算法,例如SMO(Sequential Minimal Optimization)算法。

求出α后,可通过式(1.4)求得w的值。

如何确定偏移项b呢?注意到对任意支持向量(xs,ys)都有ysf(xs)=1,即:

ys(iSαiyixTixs+b)=1

其中S={iαi>0,i=1,2,,m}为所有支持向量的下标集。理论上,可选取任意支持向量并通过求解式(1.9)获得b,但现实任务中常采用一种更鲁棒的做法:使用所有支持向量求解的平均值:

b=1SsS(ysiSαiyixTixs)

2.二次规划

二次规划(Quadratic Programming,简称QP)是一类典型的优化问题,包括凸二次优化非凸二次优化。在此类问题中,目标函数是变量的二次函数,而约束条件是变量的线性不等式。

假定变量个数为d,约束条件的个数为m,则标准的二次规划问题形如:

minx12xTQx+cTxs.t.Axb

非标准二次规划问题中可以包含等式约束。注意到等式约束能用两个不等式约束来代替;不等式约束可通过增加松弛变量的方式转化为等式约束。

其中x为d维向量,QRd×d为实对称矩阵ARm×d为实矩阵,bRmcRd为实向量,Axb的每一行对应一个约束。

Q半正定矩阵,则式(2.1)目标函数是凸函数,相应的二次规划是凸二次优化问题;此时若约束条件Axb定义的可行域不为空,且目标函数在此可行域有下界,则该问题将有全局最小值。若Q正定矩阵,则该问题有唯一的全局最小值。若Q为非正定矩阵,则式(2.1)是有多个平稳点和局部极小点的NP难问题

常用的二次规划解法有椭球法(ellipsoid method)、内点法(interior point)、增广拉格朗日法(augmented Lagrangian)、梯度投影法(gradient projection)等。


Gitalking ...