了解了线性可分支持向量机及问题后,在这一篇笔记中,来了解一下对于线性不可分训练数据是如何使用支持向量机的。
线性支持向量机:
假设给定一个特征空间上的训练数据集
$$T ={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}$$
其中,$x_i in mathcal{X} = R^n, y_i in mathcal{Y} = {+1,-1},i=1,2,...,N$,$x_i$为第$i$个特征向量,$y_i$为$x_i$的类标记。再假设训练数据集不是线性可分的。通常情况是,训练数据中有一些特异点(outlier),将这些特异点除去后,剩下大部分的样本点组成的集合是线性可分的。
线性不可分意味着某些样本点$(x_i,y_i)$不能满足函数间隔大于等于1的约束条件。为了解决这个问题,可以对每个样本点$(x_i,y_i)$引进一个松弛变量$xi geq 0$,使函数间隔加上松弛变量大于等于1。这样,约束条件变为:
$$y_i(wcdot x_i + b) geq 1 - xi_i$$
同时,对每个松弛变量$xi_i$,支付一个代价$xi_i$。目标函数由原来的$frac{1}{2}||w||^2$变成了:
$$frac{1}{2}||w||^2 + Csum_{i=1}^{N}xi_i$$
这里,$C>0$称为惩罚参数,$C$值大时对误分类的惩罚增大。最小化上述新的目标函数包含两层含义:使$frac{1}{2}||w||^2$尽量小即间隔尽量大,同时使误分类点的个数尽量小,$C$是调和二者的系数。
线性不可分的线性支持向量机的学习问题变成了如下凸二次规划问题(原始问题):
$$min_{w,b,xi} frac{1}{2}||w||^2 + Csum_{i=1}^{N}xi_i$$
$$s.t. y_i(wcdot x_i + b) geq 1 - xi_i, i=1,2,...,N$$
$$xi_i geq 0, i=1,2,...,N$$
关于$(w,b,xi)$的解是存在的,可以证明$w$的解是唯一的,但$b$的解可能不唯一,而是存在于一个区间。
学习的对偶算法:
原始最优化问题的拉格朗日函数是:
$$L(w,b,xi,alpha,mu) = frac{1}{2}||w||^2 + Csum_{i=1}^{N}xi_i - sum_{i=1}^{N}alpha_i(y_i(wcdot x_i + b) - 1 + xi_i) - sum_{i=1}^{N}mu_ixi_i$$
其中,$alpha_i geq 0, mu_i geq 0$。
对偶问题是拉格朗日函数的极大极小问题。首先求$L(w,b,xi,alpha,mu)$对$w,b,xi$的极小,由:
$$igtriangledown _w L(w,b,xi,alpha,mu) = w - sum_{i=1}^{N}alpha_{i}y_{i}x_{i} = 0$$
$$igtriangledown_b L(w,b,xi,alpha,mu) = - sum_{i=1}^{N}alpha_iy_i = 0$$
$$igtriangledown_{xi_i} L(w,b,xi,alpha,mu) = C - alpha_i - mu_i = 0$$
得:
$$w = sum_{i=1}^{N}alpha_iy_ix_i$$
$$sum_{i=1}^{N}alpha_iy_i = 0$$
$$C - alpha_i - mu_i = 0$$
将上式代入拉格朗日函数得:
$$min_{w,b,xi} L(w,b,xi,alpha,mu) = - frac{1}{2}sum_{i=1}^{N}sum_{j=1}^{N}alpha_ialpha_jy_iy_j(x_icdot x_j) + sum_{i=1}^{N}alpha_i$$
再对$min_{w,b,xi}L(w,b,xi,alpha,mu)$求$alpha$的极大,即得对偶问题:
$$max_{alpha} -frac{1}{2}sum_{i=1}^{N}sum_{j=1}^{N}alpha_ialpha_jy_iy_j(x_i,x_j) + sum_{i=1}^{N}alpha_i$$
$$s.t. sum_{i=1}^{N}alpha_iy_i = 0$$
$$C - alpha_i - mu_i = 0$$
$$alpha_i geq 0$$
$$mu_i geq 0, i=1,2,...,N$$
利用等式约束$C-alpha_i - mu_i = 0$消去$mu_i$,从而只留下变量$alpha_i$,并将约束改写为:
$0 leq alpha_i leq C$
于是,原始问题得对偶问题是:
$$min_{alpha} frac{1}{2}sum_{i=1}^{N}sum_{j=1}^{N}alpha_ialpha_jy_iy_j(x_icdot x_j) - sum_{i=1}^{N}alpha_i$$
$$s.t. sum_{i=1}^{N}alpha_iy_i = 0$$
$$ 0leq alpha_i leq C, i=1,2,...,N$$
可以通过求解对偶问题而得到原始问题得解,进而确定分离超平面和决策函数。为此,就可以定理的形式叙述原始问题的最优解和对偶问题的最优解的关系。
定理:设$alpha^* = (alpha_{1}^{*},alpha_{2}^{*},...,alpha_{N}^{*})^T$是对偶问题的一个解,若存在$alpha^{*}$的一个分量$alpha_{j}^{*},0<alpha_{j}^{*}<C$,则原始问题的解$w^*,b^*$可按下式求得:
$$w^* =sum_{i=1}^{N}alpha_{i}^{*}y_ix_i$$
$$b^* = y_j - sum_{i=1}^{N}y_ialpha_i^{*}(x_icdot x_j)$$
证明:原始问题是凸二次规划问题,解满足KKT条件。即得:
$$igtriangledown _w L(w,b,xi,alpha,mu) = w - sum_{i=1}^{N}alpha_{i}y_{i}x_{i} = 0$$
$$igtriangledown_b L(w,b,xi,alpha,mu) = - sum_{i=1}^{N}alpha_iy_i = 0$$
$$igtriangledown_{xi_i} L(w,b,xi,alpha,mu) = C - alpha_i - mu_i = 0$$
$$alpha_{i}^{*}(y_i(w^{*}cdot x_i + b^{*})-1 + xi_{i}^{*}) = 0 $$
$$mu_{i}^{*}xi_{i}^{*} = 0 $$
$$y_i(w^{*}cdot x_i + b^{*}) - 1 + xi_{i}^{*} geq 0$$
$$xi_{i}^{*} geq 0$$
$$alpha_{i}^{*} geq 0$$
$$mu_{i}^{*} geq 0, i=1,2,...,N$$
从约束条件$C-alpha_i - mu_i = 0$可知$alpha_i + mu_i = C$,如果$0<alpha_{i}^{*}<C$,所以:$mu_i > 0$,又因为$mu_{i}^{*}xi_{i}^{*} = 0$,所以:$xi_{i}^{*} = 0$,再由$alpha_{i}^{*}(y_i(w^{*}cdot x_i + b^{*})-1 + xi_{i}^{*}) = 0$可知:若存在$alpha_{j}^{*},0<alpha_{j}^{*}<C$,则$y_i(w^{*}cdot x_i + b^{*})-1=0 $,因为$y_{i}^{2}=1,w^* =sum_{i=1}^{N}alpha_{i}^{*}y_ix_i$,所以:
$$b^* = y_j - sum_{i=1}^{N}y_ialpha_i^{*}(x_icdot x_j)$$
由$y_i(w^{*}cdot x_i + b^{*})-1=0 $可知,若$0<alpha_{i}^{*}<C$,则$xi_i = 0$,支持向量$x_i$恰好落在间隔边界上。
若$alpha_{i}^{*} = 0$时,则$mu_{i}^{*}=C$,因为$mu_{i}^{*}xi_{i}^{*} = 0 $,所以,$xi_{i}^{*} = 0$,因为$alpha_{i}^{*}(y_i(w^{*}cdot x_i + b^{*})-1 + xi_{i}^{*}) = 0$,所以在$alpha_{i}^{*}=0$的情况时,$y_i(w^*cdot x_i + b^*)-1 geq 0$,即这些样本点不是支持向量,对超平面无影响。
若$alpha_{i}^{*} = C$时,则$mu_{i}^{*}=C$,因为$mu_{i}^{*}xi_{i}^{*} = 0 $,所以,$xi_{i}^{*} geq 0$,因为$alpha_{i}^{*}(y_i(w^{*}cdot x_i + b^{*})-1 + xi_{i}^{*}) = 0$,所以在$alpha_{i}^{*}=C$的情况时,$y_i(w^{*}cdot x_i + b^{*})-1 leq 0$,所以:当$0<xi_i<1$,对于样本$x_i$分类正确,$x_i$落在间隔边界与分离超平面之间;当$xi_i = 1$,则$x_i$在分离超平面上;当$xi_i > 1$,则$x_i$位于分离超平面误分一侧。
支持向量:
在线性不可分的情况下,将对偶问题的解$alpha^* = (alpha_{1}^{*},alpha_{2}^{*},...,alpha_{N}^{*})^T$中对应于$alpha_{i} > 0$的样本点$(x_i,y_i)$的实例点$x_i$称为支持向量(软间隔的支持向量)