Processing math: 100%

[ML Notes] SVM:线性模型

1. 基本型

  对于给定样本集 D={(x1,y1),(x2,y2),,(xm,ym)}yi{1,+1},SVM 试图在两类样本的正中间找到一个超平面,来将两类样本分开。所谓正中间指的是,样本集中距离超平面最近的样本,即支持向量,与超平面间的距离相等。

  将这个超平面写为

wTx+b=0

其中 w=(w1,w2,,wd) 为法向量,b 为偏移,二者一起确定了超平面。任意样本 x 到该超平面的距离为

r=|wTx+b|||w||

超平面对应的模型为

f(x)=wTx+b

  假设超平面能将训练样本正确分类,令

{wTxi+b+1,yi=+1wTxi+b1,yi=1

上式还可以写为

yi(wTxi+b)1

支持向量使上式中的等号成立,两个异类支持向量到超平面的距离之和称为“间隔”(margin),为

γ=2||w||

  SVM 的目标是找到具有最大间隔的划分超平面,即

maxw,b2||w||s.t.yi(wTxi+b)1,i=1,2,,m

或者写为

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

称为 SVM 的基本型。

2. 对偶问题

  式 (7) 是一个凸二次优化问题,可以通过拉格朗日乘子法得到其对偶问题解决,该问题的拉格朗日函数为

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

其中 α=(α1,α2,,αm) 为拉格朗日乘子,且有 αi0,得到对偶问题

maxαminw,bL(w,b,α)s.t.αi0,i=1,2,,m

  式 (8) 分别对 wb 求偏导,得到

wL(w,b,α)=wmi=1αiyixi

L(w,b,α)b=mi=1αiyi

分别令以上两个偏导为零,得到

w=mi=1αiyixi

mi=1αiyi=0

  由此式 (8) 可以进一步写为

L(w,b,α)=12wTmi=1αiyixi+mi=1αimi=1αiyiwTximi=1αiyib=mi=1αi12mi=1αiyiwTxi=mi=1αi12mi=1mj=1αiαjyiyjxTixj

注意上式中已经消去了 L(w,b,α) 中的 wb,只剩下一个参数 α,于是前述对偶问题可以写为

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

  由上面的对偶问题解出的 αi,是式 (8) 中对应样本 (xi,yi) 的拉格朗日乘子。注意原优化问题(式 (7))中有不等式,求解过程需要满足 KKT 条件,即

{αi01yi(wTxi+b)0αi(1yi(wTxi+b))=0

由上面的条件可知,对任意样本 (xi,yi),总有 αi=0 或者 yi(wTxi+b)=1

  • 如果 αi=0,则该样本不会在式 (9) 所示的权重中出现,不会对模型有影响;
  • 如果 αi>0,则必有 yi(wTxi+b)=1,即式 (4) 的等号成立,该样本点位于最大间隔边界上,是一个支持向量。

这表明在训练支持向量机时,大部分样本都不会保留,最终模型只与支持向量有关。

  求解得到 α 后,由式 (9) 就可以得到 w

  如前所述,支持向量使得式 (4) 中的等号成立,因此可以通过任意支持向量和 w 来求解 b。实际中常采用所有支持向量求解的平均值,得到更加稳定和准确的结果

b=1|S|sS(yswTxs)=1|S|sS(ysiSαiyixTixs)

其中 S={i|αi>0,i=1,2,,m} 为所有支持向量的下标集合。