SVM

模型

在线性空间划分超平面可通过如下方程描述:
wTx+b=0(1) w^Tx+b=0\tag{1}
其中w=(w1,w2,,wd)w=(w_1,w_2,\cdots,w_d)为法向量,决定了超平面的方向;bb为位移项,决定了超平面与原点之间的距离。显然,划分超平面可被w,bw,b确定,记为(w,b)(w,b),样本空间中任意点xx到超平面(w,b)(w,b)的距离可写为
r=wT+bw(2) r=\frac{|w^T+b|}{||w||}\tag{2}
假设超平面(w,b)(w,b)能将训练样本正确分类,即对于(xi,yi)D(x_i,y_i)\in D(其中D={(x1,y1),(x2,y2),,(xm,ym)},yi{1,+1}D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)\},y_i \in\{-1,+1\}),若yi=+1y_i=+1,则有wTxi+b>0w^Tx_i+b>0;若yi=1y_i=-1,则有wTxi+b<0w^Tx_i+b<0。此时可令(如果超平面能将样本正确分类,总存在缩放变量使得(3)式成立)
{wTxi+b+1,yi=+1wTxi+b1,yi=1(3) \begin{cases} w^Tx_i+b\geq+1, & y_i=+1\\ w^Tx_i+b\leq-1, & y_i=-1\\ \end{cases}\tag{3}
如下图所示,距离超平面最近的这几个训练样本点使得(3)式的等号成立,它们被称为“支持向量”,两个异类支持向量到超平面的距离之和为
γ=2w(4) \gamma=\frac{2}{||w||}\tag{4}
它被称为“间隔”
SVM
欲找到具有“最大间隔”的划分超平面,也就是要找到能满足(3)式约束的参数w,bw,b使得γ\gamma最大,即
maxw,b2ws.t.yi(wTxi+b)1,i=1,2,,m.(5) \underset{w,b}{max}\quad \frac{2}{||w||}\\ \quad \\ s.t.\quad y_i(w^Tx_i+b)\geq1,i=1,2,\cdots,m. \tag{5}
为了最大化间隔,仅需最大化w1||w||^{-1},这等价于最小化w2||w||^2,于是(5)式可重写为
maxw,b12w2s.t.yi(wTxi+b)1,i=1,2,,m.(6) \underset{w,b}{max}\quad \frac{1}{2}||w||^2\\ \quad \\ s.t.\quad y_i(w^Tx_i+b)\geq1,i=1,2,\cdots,m. \tag{6}
这就是SVM的基本型。

求解

  • 对偶问题
    对(6)式的每条约束添加拉格朗日乘子αi0\alpha_i\geq0,则该问题的拉格朗日函数可写为
    L(w,b,α)=12w2+i=1mαi(1yi(wTxi+b))(7) L(w,b,\alpha)=\frac{1}{2}||w||^2+\sum^{m}_{i=1}\alpha_i(1-y_i(w^Tx_i+b))\tag{7}
    即我们的目标函数可表示为
    minw,bmaxαL(w,b,α)(8) \underset{w,b}{min}\underset{\alpha}{max}\quad L(w,b,\alpha)\tag{8}
    满足一定条件下,等价于(注意,这个满足一定条件,是指满足KKT条件)
    maxαminw,bL(w,b,α)(9) \underset{\alpha}{max}\underset{w,b}{min}\quad L(w,b,\alpha)\tag{9}
    于是我们的整个问题转化为
    1.L(w,b,α)L(w,b,\alpha)w,bw,b求最小
    2.再对α\alpha 求最大。
    至于第一步,令L(w,b,α)L(w,b,\alpha)w,bw,b求偏导为0可得
    w=i=1mαiyixi(10) w=\sum^{m}_{i=1}\alpha_iy_ix_i\tag{10}
    0=i=1mαiyi(11) 0=\sum^{m}_{i=1}\alpha_iy_i\tag{11}
    将(10)(11)式带入(7)式,即可将w,bw,b消去,便可得到(6)式的对偶式
    maxαi=1mαi12i=1mj=1mαiαjyiyjxiTxjs.t.i=1mαiyi=0,αi0,i=1,2,,m.(12) \underset{\alpha}{max}\quad \sum^{m}_{i=1}\alpha_i-\frac{1}{2}\sum^{m}_{i=1}\sum^{m}_{j=1}\alpha_i\alpha_jy_iy_jx_i^Tx_j\\ s.t.\quad \sum^{m}_{i=1}\alpha_iy_i=0,\\ \alpha_i\geq0,\quad i=1,2,\cdots,m.\tag{12}
  • KKT条件
    以上转换过程中的KKT条件为
    {αi0yif(xi)10αi(yif(xi)1)=0(13) \begin{cases} \alpha_i\geq0\\ y_if(x_i)-1\geq0\\ \alpha_i(y_if(x_i)-1)=0\\ \end{cases}\tag{13}
    于是,对任意训练样本(xi,yi)(x_i,y_i),总有αi=0\alpha_i=0yif(xi)=1y_if(x_i)=1。若αi=0\alpha_i=0,则该样本将不会对f(x)f(x)有任何影响;若αi>0\alpha_i>0,则必有yif(xi)=1y_if(x_i)=1,则所对应的样本点位于最大间隔边界上,是一个支持向量。
    以上显示了SVM的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关
  • SMO

核函数

与LR对比

参考:
机器学习(西瓜书)
https://blog.csdn.net/b285795298/article/details/81977271