模型
在线性空间划分超平面可通过如下方程描述:
wTx+b=0(1)
其中w=(w1,w2,⋯,wd)为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。显然,划分超平面可被w,b确定,记为(w,b),样本空间中任意点x到超平面(w,b)的距离可写为
r=∣∣w∣∣∣wT+b∣(2)
假设超平面(w,b)能将训练样本正确分类,即对于(xi,yi)∈D(其中D={(x1,y1),(x2,y2),⋯,(xm,ym)},yi∈{−1,+1}),若yi=+1,则有wTxi+b>0;若yi=−1,则有wTxi+b<0。此时可令(如果超平面能将样本正确分类,总存在缩放变量使得(3)式成立)
{wTxi+b≥+1,wTxi+b≤−1,yi=+1yi=−1(3)
如下图所示,距离超平面最近的这几个训练样本点使得(3)式的等号成立,它们被称为“支持向量”,两个异类支持向量到超平面的距离之和为
γ=∣∣w∣∣2(4)
它被称为“间隔”
欲找到具有“最大间隔”的划分超平面,也就是要找到能满足(3)式约束的参数w,b使得γ最大,即
w,bmax∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,⋯,m.(5)
为了最大化间隔,仅需最大化∣∣w∣∣−1,这等价于最小化∣∣w∣∣2,于是(5)式可重写为
w,bmax21∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,⋯,m.(6)
这就是SVM的基本型。
求解
- 对偶问题
对(6)式的每条约束添加拉格朗日乘子αi≥0,则该问题的拉格朗日函数可写为
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))(7)
即我们的目标函数可表示为
w,bminαmaxL(w,b,α)(8)
满足一定条件下,等价于(注意,这个满足一定条件,是指满足KKT条件)
αmaxw,bminL(w,b,α)(9)
于是我们的整个问题转化为
1.L(w,b,α)对w,b求最小
2.再对α 求最大。
至于第一步,令L(w,b,α)对w,b求偏导为0可得
w=i=1∑mαiyixi(10)
0=i=1∑mαiyi(11)
将(10)(11)式带入(7)式,即可将w,b消去,便可得到(6)式的对偶式
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t.i=1∑mαiyi=0,αi≥0,i=1,2,⋯,m.(12)
- KKT条件
以上转换过程中的KKT条件为
⎩⎪⎨⎪⎧αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0(13)
于是,对任意训练样本(xi,yi),总有αi=0或yif(xi)=1。若αi=0,则该样本将不会对f(x)有任何影响;若αi>0,则必有yif(xi)=1,则所对应的样本点位于最大间隔边界上,是一个支持向量。
以上显示了SVM的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。
- SMO
核函数
与LR对比
参考:
机器学习(西瓜书)
https://blog.csdn.net/b285795298/article/details/81977271