支持向量机SVM(3)——软间隔

支持向量机SVM——软间隔

接上一篇博客支持向量机SVM(2)——拉格朗日乘数法
前面我们的问题假设数据处于理想状态,而现实情况是数据可能是线性不可分的,或者可分但是存在噪声。对于有噪声这种情况,如果我们还是使用前面的方法,那么就会把噪声也分类,就会存在过拟合的情况。解决这个问题的一个方法就是存于我们的超平面出一点点错,这也就是“软间隔(soft margin),而前面我们所讲的就是“硬间隔”(hard margin)。
如下图所示:我们允许出现红色圈的那些点不满足约束条件yi(wTxi+b)1y_i(w^Tx_i+b)\geq1
支持向量机SVM(3)——软间隔
我们现在用loss来表示允许一点错误的损失,当yi(wTxi+b)<1y_i(w^Tx_i+b)<1不满足约束条件时,loss=1;yi(wTxi+b)1y_i(w^Tx_i+b)\geq1时满足条件时,这个时候没有错误,loss=0。这也称为0/1损失函数:
loss(z)={1if  z<10otherwiseloss(z)=\begin{cases}1,if\;z<1\\0,otherwise\end{cases}
那么我们原始的优化目标就变成了:
min(w,b)12wTw+Ci=1Nloss(yi(wTxi+b))min_{(w,b)}\frac{1}{2}w^Tw+C\sum_{i=1}^Nloss(y_i(w^Tx_i+b))
其中,C是常数。
很容易发现我们的损失函数并不连续,在后面我们求导过程中的处理会比较麻烦,这里我们会用一些其他的连续的损失函数来替代,常见的有三种替代损失函数:
hingelosshinge(z)=max(0,1z)lossexp(z)=exp(z)losslog(z)=log(1+exp(z))hinge损失:loss_{hinge}(z)=max(0,1-z)\\指数损失:loss_{exp}(z)=exp(-z)\\对率损失:loss_{log}(z)=log(1+exp(-z))
这里我们采用hinge损失,那么我们上面的优化目标就变成如下形式:
min(w,b)12wTw+Ci=1Nmax(0,1yi(wTxi+b))min_{(w,b)}\frac{1}{2}w^Tw+C\sum_{i=1}^Nmax(0,1-y_i(w^Tx_i+b))
但一般我们不写成上面这种形式,我们先引入ξi=1yi(wTxi+b)\xi_i=1-y_i(w^Tx_i+b)。当ξi\xi_i大于0时,上面的max就取ξi\xi_i;当ξi\xi_i小于0时,上面的max取0,所以我们直接添加一个约束ξi0\xi_i\geq0,然后我们原始的问题就可以写成如下形式:
{min(w,b,ξi)12wTw+Ci=1Nξis.t.yi(wTxi+b)1ξi  ξi0\begin{cases}min_{(w,b,\xi_i)}\frac{1}{2}w^Tw+C\sum_{i=1}^N\xi_i\\s.t.\quad y_i(w^Tx_i+b)\geq1-\xi_i\\\qquad\;\xi_i\geq0\end{cases}
其中ξi\xi_i也称为松弛变量。

现在我们就可以采取和硬间隔中一样的办法来求解:即先构造拉了朗日函数,然后利用对偶关系求解对偶问题,最后求导。
(不懂得可以翻看前一篇博客)
简单走一下流程:
(1)构造拉格朗日函数:
L(w,b,λ,ξ,u)=12wTw+Ci=1Nξi+i=1Nλi(1ξiyi(wTxi+b))i=1NuiξiL(w,b,\lambda,\xi,u)=\frac{1}{2}w^Tw+C\sum_{i=1}^N\xi_i+\sum_{i=1}^N\lambda_i(1-\xi_i-y_i(w^Tx_i+b))-\sum_{i=1}^Nu_i\xi_i
其中,λi0ui0\lambda_i\geq0,u_i\geq0是拉格朗日乘子。
(2)然后我们的优化问题可以写成如下形式(对w,b,ξw,b,\xi无约束):
{min(w,b,ξ)  max(λ,u)L(w,b,λ,ξ,u)s.t.λi0ui0 \begin{cases}min_{(w,b,\xi)}\;max_{(\lambda,u)}L(w,b,\lambda,\xi,u)\\ s.t. \quad \lambda_i\geq0,u_i\geq0\end{cases}
(3)利用对偶关系求其对偶问题:
{max(λ,u)  min(w,b,ξ)L(w,b,λ,ξ,u)s.t.λi0ui0 \begin{cases}max_{(\lambda,u)}\;min_{(w,b,\xi)}L(w,b,\lambda,\xi,u)\\ s.t. \quad \lambda_i\geq0,u_i\geq0\end{cases}

然后通过对w,b,ξw,b,\xi分别求偏导并令其为0,来求解min(w,b,ξ)L(w,b,λ,ξ,u)min_{(w,b,\xi)}L(w,b,\lambda,\xi,u)的最优解:
{δLδb=0    i=1Nλiyi=0δLδw=0    w=i=1NλiyixiδLδξi=0    C=λi+ui \begin{cases}\frac{\delta L}{\delta b}=0\iff\sum_{i=1}^N\lambda_iy_i=0\\\frac{\delta L}{\delta w}=0\iff w=\sum_{i=1}^N\lambda_iy_ix_i\\\frac{\delta L}{\delta \xi_i}=0\iff C=\lambda_i+u_i\end{cases}
(4)将上面对min求得的最优解代入我们的对偶问题中,可得:
{maxλ  (12i=1Nj=1NλiλjyiyjxiTxj+i=1Nλi)s.t.0λiCi=1Nλiyi=0 \begin{cases}max_{\lambda}\;(-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx^T_ix_j+\sum_{i=1}^N\lambda_i)\\ s.t. \quad 0\leq\lambda_i\leq C\\\qquad\sum_{i=1}^N\lambda_iy_i=0\end{cases}

可以看到这和我们硬间隔中得到最终优化问题唯一不同就是:软间隔0λiC0\leq\lambda_i\leq C,而硬间隔0λi0\leq\lambda_i

并且仍然满足KKT条件:
{λi(1yi(wTxi+b)ξi)=0λi0ui0yi(wTxi+b)1ξiξi0,uiξi=0 \begin{cases}\lambda_i(1- y_i(w^Tx_i+b)-\xi_i)=0\\ \lambda_i\geq0,u_i\geq0\\y_i(w^Tx_i+b)\geq1-\xi_i\\\xi_i\geq0,u_i\xi_i=0\end{cases}