支持向量机的软间隔最大化

背景

线性可分支持向量机 的基础上,我们考虑以下图这个情况:

支持向量机的软间隔最大化

图中有两个超平面红色线和黑色线。红色的超平面使得模型有更好的泛化效果。但是由于蓝色A异常点的存在,使得SVM模型学到的是黑色的超平面,这会影响到模型的预测效果。

更极端的情况是假设在B处有一蓝色的异常点,就会使得数据变成线性不可分。

为了解决这个问题,SVM引入软间隔最大化的方法来解决。

软间隔最大化

回顾线性可分SVM的硬间隔最大化条件
minw,b12w2s.t.   yi(wxi+b)1,i=1,2,,N \begin{aligned}&\min_{w,b}\frac{1}{2}||w||^2\\&s.t.\ \ \ y_i(w\cdot x_i+b)\geq 1, \quad i=1,2,\dots,N \\\end{aligned}

线性不可分意味着某些样本点(xi,yi)(x_i,y_i) 不能满足函数间隔大于等于1得约束条件,软间隔最大化的思想时:允许部分点位于间隔内部,这些点到超平面的距离小于1。如下图所示:

支持向量机的软间隔最大化

所以,引入一个loss:

yi(wxi+b)1,loss=0y_i(wx_i+b) \geq 1,\quad loss=0

yi(wxi+b)<1,loss=1yi(wxi+b)y_i(wx_i+b) < 1,\quad loss=1-y_i(wx_i+b)

即:
loss=max{0,1yi(wTxi+b)} loss = max\{0,1-y_i(w^Tx_i+b)\}

所以,对每一个样本点(xi,yi)(x_i,y_i)引入ξi\xi_i, ξi=1yi(wTxi+b),ξi0\xi_i = 1-y_i(w^Tx_i+b), \quad \xi_i \geq 0

说明:

(1)当样本点满足yi(wxi+b)1y_i(wx_i+b) \geq 1时,ξi=0\xi_i=0

(2)当样本点 yi(wxi+b)<1y_i(wx_i+b) <1 时,即样本点位于间隔内部, ξi=1yi(wTxi+b)\xi_i = 1-y_i(w^Tx_i+b) 表示样本点到边界H1H_1(或H2H_2)的距离。

这样ξi\xi_i 就可以起到和loss一样的效果。

所以,在最小化最大距离时,同时也要最小化这个ξi\xi_i (让位于间隔内部的点尽量的靠近边界),目标函数由原来的12w2\frac{1}{2}||w||^2 变成:
12w2+Ci=1Nξi \frac{1}{2}||w||^2 + C\sum_{i=1}^N\xi_i
这里的C>0C>0 称为惩罚系数。C值越大对误分类的惩罚越大,C值越小对误分类的惩罚越小。

因为$\xi_i $ 表示样本点(xi,yi)(x_i,y_i) 到边界H1H_1(或H2H_2)的距离,所以样本点到超平面的距离就变成了1ξi1-\xi_i 。这样约束条件变为:
yi(wxi+b)1ξi,i=1,2,,N y_i(w\cdot x_i+b)\geq 1-\xi_i, \quad i=1,2,\dots,N
所以,线性不可分支持向量机的学习问题变成了如下的凸二次规化问题(原始问题):
minw,b12w2+Ci=1Nξis.t.   yi(wxi+b)1ξi,i=1,2,,Nξi0 \begin{aligned}&\min_{w,b}\frac{1}{2}||w||^2 +C\sum_{i=1}^N\xi_i\\&s.t.\ \ \ y_i(w\cdot x_i+b)\geq 1-\xi_i, \quad i=1,2,\dots,N\\ &\qquad \xi_i \geq 0 \end{aligned}

学习的对偶算法

和线性可分SVM的优化方式类似,首先将软间隔最大化的约束问题用拉格朗日函数转化为无约束问题如下:
L(w,b,ξ,α,μ)=12w2+Ci=1Nξi+i=1Nαi[1ξiyi(wTxi+b)]+i=1Nμi(ξi) L(w,b,\xi,\alpha,\mu) = \frac{1}{2}||w||^2 +C\sum\limits_{i=1}^{N}\xi_i + \sum\limits_{i=1}^{N}\alpha_i[1 - \xi_i - y_i(w^T x_i +b)] + \sum\limits_{i=1}^{N}\mu_i(-\xi_i)
其中αi0μi0\alpha_i \geq 0,\mu_i \geq 0 均为拉格朗日乘子。于是要优化的目标函数等价为:
minw,b,ξ  maxαi0,  μi0L(w,b,α,ξ,μ) \min\limits_{w,b,\xi} \;\max\limits_{\alpha_i \geq 0, \;\mu_i \geq 0} L(w,b,\alpha, \xi,\mu)
其对偶问题为:
maxαi0,  μi0  minw,b,ξL(w,b,α,ξ,μ) \max\limits_{\alpha_i \geq 0, \;\mu_i \geq 0}\;\min\limits_{w,b,\xi} L(w,b,\alpha, \xi,\mu)
首先是优化函数的w,b,ξw, b, \xi求极小值,对变量求偏导得:
Lw=0  w=i=1Nαiyixi \frac{\partial L}{\partial w} = 0 \;\Rightarrow w = \sum\limits_{i=1}^{N}\alpha_iy_ix_i

Lb=0  i=1Nαiyi=0 \frac{\partial L}{\partial b} = 0 \;\Rightarrow \sum\limits_{i=1}^{N}\alpha_iy_i = 0

Lξi=0  Cαiμi=0 \frac{\partial L}{\partial \xi_i} = 0 \;\Rightarrow C- \alpha_i - \mu_i = 0

将求导结果代入拉格朗日函数得到:
L(w,b,ξ,α,μ)=12w2+Ci=1Nξi+i=1Nαi[1ξiyi(wTxi+b)]+i=1Nμi(ξi) =12w2i=1Nαi[yi(wTxi+b)1+ξi]+i=1Nαiξi=12w2i=1Nαi[yi(wTxi+b)1]=12wTwi=1NαiyiwTxii=1Nαiyib+i=1Nαi=12wTi=1Nαiyixii=1NαiyiwTxii=1Nαiyib+i=1Nαi=12wTi=1NαiyixiwTi=1Nαiyixii=1Nαiyib+i=1Nαi=12wTi=1Nαiyixii=1Nαiyib+i=1Nαi=12wTi=1Nαiyixibi=1Nαiyi+i=1Nαi=12(i=1Nαiyixi)T(i=1Nαiyixi)bi=1Nαiyi+i=1Nαi=12i=1NαiyixiTi=1Nαiyixibi=1Nαiyi+i=1Nαi=12i=1NαiyixiTi=1Nαiyixi+i=1Nαi=12i=1Nj=1NαiyixiTαjyjxj+i=1Nαi=i=1Nαi12i=1Nj=1NαiαjyiyjxiTxj \begin{aligned} L(w,b,\xi,\alpha,\mu) & = \frac{1}{2}||w||^2 +C\sum\limits_{i=1}^{N}\xi_i + \sum\limits_{i=1}^{N}\alpha_i[1 - \xi_i - y_i(w^T x_i +b)] + \sum\limits_{i=1}^{N}\mu_i(-\xi_i)  \\&= \frac{1}{2}||w||^2 - \sum\limits_{i=1}^{N}\alpha_i[y_i(w^Tx_i + b) - 1 + \xi_i] + \sum\limits_{i=1}^{N}\alpha_i\xi_i \\& = \frac{1}{2}||w||^2 - \sum\limits_{i=1}^{N}\alpha_i[y_i(w^Tx_i + b) - 1] \\& = \frac{1}{2}w^Tw-\sum\limits_{i=1}^{N}\alpha_iy_iw^Tx_i - \sum\limits_{i=1}^{N}\alpha_iy_ib + \sum\limits_{i=1}^{N}\alpha_i \\& = \frac{1}{2}w^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i -\sum\limits_{i=1}^{N}\alpha_iy_iw^Tx_i - \sum\limits_{i=1}^{N}\alpha_iy_ib + \sum\limits_{i=1}^{N}\alpha_i \\& = \frac{1}{2}w^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i - w^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i - \sum\limits_{i=1}^{N}\alpha_iy_ib + \sum\limits_{i=1}^{N}\alpha_i \\& = - \frac{1}{2}w^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i - \sum\limits_{i=1}^{N}\alpha_iy_ib + \sum\limits_{i=1}^{N}\alpha_i \\& = - \frac{1}{2}w^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i - b\sum\limits_{i=1}^{N}\alpha_iy_i + \sum\limits_{i=1}^{N}\alpha_i \\& = -\frac{1}{2}(\sum\limits_{i=1}^{N}\alpha_iy_ix_i)^T(\sum\limits_{i=1}^{N}\alpha_iy_ix_i) - b\sum\limits_{i=1}^{N}\alpha_iy_i + \sum\limits_{i=1}^{N}\alpha_i \\& = -\frac{1}{2}\sum\limits_{i=1}^{N}\alpha_iy_ix_i^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i - b\sum\limits_{i=1}^{N}\alpha_iy_i + \sum\limits_{i=1}^{N}\alpha_i \\& = -\frac{1}{2}\sum\limits_{i=1}^{N}\alpha_iy_ix_i^T\sum\limits_{i=1}^{N}\alpha_iy_ix_i + \sum\limits_{i=1}^{N}\alpha_i \\& = -\frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^N\alpha_iy_ix_i^T\alpha_jy_jx_j + \sum\limits_{i=1}^{N}\alpha_i \\& = \sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_jx_i^Tx_j \end{aligned}
所以最后计算结果和线性可分的SVM也一样,唯一不同的只是约束条件。

继续对式子求极大:
maxαi=1Nαi12i=1,j=1NαiαjyiyjxiTxjs.t.    i=1Nαiyi=0Cαiμi=0αi0  (i=1,2,...,m)μi0  (i=1,2,...,m) \max \limits_{\alpha} \quad \sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{N}\alpha_i\alpha_jy_iy_jx_i^Tx_j \\ s.t. \;\; \sum\limits_{i=1}^{N}\alpha_iy_i = 0\\ C- \alpha_i - \mu_i = 0\\ \alpha_i \geq 0 \;(i =1,2,...,m) \\ \mu_i \geq 0 \;(i =1,2,...,m)
对于Cαiμi=0αi0μi0C- \alpha_i - \mu_i = 0 , \alpha_i \geq 0 ,\mu_i \geq 0有:
Cαi=μi0Cαi0αiC \begin{aligned} &C- \alpha_i = \mu_i \ge 0 \\ &\Rightarrow \quad C \ge \alpha_i\\ &\Rightarrow 0 \le \alpha_i \le C \end{aligned}
基于上面的条件0αiC0 \le \alpha_i \le C,同时将目标函数变号求极小值,得到:
maxαi=1Nαi12i=1,j=1NαiαjyiyjxiTxjs.t.    i=1Nαiyi=00αiC \max \limits_{\alpha} \quad \sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{N}\alpha_i\alpha_jy_iy_jx_i^Tx_j \\ s.t. \;\; \sum\limits_{i=1}^{N}\alpha_iy_i = 0\\ 0 \le \alpha_i \le C
上面的式子就是软间隔最大化SVM的优化目标,与硬间隔SVM相比,约束条件中的0αi0 \le \alpha_i变为0αiC0 \le \alpha_i \le C。这样的问题同样可以使用SMO算法求极小值,进而求出w,b。

学习算法

输入:训练数据集T={(x1,y1),(x2,y2),,(xN,yN)},T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\},

​ 其中,xiX=Rn,yiY={1,+1},i=1,2,,N;  0<η1x_i\in \mathcal X=\mathbf R^n , y_i\in \mathcal Y\it =\{-1,+1\}, i=1,2,\dots,N; \ \ 0<\eta\leqslant 1
输出:分离超平面和分类决策函数

(1)选择惩罚参数C>0C>0 ,构造并求解凸二次规划问题
maxαi=1Nαi12i=1,j=1NαiαjyiyjxiTxjs.t.    i=1Nαiyi=00αiC \max \limits_{\alpha} \quad\sum\limits_{i=1}^{N}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{N}\alpha_i\alpha_jy_iy_jx_i^Tx_j \\s.t. \;\; \sum\limits_{i=1}^{N}\alpha_iy_i = 0\\0 \le \alpha_i \le C
采用SMO算法求得最优解α=(α1,α2,αN)T\alpha^* = (\alpha_1^*,\alpha_2^*,\ldots\alpha_N^*)^T

(2)计算w=i=1Nαiyixiw^* = \sum_{i=1}^N \alpha_i^*y_ix_i

(3)找到所有的S个支持向量(xs,ys)(x_s,y_s),计算:
bs=ys(w)Txs=ysi=1mαiyixiTxs b^*_s = y_s - (w^*)^Tx_s = y_s -\sum\limits_{i=1}^{m}\alpha_i^{*}y_ix_i^Tx_s
最终得到:
b=1Si=1Sbs b^{*} = \frac{1}{S}\sum\limits_{i=1}^{S}b_s^{*}
(4) 得到划分超平面与决策函数:
wTx+b=0f(x)=sign(wTx+b) w^{*T}x+b^* = 0 \\ f(x) = sign(w^{*T} x + b^{*})

软间隔最大化的支持向量

硬间隔最大化SVM,所有满足αi>0\alpha_{i}^{*}\gt0的样本ii即为支持向量。对于软间隔最大化的SVM,由于引入了松弛变量ξi\xi_i,支持向量的判断稍微复杂一些。

如下图所示,ξiw2\frac{\xi_i}{||w||_2} 表示实例$x_i $到间隔边界的距离。

支持向量机的软间隔最大化

软间隔支持向量xix_i分布在间隔边界上和间隔边界内,还可能在分离超平面误分类的一侧,具体说明如下:

(1) 如果 αi=0\alpha_i = 0,那么该样本的约束无效,可能在间隔边界上或者已经被正确分类。如图中所有远离间隔边界的点。

(2) 如果0<αi<C0 \lt \alpha_i \lt C,且ξi=0,    yi(wTxi+b)1=0\xi_i = 0 ,\;\; y_i(w^Tx_i + b) - 1 = 0,即点在间隔边界上(蓝框部分)。

(3) 如果 αi=C\alpha_i = C,说明这是一个可能比较异常的点,需要检查此时ξi\xi_i

  • 如果0<ξi<10 <\xi_i < 1,那么点被正确分类,点位于间隔边界和超平面之间(黄框部分)。

  • 如果ξi=1\xi_i =1,那么点在分离超平面上。

  • 如果ξi>1\xi_i \gt 1,那么点在超平面的误分类一侧(红框部分)。