在前面的讨论中,我们一直做了一个假定,即存在一个超平面能够将不同类的样本完全进行区分。但这个假定显然是比较绝对的,因此我们需要允许算法分类的一些样本出错,这就是“软间隔”。
前面我们提出的约束为
{ w T x i + b ≥ 1 y i = + 1 w T x i + b ≤ − 1 y i = − 1 (4) \begin{cases} w^Tx_i+b\geq 1 & y_i=+1\\ w^Tx_i+b\leq -1 &y_i=-1 \tag{4} \end{cases} {wTxi+b≥1wTxi+b≤−1yi=+1yi=−1(4)
这里的含义是指所有的样本点均划分正确,称为硬间隔。
我们将其归纳为 s . t . y i ( w T x i + b ) ≥ 1 s.t. \quad y_i(w^Tx_i+b)\geq 1 s.t.yi(wTxi+b)≥1
我们将目标函数进行修改,使得在最大化间隔的同时,使得不满足约束的样本尽可能的少
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m l 0 / 1 ( y i ( w T x i + b ) − 1 ) (21) \min_{w,b}\frac{1}{2}\mid \mid w\mid\mid^2+C\sum^m_{i=1}l_{0/1}(y_i(w^Tx_i+b)-1)\tag{21} w,bmin21∣∣w∣∣2+Ci=1∑ml0/1(yi(wTxi+b)−1)(21)
其中,C为惩罚常数, l 0 / 1 l_{0/1} l0/1为损失函数,当样本分类正确,则z值为0,否则为1
l 0 / 1 ( z ) = { 1 i f z < 0 0 o t h e r w i s e (22) l_{0/1}(z)=\begin{cases} 1 & if \quad z<0\\ 0&otherwise \tag{22} \end{cases} l0/1(z)={10ifz<0otherwise(22)
当C为无穷大时,式(21)就会迫使所有样本满足约束条件,目标函数就会退化为之前的硬间隔,但当C取有限值时,算法会允许一些样本不满足约束条件。
但 l 0 / 1 l_{0/1} l0/1这个损失函数非凸不连续,因此我们寻找替代函数,如hinge损失
l h i n g e ( z ) = max ( 0 , 1 − z ) l_{hinge(z)}=\max(0,1-z) lhinge(z)=max(0,1−z)
则式(21)变为
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m max ( 0 , 1 − y i ( w T x i + b ) ) (23) \min_{w,b}\frac{1}{2}\mid \mid w\mid\mid^2+C\sum^m_{i=1}\max(0,1-y_i(w^Tx_i+b))\tag{23} w,bmin21∣∣w∣∣2+Ci=1∑mmax(0,1−yi(wTxi+b))(23)
使式子更加简约,我们引入松弛变量
令 ξ i = max ( 0 , 1 − y i ( w T x i + b ) ) ≥ 0 \xi_i=\max(0,1-y_i(w^Tx_i+b)) \geq 0 ξi=max(0,1−yi(wTxi+b))≥0
因此, ξ i ≥ 1 − y i ( w T x i + b ) \xi_i\geq1-y_i(w^Tx_i+b) ξi≥1−yi(wTxi+b)
整合一下即为
min w , b , ξ i 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i ξ i ≥ 0 , i = 1 , 2 , . . . , m (24) \min_{w,b,\xi_i}\frac{1}{2}\mid \mid w\mid\mid^2+C\sum^m_{i=1}\xi_i\\ s.t.\quad y_i(w^Tx_i+b)\geq 1-\xi_i\\ \quad\quad\xi_i\geq 0,i=1,2,...,m \tag{24} w,b,ξimin21∣∣w∣∣2+Ci=1∑mξis.t.yi(wTxi+b)≥1−ξiξi≥0,i=1,2,...,m(24)
继续寻找其对偶问题求解
其拉格朗日函数( α , μ \alpha,\mu α,μ为乘子)为
L ( w , b , α , ξ , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i + ∑ i = 1 m α i ( 1 − ξ i − y i ( w T x i + b ) ) − ∑ i = 1 m μ i ξ i (25) L(w,b,\alpha,\xi,\mu)=\frac{1}{2}\mid \mid w\mid\mid^2+C\sum^m_{i=1}\xi_i+\sum^m_{i=1}\alpha_i(1-\xi_i-y_i(w^Tx_i+b))\\ -\sum^m_{i=1}\mu_i\xi_i\tag{25} L(w,b,α,ξ,μ)=21∣∣w∣∣2+Ci=1∑mξi+i=1∑mαi(1−ξi−yi(wTxi+b))−i=1∑mμiξi(25)
为了求拉格朗日函数关于自变量的最小值,我们分别对 ( w , b , ξ i ) (w,b,\xi_i) (w,b,ξi)求偏导
l ∂ w = w − ∑ i = 1 m α i y i x i l ∂ b = − ∑ i = 1 m α i y i l ∂ ξ i = C − α i − μ i \frac{l}{\partial w}=w-\sum^m_{i=1}\alpha_iy_ix_i\\\ \frac{l}{\partial b}=-\sum^m_{i=1}\alpha_iy_i\\ \frac{l}{\partial \xi_i}=C-\alpha_i-\mu_i ∂wl=w−i=1∑mαiyixi ∂bl=−i=1∑mαiyi∂ξil=C−αi−μi
使他们都为0,可得到
{ w = ∑ i = 1 m α i y i x i ∑ i = 1 m α i y i = 0 α i + μ i = C (26) \begin{cases} w=\sum^m_{i=1}\alpha_iy_ix_i\\ \sum^m_{i=1}\alpha_iy_i=0\\ \alpha_i+\mu_i=C \tag{26} \end{cases} ⎩ ⎨ ⎧w=∑i=1mαiyixi∑i=1mαiyi=0αi+μi=C(26)
将其带入式(25)即可得到对偶问题
max α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j s . t . ∑ i = 1 m α i y i = 0 C ≥ α i ≥ 0 , i = 1 , 2 , . . . , m (27) \max_{\alpha}\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\\ \quad\quad\quad\quad C\geq \alpha_i\geq 0,i=1,2,...,m \tag{27} αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t.i=1∑mαiyi=0C≥αi≥0,i=1,2,...,m(27)
对比一下硬间隔的对偶问题
max ( ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j ) s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 , i = 1 , 2... , m (17) \qquad \qquad\max(\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_iy_jx_i^Tx_j)\\ s.t.\quad \sum_{i=1}^m\alpha_i y_i=0\\ \quad \quad \quad \quad \quad\quad \alpha_i \geq 0,i=1,2...,m \tag{17} max(i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj)s.t.i=1∑mαiyi=0αi≥0,i=1,2...,m(17)
可以发现,区别主要在于 α \alpha α的取值
接下来给出KKT条件
{ 1 − ξ i − y i ( w T x i + b ) ≤ 0 α i ( 1 − ξ i − y i ( w T x i + b ) ) = 0 ξ i ≥ 0 α i ≥ 0 μ i ≥ 0 μ i ξ i = 0 (28) \begin{cases} 1-\xi_i-y_i(w^Tx_i+b)\leq 0\\ \alpha_i(1-\xi_i-y_i(w^Tx_i+b))=0\\ \xi_i\geq 0\\ \alpha_i\geq0\\ \mu_i\geq0\\ \mu_i\xi_i=0 \tag{28} \end{cases} ⎩ ⎨ ⎧1−ξi−yi(wTxi+b)≤0αi(1−ξi−yi(wTxi+b))=0ξi≥0αi≥0μi≥0μiξi=0(28)
=>
{ 1 − ξ i − y i f ( x i ) ≤ 0 α i ( 1 − ξ i − y i f ( x i ) ) = 0 ξ i ≥ 0 α i ≥ 0 μ i ≥ 0 μ i ξ i = 0 (29) \begin{cases} 1-\xi_i-y_if(x_i)\leq 0\\ \alpha_i(1-\xi_i-y_if(x_i))=0\\ \xi_i\geq 0\\ \alpha_i\geq0\\ \mu_i\geq0\\ \mu_i\xi_i=0 \tag{29} \end{cases} ⎩ ⎨ ⎧1−ξi−yif(xi)≤0αi(1−ξi−yif(xi))=0ξi≥0αi≥0μi≥0μiξi=0(29)
对于任意样本,总有 α i = 0 \alpha_i=0 αi=0 or 1 − ξ i − y i f ( x i ) = 0 1-\xi_i-y_if(x_i)=0 1−ξi−yif(xi)=0