(1)Recall
之前分析到SVM的模型为:
egin{align}mathop{min}&quad frac{1}{2}w^prime w
onumber\mathop{s.t}&quad y_i(x_i^prime w+b)geq 1, i=1,2,cdots,mlabel{model:SVM}end{align}
利用Lagrange乘子法转化为对偶问题:
egin{align}mathop{max}&quad heta(alpha)=sum_{i}alpha_i-frac{1}{2}sum_isum_j alpha_ialpha_jy_iy_jlangle x_i,x_j
angle
onumber\mathop{s.t}&quad sum_ialpha_iy_i=0
onumber\&quad alpha geq 0label{model:SVMDual}end{align}
但上诉模型只能用于解决线性可分的情况,当训练集为线性不可分时其分类的效果非常差,故引入Soft Margin SVM。
(2)Soft SVM
Soft Margin SVM的关键点是引入松弛变量(Slack variable),将上述严格的限制条件变为$y_i(x_i^prime w+b)geq 1-xi_i, (xi_igeq 0)$,使某些数据点可以处于间隔內,甚至允许有错误的点,但与此相应付出一定的惩罚$Cxi_i$。故目标函数变为:
egin{equation*}mathop{min}quad frac{1}{2}w^prime w+Csum_{i=1}^mxi_iend{equation*}
其中$C$叫做惩罚因子。于是Soft Margin SVM的模型为:
egin{align}mathop{min}&quad frac{1}{2}w^prime w+Csum_{i=1}^mxi_i onumber\mathop{s.t.}&quad y_i(x_i^prime w+b)geq 1-xi_i onumber\&quad xi_igeq 0Longrightarrow -xi_i leq 0label{model:SoftSVM}end{align}
其对应的Lagrange函数:
egin{equation}L(w,xi,alpha,gamma,b)=frac{1}{2}w^prime w+Csum_{i=1}^mxi_i+sum_{i=1}^malpha_i[1-xi_i-y_i(x_i^prime w+b)]-sum_{i=1}^mgamma_ixi_ilabel{equ:lagrange}end{equation}
对Lagrange函数求导:
egin{equation}frac{partial L}{partial w}=w-sum_{i=1}^malpha_iy_ix_i=0Longrightarrow w=sum_{i=1}^malpha_iy_ix_ilabel{equ:derivativew}end{equation}
egin{equation}frac{partial L}{partial b}=sum_{i=1}^malpha_iy_i=0Longrightarrow sum_{i=1}^malpha_iy_i=0label{equ:derivativeb}end{equation}
egin{equation}frac{partial L}{partialxi}=C-alpha-gamma=0Longrightarrow alpha_i=C-gamma_i,forall ilabel{equ:derivativexi}end{equation}
将式子 ef{equ:derivativew}, ef{equ:derivativeb}, ef{equ:derivativexi}代入$L(w,xi,alpha,gamma,b)$中得到:
egin{equation} heta(alpha,gamma)=sum_{i=1}^m alpha_i-frac{1}{2}sum_{i,j=1}^malpha_ialpha_jy_iy_jlangle x_i,x_j
anglelabel{equ:softSVMObjection}end{equation}
虽然soft SVM对偶问题的目标函数(式子
ef{equ:softSVMObjection})与SVM的对偶形同,当它们的限制条件不同。Soft SVM对偶问题模型为:
egin{align}mathop{max}&quad heta(alpha,gamma)=sum_{i=1}^malpha_i-frac{1}{2}sum_{i,j=1}^malpha_ialpha_jy_iy_jlangle x_i,x_j angle onumber\mathop{s.t.}&quadsum_{i=1}^malpha_iy_i=0 onumber\&quadalpha_i=C-gamma_iLongrightarrow 0leqalpha_ileq Clabel{model:SoftSVMDual}end{align}
模型 ef{model:SoftSVMDual}可以用我们下一节将要总结的SMO算法求解。现在,我们来分析一下Soft SVM。
KKT dual-complementarily条件为:
egin{equation*}left{egin{array}&alpha_i[1-xi_i-y_i(x_i^prime w+b)]=0\gamma_ixi_i=0end{array} ight.end{equation*}
1)当$alpha_i=0$时,$y_i(x_i^prime w+b)geq 1-xi_i$,
由$alpha_i=C-gamma_iLongrightarrow C=gamma_i eq 0Longrightarrow xi_i=0Longrightarrow y_i(x_i^prime w+b)geq 1$.
2)当$alpha_i=C$时,$y_i(x_i^prime w+b)=1-xi_i$,
由$alpha_i=C-gamma_iLongrightarrowgamma_i=0Longrightarrowxi_igeq 0Longrightarrow y_i(x_i^prime w+b)=1-xi_ileq 1$.
3)当$0<alpha_i<C$时,$y_i(x_i^prime w+b)=1-xi_i$,
由$alpha_i=C-gamma_iLongrightarrow gamma_i eq 0Longrightarrow xi_i=0Longrightarrow y_i(x_i^prime w+b)=1$
综上所述,可得:
egin{equation*}left{egin{array}&alpha_i=0Longrightarrow y_i(x_i^prime w+b)geq 1Longleftrightarrow xi_i=0\alpha_i=CLongrightarrow y_i(x_i^prime w+b)leq 1Longleftrightarrow xi_igeq 0\0<alpha_i<CLongrightarrow y_i(x_i^prime w+b)=1Longleftrightarrow xi_i=0end{array} ight.end{equation*}
从上面的式子可以看出,当$alpha_i=0$时,对应的应该是两条间隔线外并且结果正确的点;当$alpha_i=C$时,对应的应该是两条间隔线内以及结果错误的点;当$0<alpha_i<C$时,对应的是两条间隔线上的点。故此时的支撑向量(support vectors)应包括两种数据点:a) 两条线内以及结果错误的点;b) 两条间隔线上的点。从$xi_i$的取值可以看出只有在两条间隔线内以及结果错误的点才会受到惩罚,并结果错误的点所遭受的惩罚更大。
现在,我们从图形上直观的看$xi_i$的几何意义。由于$xi_igeq 1-y_i(x_i^prime w+b)$且$xi_igeq 0$,故$xi_i=mathop{max}{0,1-y_i(x_i^prime w+b)}$
- 当$y_i(x_i^prime w+b)>1$时,对应图中C,D点,此时$1-y_i(x_i^prime w+b)<0$,故$xi_i=0$,即不受惩罚。
- 当$y_i(x_i^prime w+b)=1$时,对应图中E,G点,此时$1-y_i(x_i^prime w+b)=0$,故$xi_i=0$,即不受惩罚。
- 当$0<y_i(x_i^prime w+b)<1$时,对应图中A,H点(分类正确,但在间隔线内),此时$0<1-y_i(x_i^prime w+b)<1$,故$xi_i=1-y_i(x_i^prime w+b)$,遭受0到1之间的惩罚,在图中表示为到相应支撑线的距离(A点到直线2的距离,H点到直线3的距离)。
- 当$y_i(x_i^prime w+b)=0$时,对应图中的F点(在直线1上),此时$xi_i=1$,遭受惩罚1,表示距图中直线1或者直线2的距离。
- 当$y_i(x_i^prime w+b)<0$时,对应图中的B,I点(分类结果错误),此时$1-y_i(x_i^prime w+b)>1$,故$xi_i>1$,遭受大于1的惩罚,在图中表示到相应支撑线的距离(B点到直线3的距离,I点到直线2的距离)。
故目标函数中$Csum_{i=1}^mxi_i$可用于表示置信的风险,而$frac{1}{2}w^prime w$用于表示间隔的大小(越小表示间隔越大,分类的效果越好),而$C$的取值则用于权衡二者的比重。