[ML Notes] SVM:线性模型
Contents [show]
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+b≤−1,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.1–yi(wTxi+b)≤0,i=1,2,…,m
称为 SVM 的基本型。
2. 对偶问题
式 (7) 是一个凸二次优化问题,可以通过拉格朗日乘子法得到其对偶问题解决,该问题的拉格朗日函数为
L(w,b,α)=12wTw+m∑i=1αi(1–yi(wTxi+b))
其中 α=(α1,α2,…,αm) 为拉格朗日乘子,且有 αi≥0,得到对偶问题
maxαminw,bL(w,b,α)s.t.αi≥0,i=1,2,…,m
式 (8) 分别对 w 和 b 求偏导,得到
∇wL(w,b,α)=w–m∑i=1αiyixi
∂L(w,b,α)∂b=–m∑i=1αiyi
分别令以上两个偏导为零,得到
w=m∑i=1αiyixi
m∑i=1αiyi=0
由此式 (8) 可以进一步写为
L(w,b,α)=12wTm∑i=1αiyixi+m∑i=1αi–m∑i=1αiyiwTxi–m∑i=1αiyib=m∑i=1αi–12m∑i=1αiyiwTxi=m∑i=1αi–12m∑i=1m∑j=1αiαjyiyjxTixj
注意上式中已经消去了 L(w,b,α) 中的 w 和 b,只剩下一个参数 α,于是前述对偶问题可以写为
maxαm∑i=1αi–12m∑i=1m∑j=1αiαjyiyjxTixjs.t.m∑i=1αiyi=0,αi≥0,i=1,2,…,m.
由上面的对偶问题解出的 αi,是式 (8) 中对应样本 (xi,yi) 的拉格朗日乘子。注意原优化问题(式 (7))中有不等式,求解过程需要满足 KKT 条件,即
{αi≥01–yi(wTxi+b)≤0αi(1–yi(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|∑s∈S(ys–wTxs)=1|S|∑s∈S(ys–∑i∈SαiyixTixs)
其中 S={i|αi>0,i=1,2,…,m} 为所有支持向量的下标集合。