0


最全面的SVM介绍(从拉格朗日对偶到SMO算法)

  SVM主要用来处理二分类问题,其也可用以用来解决多分类问题与回归问题,只不过不常用。其目标是找到一个最优的分隔平面,来使得不同类别之间的距离最大化。核心思想是将问题转化成凸二次规划求解的问题。

一、拉格朗日对偶变换

  想要搞清楚SVM问题是如何进行转化的,首先就要搞清楚什么是拉格朗日对偶变换,我们这里简要的叙述一下。其核心思想是将求解最优问题转化成为相对容易求解的问题。

原始问题
假设我们研究的优化问题如下:

    M
   
   
    i
   
   
    n
   
   
    i
   
   
    m
   
   
    i
   
   
    z
   
   
    e
   
   
    
     f
    
    
     0
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   Minimizef_0(x)
  
 
Minimizef0​(x)


 
  
   
    s
   
   
    .
   
   
    t
   
   
    .
   
   
   
    
     f
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
   
    ≤
   
   
    0
   
   
   
   
    i
   
   
    =
   
   
    {
   
   
    1
   
   
    ,
   
   
    .
   
   
    .
   
   
    .
   
   
    ,
   
   
    K
   
   
    }
   
  
  
   s.t.\quad f_i(x)\le 0\quad \quad i= \{1,...,K\}
  
 
s.t.fi​(x)≤0i={1,...,K}

​      

     g
    
    
     j
    
   
   
    (
   
   
    x
   
   
    )
   
   
    =
   
   
    0
   
   
   
   
    j
   
   
    =
   
   
    {
   
   
    1
   
   
    ,
   
   
    .
   
   
    .
   
   
    .
   
   
    ,
   
   
    L
   
   
    }
   
  
  
   g_j(x)= 0\quad \quad j= \{1,...,L\}
  
 
gj​(x)=0j={1,...,L}

同时我们假设满足约束条件的最优解为

     x
    
    
     ∗
    
   
  
  
   x^*
  
 
x∗,

 
  
   
    
     p
    
    
     ∗
    
   
   
    =
   
   
    
     f
    
    
     0
    
   
   
    (
   
   
    
     x
    
    
     ∗
    
   
   
    )
   
  
  
   p^*=f_0(x^*)
  
 
p∗=f0​(x∗)

极小极大问题
那么根据拉格朗日函数我们可以构造出:

     L
    
    
     (
    
    
     x
    
    
     ,
    
    
     α
    
    
     ,
    
    
     β
    
    
     )
    
    
     =
    
    
     
      f
     
     
      0
     
    
    
     (
    
    
     x
    
    
     )
    
    
     +
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      K
     
    
    
     
      α
     
     
      i
     
    
    
     
      f
     
     
      i
     
    
    
     (
    
    
     x
    
    
     )
    
    
     +
    
    
     
      ∑
     
     
      
       j
      
      
       =
      
      
       1
      
     
     
      L
     
    
    
     
      β
     
     
      j
     
    
    
     
      g
     
     
      j
     
    
    
     (
    
    
     x
    
    
     )
    
    
    
    
    
     α
    
    
     ≥
    
    
     0
    
   
   
    L(x,\alpha ,\beta)=f_0(x)+\sum_{i=1}^K\alpha_if_i(x)+\sum_{j=1}^L\beta_jg_j(x)\quad\quad\quad \alpha \ge0
   
  
 L(x,α,β)=f0​(x)+i=1∑K​αi​fi​(x)+j=1∑L​βj​gj​(x)α≥0

拉格朗日函数是一个关于

    x
   
   
    ,
   
   
    α
   
  
  
   x,\alpha
  
 
x,α和

 
  
   
    β
   
  
  
   \beta
  
 
β的函数,其中

 
  
   
    x
   
  
  
   x
  
 
x是原问题的自变量,

 
  
   
    α
   
   
    ,
   
   
    β
   
  
  
   \alpha,\beta
  
 
α,β被称为拉格朗日乘子,是标量。

其中

     f
    
    
     0
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   f_0(x)
  
 
f0​(x)是原优化问题的目标函数,

 
  
   
    
     f
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   f_i(x)
  
 
fi​(x)为原优化问题的不等式约束项,

 
  
   
    
     g
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   g_i(x)
  
 
gi​(x)为原问题的等式约束项。

我们构造函数

     θ
    
    
     p
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   \theta_p(x)
  
 
θp​(x)如下:

 
  
   
    
     
      θ
     
     
      p
     
    
    
     (
    
    
     x
    
    
     )
    
    
     =
    
    
     
      
       max
      
      
       ⁡
      
     
     
      
       α
      
      
       ,
      
      
       β
      
     
    
    
     L
    
    
     (
    
    
     x
    
    
     ,
    
    
     α
    
    
     ,
    
    
     β
    
    
     )
    
   
   
    \theta_p(x)=\max\limits_{\alpha,\beta}L(x,\alpha,\beta)
   
  
 θp​(x)=α,βmax​L(x,α,β)

假设存在违反约束条件的样本

    x
   
  
  
   x
  
 
x,即存在某个

 
  
   
    i
   
  
  
   i
  
 
i使得

 
  
   
    
     f
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
   
    >
   
   
    0
   
  
  
   f_i(x)>0
  
 
fi​(x)>0或者

 
  
   
    
     g
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
   
    ≠
   
   
    0
   
  
  
   g_i(x)\neq0
  
 
gi​(x)​=0,如果

 
  
   
    
     f
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
   
    >
   
   
    0
   
  
  
   f_i(x)>0
  
 
fi​(x)>0,那么我们可以使得

 
  
   
    
     α
    
    
     i
    
   
  
  
   \alpha_i
  
 
αi​的取值为

 
  
   
    +
   
   
    ∞
   
  
  
   +\infty
  
 
+∞,那么

 
  
   
    
     θ
    
    
     p
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   \theta_p(x)
  
 
θp​(x)的取值也为

 
  
   
    +
   
   
    ∞
   
  
  
   +\infty
  
 
+∞;如果

 
  
   
    
     g
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
   
    ≠
   
   
    0
   
  
  
   g_i(x)\neq0
  
 
gi​(x)​=0,同理我们使得

 
  
   
    
     β
    
    
     i
    
   
  
  
   \beta_i
  
 
βi​为

 
  
   
    +
   
   
    ∞
   
  
  
   +\infty
  
 
+∞,

 
  
   
    
     θ
    
    
     p
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   \theta_p(x)
  
 
θp​(x)的取值同样为

 
  
   
    +
   
   
    ∞
   
  
  
   +\infty
  
 
+∞。即:

 
  
   
    
     
      θ
     
     
      p
     
    
    
     (
    
    
     x
    
    
     )
    
    
     =
    
    
     
      
       max
      
      
       ⁡
      
     
     
      
       α
      
      
       ,
      
      
       β
      
     
    
    
     [
    
    
     
      f
     
     
      0
     
    
    
     (
    
    
     x
    
    
     )
    
    
     +
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      K
     
    
    
     
      α
     
     
      i
     
    
    
     
      f
     
     
      i
     
    
    
     (
    
    
     x
    
    
     )
    
    
     +
    
    
     
      ∑
     
     
      
       j
      
      
       =
      
      
       1
      
     
     
      L
     
    
    
     
      β
     
     
      j
     
    
    
     
      g
     
     
      j
     
    
    
     (
    
    
     x
    
    
     )
    
    
     ]
    
    
     =
    
    
     +
    
    
     ∞
    
   
   
    \theta_p(x)=\max\limits_{\alpha,\beta}[f_0(x)+\sum_{i=1}^K\alpha_if_i(x)+\sum_{j=1}^L\beta_jg_j(x)]=+\infty
   
  
 θp​(x)=α,βmax​[f0​(x)+i=1∑K​αi​fi​(x)+j=1∑L​βj​gj​(x)]=+∞

但如果样本

    x
   
  
  
   x
  
 
x满足约束条件,即

 
  
   
    
     f
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
   
    ≤
   
   
    0
   
  
  
   f_i(x)\le0
  
 
fi​(x)≤0并且

 
  
   
    
     g
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
   
    =
   
   
    0
   
  
  
   g_i(x)=0
  
 
gi​(x)=0,那么当

 
  
   
    
     α
    
    
     i
    
   
  
  
   \alpha_i
  
 
αi​的取值为0时,使得

 
  
   
    
     θ
    
    
     p
    
   
   
    (
   
   
    x
   
   
    )
   
   
    =
   
   
    
     f
    
    
     0
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   \theta_p(x)=f_0(x)
  
 
θp​(x)=f0​(x),即:

 
  
   
    
     
      θ
     
     
      p
     
    
    
     (
    
    
     x
    
    
     )
    
    
     =
    
    
     
      
       max
      
      
       ⁡
      
     
     
      
       α
      
      
       ,
      
      
       β
      
     
    
    
     [
    
    
     
      f
     
     
      0
     
    
    
     (
    
    
     x
    
    
     )
    
    
     +
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      K
     
    
    
     
      α
     
     
      i
     
    
    
     
      f
     
     
      i
     
    
    
     (
    
    
     x
    
    
     )
    
    
     +
    
    
     
      ∑
     
     
      
       j
      
      
       =
      
      
       1
      
     
     
      L
     
    
    
     
      β
     
     
      j
     
    
    
     
      g
     
     
      j
     
    
    
     (
    
    
     x
    
    
     )
    
    
     ]
    
    
     =
    
    
     
      f
     
     
      0
     
    
    
     (
    
    
     x
    
    
     )
    
   
   
    \theta_p(x)=\max\limits_{\alpha,\beta}[f_0(x)+\sum_{i=1}^K\alpha_if_i(x)+\sum_{j=1}^L\beta_jg_j(x)]=f_0(x)
   
  
 θp​(x)=α,βmax​[f0​(x)+i=1∑K​αi​fi​(x)+j=1∑L​βj​gj​(x)]=f0​(x)

因此我们可以得到:

      θ
     
     
      p
     
    
    
     (
    
    
     x
    
    
     )
    
    
     =
    
    
     
      {
     
     
      
       
        
         
          
           +
          
          
           ∞
          
         
        
       
       
        
         
        
       
       
        
         
          
           x
          
          
           不
          
          
           满
          
          
           足
          
          
           原
          
          
           始
          
          
           约
          
          
           束
          
          
           条
          
          
           件
          
         
        
       
      
      
       
        
         
          
           
            f
           
           
            0
           
          
          
           (
          
          
           x
          
          
           )
          
         
        
       
       
        
         
        
       
       
        
         
          
           否
          
          
           则
          
         
        
       
      
     
    
   
   
     \theta_p(x)=\left\{ \begin{array}{rcl} +\infty & & {x不满足原始约束条件}\\ f_0(x) & & {否则} \end{array} \right. 
   
  
 θp​(x)={+∞f0​(x)​​x不满足原始约束条件否则​

因此:

      p
     
     
      ∗
     
    
    
     =
    
    
     
      
       min
      
      
       ⁡
      
     
     
      x
     
    
    
     
      f
     
     
      0
     
    
    
     (
    
    
     x
    
    
     )
    
    
     =
    
    
     
      
       min
      
      
       ⁡
      
     
     
      x
     
    
    
     
      θ
     
     
      p
     
    
    
     (
    
    
     x
    
    
     )
    
    
     =
    
    
     
      
       min
      
      
       ⁡
      
     
     
      x
     
    
    
     
      
       max
      
      
       ⁡
      
     
     
      
       α
      
      
       ,
      
      
       β
      
     
    
    
     L
    
    
     (
    
    
     x
    
    
     ,
    
    
     α
    
    
     ,
    
    
     β
    
    
     )
    
   
   
    p^*=\min\limits_{x}f_0(x)=\min\limits_x\theta_p(x)=\min\limits_x\max\limits_{\alpha,\beta}L(x,\alpha,\beta)
   
  
 p∗=xmin​f0​(x)=xmin​θp​(x)=xmin​α,βmax​L(x,α,β)

被称为广义拉格朗日函数的极小极大问题。

极大极小问题
我们构造函数

    θ
   
   
    (
   
   
    α
   
   
    ,
   
   
    β
   
   
    )
   
   
    =
   
   
    
     
      min
     
     
      ⁡
     
    
    
     x
    
   
   
    L
   
   
    (
   
   
    x
   
   
    ,
   
   
    α
   
   
    ,
   
   
    β
   
   
    )
   
  
  
   \theta(\alpha,\beta)=\min\limits_xL(x,\alpha,\beta)
  
 
θ(α,β)=xmin​L(x,α,β),同时令:

 
  
   
    
     
      d
     
     
      ∗
     
    
    
     =
    
    
     
      
       max
      
      
       ⁡
      
     
     
      
       α
      
      
       ,
      
      
       β
      
     
    
    
     
      
       min
      
      
       ⁡
      
     
     
      x
     
    
    
     L
    
    
     (
    
    
     x
    
    
     ,
    
    
     α
    
    
     ,
    
    
     β
    
    
     )
    
   
   
    d^*=\max\limits_{\alpha,\beta}\min\limits_xL(x,\alpha,\beta)
   
  
 d∗=α,βmax​xmin​L(x,α,β)

称为原始问题的对偶问题,其中

      d
     
     
      ∗
     
    
    
     ≤
    
    
     
      p
     
     
      ∗
     
    
   
   
    d^*\le p^*
   
  
 d∗≤p∗

被称为弱对偶,是一定成立的,感兴趣的可以自己找一下统计学原理看看推导过程,这里就不进行推导了。

当满足一定情况时,

     d
    
    
     ∗
    
   
   
    =
   
   
    
     p
    
    
     ∗
    
   
  
  
   d^*=p^*
  
 
d∗=p∗,我们称其为强对偶。

  对于原始问题及其对偶问题,假设函数

     f
    
    
     0
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   f_0(x)
  
 
f0​(x)和

 
  
   
    
     f
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   f_i(x)
  
 
fi​(x) 是凸函数, 

 
  
   
    
     g
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   g_i(x)
  
 
gi​(x)是仿射函数,且不等式约束

 
  
   
    
     f
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   f_i(x)
  
 
fi​(x)是严格可行的,即存在

 
  
   
    x
   
  
  
   x
  
 
x ,对所有

 
  
   
    
     f
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
  
  
   f_i(x)
  
 
fi​(x)有

 
  
   
    
     f
    
    
     i
    
   
   
    (
   
   
    x
   
   
    )
   
   
    ≤
   
   
    0
   
  
  
   f_i(x)\le0
  
 
fi​(x)≤0 ,则存在

 
  
   
    
     x
    
    
     ∗
    
   
   
    ,
   
   
    
     α
    
    
     ∗
    
   
   
    ,
   
   
    
     β
    
    
     ∗
    
   
  
  
   x^*,\alpha^*,\beta^*
  
 
x∗,α∗,β∗ ,使 

 
  
   
    
     x
    
    
     ∗
    
   
  
  
   x^*
  
 
x∗是原始问题的解, 

 
  
   
    
     α
    
    
     ∗
    
   
   
    ,
   
   
    
     β
    
    
     ∗
    
   
  
  
   \alpha^*,\beta^*
  
 
α∗,β∗是对偶问题的解的充分必要条件是 

 
  
   
    
     x
    
    
     ∗
    
   
   
    ,
   
   
    
     α
    
    
     ∗
    
   
   
    ,
   
   
    
     β
    
    
     ∗
    
   
  
  
   x^*,\alpha^*,\beta^*
  
 
x∗,α∗,β∗满足下面的Karush-Kuhn-Tucker(KKT)条件:

 
  
   
    
     
      
       ∂
      
      
       L
      
      
       (
      
      
       
        x
       
       
        ∗
       
      
      
       ,
      
      
       
        α
       
       
        ∗
       
      
      
       ,
      
      
       
        β
       
       
        ∗
       
      
      
       )
      
     
     
      
       ∂
      
      
       
        x
       
       
        i
       
      
     
    
    
     =
    
    
     0
    
    
     ,
    
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     .
    
    
     .
    
    
     .
    
    
     d
    
   
   
    \frac{\partial L(x^*,\alpha^*,\beta^*)}{\partial x_i}=0,\quad i=1,...d
   
  
 ∂xi​∂L(x∗,α∗,β∗)​=0,i=1,...d
 
  
   
    
     
      
       ∂
      
      
       L
      
      
       (
      
      
       
        x
       
       
        ∗
       
      
      
       ,
      
      
       
        α
       
       
        ∗
       
      
      
       ,
      
      
       
        β
       
       
        ∗
       
      
      
       )
      
     
     
      
       ∂
      
      
       
        β
       
       
        i
       
      
     
    
    
     =
    
    
     0
    
    
     ,
    
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     .
    
    
     .
    
    
     .
    
    
     ,
    
    
     l
    
   
   
    \frac{\partial L(x^*,\alpha^*,\beta^*)}{\partial \beta_{i}}=0,\quad i=1,...,l
   
  
 ∂βi​∂L(x∗,α∗,β∗)​=0,i=1,...,l
 
  
   
    
     
      α
     
     
      i
     
    
    
     
      f
     
     
      i
     
    
    
     (
    
    
     
      x
     
     
      ∗
     
    
    
     )
    
    
     =
    
    
     0
    
    
     ,
    
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     .
    
    
     .
    
    
     .
    
    
     ,
    
    
     k
    
   
   
    \alpha_if_i(x^*)=0,\quad i=1,...,k
   
  
 αi​fi​(x∗)=0,i=1,...,k
 
  
   
    
     
      f
     
     
      i
     
    
    
     (
    
    
     
      x
     
     
      ∗
     
    
    
     )
    
    
     ≤
    
    
     0
    
    
     ,
    
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     .
    
    
     .
    
    
     .
    
    
     ,
    
    
     k
    
   
   
    f_i(x^*)\le0,\quad i=1,...,k
   
  
 fi​(x∗)≤0,i=1,...,k
 
  
   
    
     
      α
     
     
      i
     
    
    
     ≥
    
    
     0
    
    
     ,
    
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     .
    
    
     .
    
    
     .
    
    
     ,
    
    
     k
    
   
   
    \alpha_i\ge0,\quad i=1,...,k
   
  
 αi​≥0,i=1,...,k

二、经典的SVM

在这里插入图片描述
  经典的SVM主要用来处理线性可分的问题。如图所示,对于两类样本点,我们期望找到一条合适的分隔线,使其到两个类别支撑向量的距离最大,同时,到两个支撑向量的距离相同。

  这里由于分隔线到两条支撑向量的距离相同,而且分隔线函数为

    w
   
   
    x
   
   
    +
   
   
    b
   
   
    =
   
   
    0
   
  
  
   wx+b=0
  
 
wx+b=0,因此我们不妨设两条支撑向量的函数分别为

 
  
   
    w
   
   
    x
   
   
    +
   
   
    b
   
   
    =
   
   
    1
   
  
  
   wx+b=1
  
 
wx+b=1和

 
  
   
    w
   
   
    x
   
   
    +
   
   
    b
   
   
    =
   
   
    −
   
   
    1
   
  
  
   wx+b=-1
  
 
wx+b=−1。因此我们可以得到:

 
  
   
    
     (
    
    
     
      w
     
     
      T
     
    
    
     
      x
     
     
      1
     
    
    
     +
    
    
     b
    
    
     )
    
    
     −
    
    
     (
    
    
     
      w
     
     
      T
     
    
    
     
      x
     
     
      2
     
    
    
     +
    
    
     b
    
    
     )
    
    
     =
    
    
     2
    
   
   
    (w^Tx_1+b)-(w^Tx_2+b)=2
   
  
 (wTx1​+b)−(wTx2​+b)=2
 
  
   
    
     
      w
     
     
      T
     
    
    
     (
    
    
     
      x
     
     
      1
     
    
    
     −
    
    
     
      x
     
     
      2
     
    
    
     )
    
    
     =
    
    
     2
    
   
   
    w^T(x_1-x_2)=2
   
  
 wT(x1​−x2​)=2

向量

    a
   
  
  
   a
  
 
a与向量

 
  
   
    b
   
  
  
   b
  
 
b的内积可以看做

 
  
   
    a
   
  
  
   a
  
 
a的模与

 
  
   
    b
   
  
  
   b
  
 
b在

 
  
   
    a
   
  
  
   a
  
 
a方向上投影的乘积,即
 
  
   
    
     a
    
    
     ⋅
    
    
     b
    
    
     =
    
    
     ∣
    
    
     ∣
    
    
     a
    
    
     ∣
    
    
     ∣
    
    
     
      ∣
     
     
      2
     
    
    
     ∣
    
    
     b
    
    
     ∣
    
    
     
      ∣
     
     
      2
     
    
    
     cos
    
    
     ⁡
    
    
     θ
    
   
   
    a\cdot b=||a|||_2|b||_2\cos\theta
   
  
 a⋅b=∣∣a∣∣∣2​∣b∣∣2​cosθ

因此我们可以的得到:

     ∣
    
    
     ∣
    
    
     w
    
    
     ∣
    
    
     
      ∣
     
     
      2
     
    
    
     ∣
    
    
     ∣
    
    
     
      x
     
     
      1
     
    
    
     −
    
    
     
      x
     
     
      2
     
    
    
     ∣
    
    
     
      ∣
     
     
      2
     
    
    
     cos
    
    
     ⁡
    
    
     θ
    
    
     =
    
    
     2
    
   
   
    ||w||_2||x_1-x_2||_2\cos\theta=2
   
  
 ∣∣w∣∣2​∣∣x1​−x2​∣∣2​cosθ=2
 
  
   
    
     ∣
    
    
     ∣
    
    
     
      x
     
     
      1
     
    
    
     −
    
    
     
      x
     
     
      2
     
    
    
     ∣
    
    
     ∣
    
    
     cos
    
    
     ⁡
    
    
     θ
    
    
     =
    
    
     
      2
     
     
      
       ∣
      
      
       ∣
      
      
       w
      
      
       ∣
      
      
       
        ∣
       
       
        2
       
      
     
    
    
     =
    
    
     
      d
     
     
      1
     
    
    
     +
    
    
     
      d
     
     
      2
     
    
   
   
    ||x_1-x_2||\cos\theta=\frac{2}{||w||_2}=d_1+d_2
   
  
 ∣∣x1​−x2​∣∣cosθ=∣∣w∣∣2​2​=d1​+d2​

我们的目的是使得两个支撑向量之间的距离

    d
   
  
  
   d
  
 
d达到最大,即:

 
  
   
    
     
      
       max
      
      
       ⁡
      
     
     
      
       w
      
      
       ,
      
      
       b
      
     
    
    
     
      2
     
     
      
       ∣
      
      
       ∣
      
      
       w
      
      
       ∣
      
      
       
        ∣
       
       
        2
       
      
     
    
   
   
    \max\limits_{w,b}\frac{2}{||w||_2}
   
  
 w,bmax​∣∣w∣∣2​2​

按照机器学习求最小的习惯,将其转化成最小值问题,我们求

    min
   
   
    ⁡
   
   
    ∣
   
   
    ∣
   
   
    w
   
   
    ∣
   
   
    
     ∣
    
    
     2
    
   
  
  
   \min||w||^2
  
 
min∣∣w∣∣2的效果是一样的

同时对于这里的二分类问题,我们假设其标签为1或-1,因此对于在支撑向量上的点,满足

     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    (
   
   
    
     w
    
    
     T
    
   
   
    
     x
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    +
   
   
    b
   
   
    )
   
   
    =
   
   
    1
   
  
  
   y^{(i)}(w^Tx^{(i)}+b)=1
  
 
y(i)(wTx(i)+b)=1,对于不在支撑向量上的点,其一定满足

 
  
   
    
     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    (
   
   
    
     w
    
    
     T
    
   
   
    
     x
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    +
   
   
    b
   
   
    )
   
   
    ≥
   
   
    1
   
  
  
   y^{(i)}(w^Tx^{(i)}+b)\ge1
  
 
y(i)(wTx(i)+b)≥1,因此我们的到最后的目标函数:

 
  
   
    
     
      
       min
      
      
       ⁡
      
     
     
      
       w
      
      
       ,
      
      
       b
      
     
    
    
     
      1
     
     
      2
     
    
    
     ∣
    
    
     ∣
    
    
     w
    
    
     ∣
    
    
     
      ∣
     
     
      2
     
    
   
   
    \min\limits_{w,b}\frac{1}{2}||w||^2
   
  
 w,bmin​21​∣∣w∣∣2


 
  
   
    s
   
   
    .
   
   
    t
   
   
    .
   
   
    
     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    (
   
   
    
     w
    
    
     T
    
   
   
    
     x
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    +
   
   
    b
   
   
    )
   
   
    ≥
   
   
    1
   
   
    ,
   
   
   
    i
   
   
    =
   
   
    1
   
   
    ,
   
   
    .
   
   
    .
   
   
    .
   
   
    ,
   
   
    n
   
  
  
   s.t.y^{(i)}(w^Tx^{(i)}+b)\ge1,\quad i=1,...,n
  
 
s.t.y(i)(wTx(i)+b)≥1,i=1,...,n

为了满足拉格朗日对偶变换,我们可以将约束条件写为:

      g
     
     
      i
     
    
    
     (
    
    
     w
    
    
     )
    
    
     =
    
    
     −
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     (
    
    
     
      w
     
     
      T
     
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     +
    
    
     b
    
    
     )
    
    
     +
    
    
     1
    
    
     ≤
    
    
     0
    
   
   
    g_i(w)=-y^{(i)}(w^Tx^{(i)}+b)+1\le0
   
  
 gi​(w)=−y(i)(wTx(i)+b)+1≤0

将问题构造成拉格朗日函数为:

       min
      
      
       ⁡
      
     
     
      
       w
      
      
       ,
      
      
       b
      
     
    
    
     
      
       max
      
      
       ⁡
      
     
     
      α
     
    
    
     L
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     ,
    
    
     α
    
    
     )
    
    
     =
    
    
     
      1
     
     
      2
     
    
    
     ∣
    
    
     ∣
    
    
     w
    
    
     ∣
    
    
     
      ∣
     
     
      2
     
    
    
     −
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     [
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     (
    
    
     
      w
     
     
      T
     
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     +
    
    
     b
    
    
     )
    
    
     −
    
    
     1
    
    
     ]
    
   
   
    \min\limits_{w,b}\max\limits_{\alpha}L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum\limits_{i=1}^n\alpha_i[y^{(i)}(w^Tx^{(i)}+b)-1]
   
  
 w,bmin​αmax​L(w,b,α)=21​∣∣w∣∣2−i=1∑n​αi​[y(i)(wTx(i)+b)−1]

由于这里原函数为凸函数,同时其限制条件为线性函数也为凸函数,因此我们可以将其进行KKT条件的构造,转化成对偶问题:

      ∇
     
     
      w
     
    
    
     L
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     ,
    
    
     α
    
    
     )
    
    
     =
    
    
     w
    
    
     −
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     =
    
    
     0
    
   
   
    \nabla_wL(w,b,\alpha)=w-\sum\limits_{i=1}^n\alpha_iy^{(i)}x^{(i)}=0
   
  
 ∇w​L(w,b,α)=w−i=1∑n​αi​y(i)x(i)=0可得:
 
  
   
    
     w
    
    
     =
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
   
   
    w=\sum\limits_{i=1}^n\alpha_iy^{(i)}x^{(i)}
   
  
 w=i=1∑n​αi​y(i)x(i)
 
  
   
    
     
      ∇
     
     
      b
     
    
    
     L
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     ,
    
    
     α
    
    
     )
    
    
     =
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     =
    
    
     0
    
   
   
    \nabla_bL(w,b,\alpha)=\sum\limits_{i=1}^n\alpha_iy^{(i)}=0
   
  
 ∇b​L(w,b,α)=i=1∑n​αi​y(i)=0

我们将

    w
   
  
  
   w
  
 
w打带入拉格朗日化的原问题可得:

 
  
   
    
     
      
       
        
         L
        
        
         (
        
        
         w
        
        
         ,
        
        
         b
        
        
         ,
        
        
         α
        
        
         )
        
       
      
     
     
      
       
        
        
         =
        
        
         
          1
         
         
          2
         
        
        
         
          w
         
         
          T
         
        
        
         w
        
        
         −
        
        
         
          w
         
         
          T
         
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         
          x
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         −
        
        
         b
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         +
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
       
      
     
    
    
     
      
       
      
     
     
      
       
        
        
         =
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         −
        
        
         
          1
         
         
          2
         
        
        
         
          ∑
         
         
          
           i
          
          
           ,
          
          
           j
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          α
         
         
          j
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         
          y
         
         
          
           (
          
          
           j
          
          
           )
          
         
        
        
         
          x
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         (
        
        
         
          x
         
         
          
           (
          
          
           j
          
          
           )
          
         
        
        
         
          )
         
         
          T
         
        
       
      
     
    
   
   
    \begin{aligned}L(w,b,\alpha)&=\frac{1}{2}w^Tw-w^T\sum\limits_{i=1}^n\alpha_iy^{(i)}x^{(i)}-b\sum\limits_{i=1}^n\alpha_iy^{(i)}+\sum\limits_{i=1}^n\alpha_i\\ &=\sum\limits_{i=1}^n\alpha_i-\frac{1}{2}\sum\limits_{i,j=1}^n\alpha_i\alpha_jy^{(i)}y^{(j)}x^{(i)}(x^{(j)})^T \end{aligned}
   
  
 L(w,b,α)​=21​wTw−wTi=1∑n​αi​y(i)x(i)−bi=1∑n​αi​y(i)+i=1∑n​αi​=i=1∑n​αi​−21​i,j=1∑n​αi​αj​y(i)y(j)x(i)(x(j))T​

此时问题就转变成了关于

    α
   
  
  
   \alpha
  
 
α的函数,构造dual得:

 
  
   
    
     
      
       max
      
      
       ⁡
      
     
     
      α
     
    
    
     W
    
    
     (
    
    
     α
    
    
     )
    
    
     =
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     −
    
    
     
      1
     
     
      2
     
    
    
     
      ∑
     
     
      
       i
      
      
       ,
      
      
       j
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     
      α
     
     
      j
     
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     
      y
     
     
      
       (
      
      
       j
      
      
       )
      
     
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     (
    
    
     
      x
     
     
      
       (
      
      
       j
      
      
       )
      
     
    
    
     
      )
     
     
      T
     
    
   
   
    \max\limits_\alpha W(\alpha)=\sum\limits_{i=1}^n\alpha_i-\frac{1}{2}\sum\limits_{i,j=1}^n\alpha_i\alpha_jy^{(i)}y^{(j)}x^{(i)}(x^{(j)})^T
   
  
 αmax​W(α)=i=1∑n​αi​−21​i,j=1∑n​αi​αj​y(i)y(j)x(i)(x(j))T

 
  
   
    s
   
   
    .
   
   
    t
   
   
    .
   
   
   
    
     α
    
    
     i
    
   
   
    ≥
   
   
    0
   
   
    ,
   
   
   
    i
   
   
    =
   
   
    1
   
   
    ,
   
   
    .
   
   
    .
   
   
    ,
   
   
    n
   
  
  
   s.t.\quad \alpha_i\ge0,\quad i=1,..,n
  
 
s.t.αi​≥0,i=1,..,n


 
  
   
    
     ∑
    
    
     
      i
     
     
      =
     
     
      1
     
    
    
     n
    
   
   
    
     α
    
    
     i
    
   
   
    
     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    =
   
   
    0
   
  
  
   \sum\limits_{i=1}^n\alpha_iy^{(i)}=0
  
 
i=1∑n​αi​y(i)=0

同时其要满足KKT条件如下:

      α
     
     
      i
     
    
    
     
      g
     
     
      i
     
    
    
     (
    
    
     
      w
     
     
      ∗
     
    
    
     )
    
    
     =
    
    
     0
    
    
     ,
    
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     .
    
    
     .
    
    
     .
    
    
     ,
    
    
     k
    
   
   
    \alpha_ig_i(w^*)=0,\quad i=1,...,k
   
  
 αi​gi​(w∗)=0,i=1,...,k
 
  
   
    
     
      g
     
     
      i
     
    
    
     (
    
    
     
      w
     
     
      ∗
     
    
    
     )
    
    
     ≤
    
    
     0
    
    
     ,
    
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     .
    
    
     .
    
    
     .
    
    
     ,
    
    
     k
    
   
   
    g_i(w^*)\le0,\quad i=1,...,k
   
  
 gi​(w∗)≤0,i=1,...,k

由于该问题为二次规划问题,所以一定存在最优解

    α
   
   
    ∗
   
   
    =
   
   
    (
   
   
    
     α
    
    
     1
    
    
     ∗
    
   
   
    ,
   
   
    .
   
   
    .
   
   
    .
   
   
    ,
   
   
    
     α
    
    
     n
    
    
     ∗
    
   
   
    )
   
  
  
   \alpha*=(\alpha_1^*,...,\alpha_n^*)
  
 
α∗=(α1∗​,...,αn∗​),那么就可以计算原始问题的最优解

 
  
   
    
     w
    
    
     ∗
    
   
   
    =
   
   
    
     ∑
    
    
     
      i
     
     
      =
     
     
      1
     
    
    
     n
    
   
   
    
     α
    
    
     i
    
    
     ∗
    
   
   
    
     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    
     x
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
  
  
   w^*=\sum\limits_{i=1}^n\alpha_i^*y^{(i)}x^{(i)}
  
 
w∗=i=1∑n​αi∗​y(i)x(i),同时如果

 
  
   
    
     α
    
    
     i
    
    
     ∗
    
   
   
    ≠
   
   
    0
   
  
  
   \alpha_i^*\ne0
  
 
αi∗​​=0的话,那么根据KKT条件,

 
  
   
    −
   
   
    
     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    (
   
   
    
     w
    
    
     T
    
   
   
    
     x
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    +
   
   
    b
   
   
    )
   
   
    +
   
   
    1
   
   
    =
   
   
    0
   
  
  
   -y^{(i)}(w^Tx^{(i)}+b)+1=0
  
 
−y(i)(wTx(i)+b)+1=0,其中

 
  
   
    y
   
   
    ∈
   
   
    {
   
   
    1
   
   
    ,
   
   
    −
   
   
    1
   
   
    }
   
  
  
   y\in\{1,-1\}
  
 
y∈{1,−1},因此可得

 
  
   
    
     b
    
    
     ∗
    
   
   
    =
   
   
    
     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    −
   
   
    
     ∑
    
    
     
      i
     
     
      =
     
     
      1
     
    
    
     n
    
   
   
    
     α
    
    
     i
    
    
     ∗
    
   
   
    
     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    
     x
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
  
  
   b^*=y^{(i)}-\sum\limits_{i=1}^n\alpha_i^*y^{(i)}x^{(i)}
  
 
b∗=y(i)−i=1∑n​αi∗​y(i)x(i)。

训练结束之后,每来一个新的数据

    x
   
  
  
   x
  
 
x我们便可以对其进行预测:

 
  
   
    
     
      
       
        y
       
      
     
     
      
       
        
        
         =
        
        
         s
        
        
         i
        
        
         g
        
        
         n
        
        
         (
        
        
         
          w
         
         
          T
         
        
        
         x
        
        
         +
        
        
         b
        
        
         )
        
       
      
     
    
    
     
      
       
      
     
     
      
       
        
        
         =
        
        
         s
        
        
         i
        
        
         g
        
        
         n
        
        
         (
        
        
         (
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         
          x
         
         
        
        
         (
        
        
         i
        
        
         )
        
        
         
          )
         
         
          T
         
        
        
         x
        
        
         +
        
        
         b
        
        
         )
        
       
      
     
    
    
     
      
       
      
     
     
      
       
        
        
         =
        
        
         s
        
        
         i
        
        
         g
        
        
         n
        
        
         (
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         <
        
        
         
          x
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         ,
        
        
         x
        
        
         >
        
        
         +
        
        
         b
        
        
         )
        
       
      
     
    
   
   
    \begin{aligned}y&=sign(w^Tx+b)\\ &=sign((\sum\limits_{i=1}^n\alpha_iy^{(i)}x^{}(i))^Tx+b)\\ &= sign(\sum\limits_{i=1}^n\alpha_iy^{(i)}<x^{(i)},x>+b)\end{aligned}
   
  
 y​=sign(wTx+b)=sign((i=1∑n​αi​y(i)x(i))Tx+b)=sign(i=1∑n​αi​y(i)<x(i),x>+b)​

其中

    s
   
   
    i
   
   
    g
   
   
    n
   
  
  
   sign
  
 
sign为阶跃函数:

 
  
   
    
     s
    
    
     i
    
    
     g
    
    
     n
    
    
     (
    
    
     x
    
    
     )
    
    
     =
    
    
     
      {
     
     
      
       
        
         
          1
         
        
       
       
        
         
        
       
       
        
         
          
           x
          
          
           >
          
          
           0
          
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
        
       
       
        
         
          
           x
          
          
           =
          
          
           0
          
         
        
       
      
      
       
        
         
          
           −
          
          
           1
          
         
        
       
       
        
         
        
       
       
        
         
          
           x
          
          
           <
          
          
           0
          
         
        
       
      
     
    
   
   
     sign(x)=\left\{ \begin{array}{rcl} 1 & & {x>0}\\ 0 & & {x=0}\\ -1 & &{x<0} \end{array} \right. 
   
  
 sign(x)=⎩⎨⎧​10−1​​x>0x=0x<0​

这里看似每来一个数据,要计算其分类需要同所有样本数据进行一次计算,但实际上有KKT条件的约束:

      α
     
     
      i
     
    
    
     
      g
     
     
      i
     
    
    
     (
    
    
     
      w
     
     
      ∗
     
    
    
     )
    
    
     =
    
    
     0
    
    
     ,
    
    
    
     i
    
    
     =
    
    
     1
    
    
     ,
    
    
     .
    
    
     .
    
    
     .
    
    
     ,
    
    
     k
    
   
   
    \alpha_ig_i(w^*)=0,\quad i=1,...,k
   
  
 αi​gi​(w∗)=0,i=1,...,k

根据支持向量机的定义我们可以知道,大部分数据点都位于支撑线以内,即

     g
    
    
     i
    
   
   
    (
   
   
    w
   
   
    )
   
   
    =
   
   
    0
   
  
  
   g_i(w)=0
  
 
gi​(w)=0,因此其

 
  
   
    
     α
    
    
     i
    
   
   
    =
   
   
    0
   
  
  
   \alpha_i=0
  
 
αi​=0,因此我们只需要记住支撑向量上有限几个

 
  
   
    
     α
    
    
     i
    
   
  
  
   \alpha_i
  
 
αi​不等于0的点进行预测即可,大大缩短了预测所需的计算量。

三、带松弛变量的SVM

  在实际应用中,完全线性可分的情况往往很少,那么我们应该怎么处理一些异常点呢?有一种思路就是放宽其区分的条件,我们称之为软间隔。
在这里插入图片描述
  我们允许少数出现

     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    (
   
   
    
     w
    
    
     T
    
   
   
    
     x
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    +
   
   
    b
   
   
    )
   
   
    <
   
   
    1
   
  
  
   y^{(i)}(w^Tx^{(i)}+b)<1
  
 
y(i)(wTx(i)+b)<1的情况出现,但是我们应该放宽达到什么地步,我们为每一个样本引入松弛变量

 
  
   
    
     ξ
    
    
     i
    
   
  
  
   \xi_i
  
 
ξi​来进行控制,其中

 
  
   
    
     ξ
    
    
     i
    
   
   
    ≥
   
   
    0
   
  
  
   \xi_i\ge0
  
 
ξi​≥0,

 
  
   
    C
   
  
  
   C
  
 
C是一个大于零的常数,可以理解为对错误样本的惩罚程度,可以类比正则项中的正则系数。此时我们的目标函数就变成了:

 
  
   
    
     
      
       min
      
      
       ⁡
      
     
     
      w
     
    
    
     
      1
     
     
      2
     
    
    
     ∣
    
    
     ∣
    
    
     w
    
    
     ∣
    
    
     
      ∣
     
     
      2
     
    
    
     +
    
    
     C
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      ξ
     
     
      i
     
    
   
   
    \min\limits_{w}\frac{1}{2}||w||^2+C\sum\limits_{i=1}^n\xi_i
   
  
 wmin​21​∣∣w∣∣2+Ci=1∑n​ξi​

 
  
   
    s
   
   
    .
   
   
    t
   
   
    .
   
   
   
    
     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    (
   
   
    
     w
    
    
     T
    
   
   
    
     x
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    +
   
   
    b
   
   
    )
   
   
    ≥
   
   
    1
   
   
    −
   
   
    
     ξ
    
    
     i
    
   
   
    ,
   
   
   
    i
   
   
    =
   
   
    ,
   
   
    .
   
   
    .
   
   
    .
   
   
    ,
   
   
    n
   
  
  
   s.t.\quad y^{(i)}(w^Tx^{(i)}+b)\ge1-\xi_i,\quad i=,...,n
  
 
s.t.y(i)(wTx(i)+b)≥1−ξi​,i=,...,n


 
  
   
    
     ξ
    
    
     i
    
   
   
    ≥
   
   
    0
   
   
    ,
   
   
   
    i
   
   
    =
   
   
    1
   
   
    ,
   
   
    .
   
   
    .
   
   
    .
   
   
    ,
   
   
    n
   
  
  
   \xi_i\ge0,\quad i=1,...,n
  
 
ξi​≥0,i=1,...,n

同样我们将原问题进行拉格朗日化变为:

       min
      
      
       ⁡
      
     
     
      
       w
      
      
       ,
      
      
       b
      
      
       ,
      
      
       ξ
      
     
    
    
     
      
       max
      
      
       ⁡
      
     
     
      
       α
      
      
       ,
      
      
       β
      
     
    
    
     L
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     ,
    
    
     ξ
    
    
     ,
    
    
     α
    
    
     ,
    
    
     β
    
    
     )
    
    
     =
    
    
     
      
       min
      
      
       ⁡
      
     
     
      w
     
    
    
     
      1
     
     
      2
     
    
    
     ∣
    
    
     ∣
    
    
     w
    
    
     ∣
    
    
     
      ∣
     
     
      2
     
    
    
     +
    
    
     C
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      ξ
     
     
      i
     
    
    
     −
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     [
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     (
    
    
     
      w
     
     
      T
     
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     +
    
    
     b
    
    
     )
    
    
     +
    
    
     
      ξ
     
     
      i
     
    
    
     −
    
    
     1
    
    
     ]
    
    
     −
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      β
     
     
      i
     
    
    
     
      ξ
     
     
      i
     
    
   
   
    \min\limits_{w,b,\xi}\max\limits_{\alpha,\beta} L(w,b,\xi,\alpha,\beta)=\min\limits_{w}\frac{1}{2}||w||^2+C\sum\limits_{i=1}^n\xi_i-\sum\limits_{i=1}^n\alpha_i[y^{(i)}(w^Tx^{(i)}+b)+\xi_i-1]-\sum\limits_{i=1}^n\beta_i\xi_i
   
  
 w,b,ξmin​α,βmax​L(w,b,ξ,α,β)=wmin​21​∣∣w∣∣2+Ci=1∑n​ξi​−i=1∑n​αi​[y(i)(wTx(i)+b)+ξi​−1]−i=1∑n​βi​ξi​

 
  
   
    s
   
   
    .
   
   
    t
   
   
    .
   
   
   
    
     α
    
    
     i
    
   
   
    ≥
   
   
    0
   
   
    ,
   
   
   
    
     β
    
    
     i
    
   
   
    ≥
   
   
    0
   
  
  
   s.t.\quad\alpha_i\ge0,\quad\beta_i\ge0
  
 
s.t.αi​≥0,βi​≥0

其对偶问题为:

       max
      
      
       ⁡
      
     
     
      
       α
      
      
       ,
      
      
       β
      
     
    
    
     
      
       min
      
      
       ⁡
      
     
     
      
       w
      
      
       ,
      
      
       b
      
      
       ,
      
      
       ξ
      
     
    
    
     L
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     ,
    
    
     ξ
    
    
     ,
    
    
     α
    
    
     ,
    
    
     β
    
    
     )
    
   
   
    \max\limits_{\alpha,\beta}\min\limits_{w,b,\xi} L(w,b,\xi,\alpha,\beta)
   
  
 α,βmax​w,b,ξmin​L(w,b,ξ,α,β)

满足以下KKT条件:

      ∇
     
     
      w
     
    
    
     L
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     ,
    
    
     ξ
    
    
     ,
    
    
     α
    
    
     ,
    
    
     β
    
    
     )
    
    
     =
    
    
     w
    
    
     −
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     =
    
    
     0
    
   
   
    \nabla_wL(w,b,\xi,\alpha,\beta)=w-\sum\limits_{i=1}^n\alpha_iy^{(i)}x^{(i)}=0
   
  
 ∇w​L(w,b,ξ,α,β)=w−i=1∑n​αi​y(i)x(i)=0可得:
 
  
   
    
     w
    
    
     =
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
   
   
    w=\sum\limits_{i=1}^n\alpha_iy^{(i)}x^{(i)}
   
  
 w=i=1∑n​αi​y(i)x(i)
 
  
   
    
     
      ∇
     
     
      b
     
    
    
     L
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     ,
    
    
     ξ
    
    
     ,
    
    
     α
    
    
     ,
    
    
     β
    
    
     )
    
    
     =
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     =
    
    
     0
    
   
   
    \nabla_bL(w,b,\xi,\alpha,\beta)=\sum\limits_{i=1}^n\alpha_iy^{(i)}=0
   
  
 ∇b​L(w,b,ξ,α,β)=i=1∑n​αi​y(i)=0
 
  
   
    
     
      ∇
     
     
      
       ξ
      
      
       i
      
     
    
    
     L
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     ,
    
    
     
      ξ
     
     
      i
     
    
    
     ,
    
    
     α
    
    
     ,
    
    
     β
    
    
     )
    
    
     =
    
    
     C
    
    
     −
    
    
     
      α
     
     
      i
     
    
    
     −
    
    
     
      β
     
     
      i
     
    
    
     =
    
    
     0
    
   
   
    \nabla_{\xi_i} L(w,b,\xi_i,\alpha,\beta)=C-\alpha_i-\beta_i=0
   
  
 ∇ξi​​L(w,b,ξi​,α,β)=C−αi​−βi​=0

将以上得到的三个条件带入拉格朗日化的函数可得:

           max
          
          
           ⁡
          
         
         
          α
         
        
        
         L
        
        
         (
        
        
         w
        
        
         ,
        
        
         b
        
        
         ,
        
        
         ξ
        
        
         ,
        
        
         α
        
        
         ,
        
        
         β
        
        
         )
        
       
      
     
     
      
       
        
        
         =
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         −
        
        
         
          1
         
         
          2
         
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          ∑
         
         
          
           j
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          α
         
         
          j
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         
          y
         
         
          
           (
          
          
           j
          
          
           )
          
         
        
        
         <
        
        
         
          x
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         ,
        
        
         
          x
         
         
          
           (
          
          
           j
          
          
           )
          
         
        
        
         >
        
       
      
     
    
    
     
      
       
        
         s
        
        
         .
        
        
         t
        
        
         .
        
        
       
      
     
     
      
       
        
        
         0
        
        
         ≤
        
        
         
          α
         
         
          i
         
        
        
         ≤
        
        
         C
        
       
      
     
    
    
     
      
       
      
     
     
      
       
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         =
        
        
         0
        
       
      
     
    
   
   
    \begin{aligned}\max\limits_\alpha L(w,b,\xi,\alpha,\beta)&=\sum\limits_{i=1}^n\alpha_i-\frac{1}{2}\sum\limits_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy^{(i)}y^{(j)}<x^{(i)},x^{(j)}>\\ s.t.\quad&0\le\alpha_i\le C\\&\sum\limits_{i=1}^n\alpha_iy^{(i)}=0\end{aligned}
   
  
 αmax​L(w,b,ξ,α,β)s.t.​=i=1∑n​αi​−21​i=1∑n​j=1∑n​αi​αj​y(i)y(j)<x(i),x(j)>0≤αi​≤Ci=1∑n​αi​y(i)=0​

同时其满足KKT条件如下:

     1
    
    
     −
    
    
     
      ξ
     
     
      i
     
    
    
     −
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     (
    
    
     
      w
     
     
      T
     
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     +
    
    
     b
    
    
     )
    
    
     ≤
    
    
     0
    
   
   
    1-\xi_i-y^{(i)}(w^Tx^{(i)}+b)\le0
   
  
 1−ξi​−y(i)(wTx(i)+b)≤0
 
  
   
    
     
      α
     
     
      i
     
    
    
     [
    
    
     1
    
    
     −
    
    
     
      ξ
     
     
      i
     
    
    
     −
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     (
    
    
     
      w
     
     
      T
     
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     +
    
    
     b
    
    
     )
    
    
     ]
    
    
     =
    
    
     0
    
   
   
    \alpha_i[1-\xi_i-y^{(i)}(w^Tx^{(i)}+b)]=0
   
  
 αi​[1−ξi​−y(i)(wTx(i)+b)]=0
 
  
   
    
     C
    
    
     −
    
    
     
      α
     
     
      i
     
    
    
     −
    
    
     
      β
     
     
      i
     
    
    
     =
    
    
     0
    
   
   
    C-\alpha_i-\beta_i=0
   
  
 C−αi​−βi​=0
 
  
   
    
     
      ξ
     
     
      i
     
    
    
     ≥
    
    
     0
    
   
   
    \xi_i\ge0
   
  
 ξi​≥0
 
  
   
    
     
      β
     
     
      i
     
    
    
     
      ξ
     
     
      i
     
    
    
     =
    
    
     0
    
   
   
    \beta_i\xi_i=0
   
  
 βi​ξi​=0

此时我们可以针对

     α
    
    
     i
    
   
  
  
   \alpha_i
  
 
αi​不同的取值进行讨论:
  • 如果 α i = 0 \alpha_i=0 αi​=0,可得 β i = C ≠ 0 \beta_i=C\ne0 βi​=C​=0,因此 ξ i = 0 \xi_i=0 ξi​=0, y ( i ) ( w T x ( i ) + b ) ≥ 1 y^{(i)}(w^Tx^{(i)}+b)\ge1 y(i)(wTx(i)+b)≥1,说明样本点 x x x落在分隔边界上或者分隔边界外并且被分类正确,不是支撑向量
  • 如果 0 < α i < C 0<\alpha_i<C 0<αi​<C,那么 β i ≠ 0 , ξ i = 0 \beta_i\ne0,\xi_i=0 βi​​=0,ξi​=0,此时 1 − ξ i − y ( i ) ( w T x ( i ) + b ) = 0 1-\xi_i-y^{(i)}(w^Tx^{(i)}+b)=0 1−ξi​−y(i)(wTx(i)+b)=0,因此可得 y ( i ) ( w T x ( i ) + b ) = 1 y^{(i)}(w^Tx^{(i)}+b)=1 y(i)(wTx(i)+b)=1,所以此时的样本点落在最大分隔边界上,是支撑向量
  • 如果 α i = C \alpha_i=C αi​=C,此时 β i = 0 \beta_i=0 βi​=0,此时 ξ i \xi_i ξi​的取值就变得不一定,但一定是大于等于0的,同时 1 − ξ i − y ( i ) ( w T x ( i ) + b ) = 0 1-\xi_i-y^{(i)}(w^Tx^{(i)}+b)=0 1−ξi​−y(i)(wTx(i)+b)=0,所以可得 y ( i ) ( w T x ( i ) + b ) ≤ 1 y^{(i)}(w^Tx^{(i)}+b)\le1 y(i)(wTx(i)+b)≤1。- 如果 0 ≤ ξ i < 1 0\le\xi_i<1 0≤ξi​<1,此时 y ( i ) ( w T x ( i ) + b ) = 1 − ξ i > 0 y^{(i)}(w^Tx^{(i)}+b)=1-\xi_i>0 y(i)(wTx(i)+b)=1−ξi​>0,说明此时的样本点位于最大分隔边界内部并且分类正确。- 如果 ξ i = 1 \xi_i=1 ξi​=1,此时 y ( i ) ( w T x ( i ) + b ) = 1 − ξ i = 0 y^{(i)}(w^Tx^{(i)}+b)=1-\xi_i=0 y(i)(wTx(i)+b)=1−ξi​=0,说明此时样本点位于分隔平面上,无法进行正确的分类。- 如果 ξ i > 1 \xi_i>1 ξi​>1,此时 y ( i ) ( w T x ( i ) + b ) = 1 − ξ i < 0 y^{(i)}(w^Tx^{(i)}+b)=1-\xi_i<0 y(i)(wTx(i)+b)=1−ξi​<0,说明此时样本点分类错误

四、带核函数的SVM

  使用带核函数的SVM主要用来处理线性不可分的情况,已经不是单纯的处理部分异常值的问题。下面的左图很明显不可能靠一条线性的线来讲两个类别给区分开,只能是如右图所示将其映射至高维空间。
在这里插入图片描述
  假设原来的样本点为

    x
   
  
  
   x
  
 
x,我们射映射后的样本点为

 
  
   
    ϕ
   
   
    (
   
   
    x
   
   
    )
   
  
  
   \phi(x)
  
 
ϕ(x),那么其分割的超平面可以表示为

 
  
   
    w
   
   
    ϕ
   
   
    (
   
   
    x
   
   
    )
   
   
    +
   
   
    b
   
  
  
   w\phi(x)+b
  
 
wϕ(x)+b,其对偶问题就变成了:

 
  
   
    
     
      
       
        
         
          
           max
          
          
           ⁡
          
         
         
          α
         
        
        
         L
        
        
         (
        
        
         w
        
        
         ,
        
        
         b
        
        
         ,
        
        
         ξ
        
        
         ,
        
        
         α
        
        
         ,
        
        
         β
        
        
         )
        
       
      
     
     
      
       
        
        
         =
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         −
        
        
         
          1
         
         
          2
         
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          ∑
         
         
          
           j
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          α
         
         
          j
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         
          y
         
         
          
           (
          
          
           j
          
          
           )
          
         
        
        
         <
        
        
         ϕ
        
        
         (
        
        
         
          x
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         )
        
        
         ,
        
        
         ϕ
        
        
         (
        
        
         
          x
         
         
          
           (
          
          
           j
          
          
           )
          
         
        
        
         )
        
        
         >
        
       
      
     
    
    
     
      
       
        
         s
        
        
         .
        
        
         t
        
        
         .
        
        
       
      
     
     
      
       
        
        
         0
        
        
         ≤
        
        
         
          α
         
         
          i
         
        
        
         ≤
        
        
         C
        
       
      
     
    
    
     
      
       
      
     
     
      
       
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         =
        
        
         0
        
       
      
     
    
   
   
    \begin{aligned}\max\limits_\alpha L(w,b,\xi,\alpha,\beta)&=\sum\limits_{i=1}^n\alpha_i-\frac{1}{2}\sum\limits_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy^{(i)}y^{(j)}<\phi(x^{(i)}),\phi(x^{(j)})>\\ s.t.\quad&0\le\alpha_i\le C\\&\sum\limits_{i=1}^n\alpha_iy^{(i)}=0\end{aligned}
   
  
 αmax​L(w,b,ξ,α,β)s.t.​=i=1∑n​αi​−21​i=1∑n​j=1∑n​αi​αj​y(i)y(j)<ϕ(x(i)),ϕ(x(j))>0≤αi​≤Ci=1∑n​αi​y(i)=0​

核函数的作用

  我们假设

    K
   
   
    (
   
   
    
     x
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    ,
   
   
    
     x
    
    
     
      (
     
     
      j
     
     
      )
     
    
   
   
    )
   
  
  
   K(x^{(i)},x^{(j)})
  
 
K(x(i),x(j))为核函数,其可以代替

 
  
   
    <
   
   
    ϕ
   
   
    (
   
   
    
     x
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    )
   
   
    ,
   
   
    ϕ
   
   
    (
   
   
    
     x
    
    
     
      (
     
     
      j
     
     
      )
     
    
   
   
    )
   
   
    >
   
  
  
   <\phi(x^{(i)}),\phi(x^{(j)})>
  
 
<ϕ(x(i)),ϕ(x(j))>来进行相同的运算。原始向量映射至高纬空间再进行点积运算是一件十分繁琐的事情,而使用核函数使得我们无需进行这一步骤,以另一种方式达到同样的效果,省去大量计算,下面将举例说明:

我们假设原始数据为

     x
    
    
     i
    
   
   
    =
   
   
    [
   
   
    
     x
    
    
     
      i
     
     
      1
     
    
   
   
    
     x
    
    
     
      i
     
     
      2
     
    
   
   
    ]
   
   
   
   
    
     x
    
    
     j
    
   
   
    =
   
   
    [
   
   
    
     x
    
    
     
      j
     
     
      1
     
    
   
   
    
     x
    
    
     
      j
     
     
      2
     
    
   
   
    ]
   
  
  
   x_i=[x_{i1}x_{i2}]\quad\quad x_j=[x_{j1}x_{j2}]
  
 
xi​=[xi1​xi2​]xj​=[xj1​xj2​]

我们想要实现

    <
   
   
    
     x
    
    
     i
    
   
   
    ,
   
   
    
     x
    
    
     j
    
   
   
    
     >
    
    
     2
    
   
  
  
   <x_i,x_j>^2
  
 
<xi​,xj​>2的功能:

 
  
   
    
     
      
       
        
         K
        
        
         (
        
        
         
          x
         
         
          i
         
        
        
         ,
        
        
         
          x
         
         
          j
         
        
        
         )
        
       
      
     
     
      
       
        
        
         =
        
        
         <
        
        
         
          x
         
         
          i
         
        
        
         ,
        
        
         
          x
         
         
          j
         
        
        
         
          >
         
         
          2
         
        
       
      
     
    
    
     
      
       
      
     
     
      
       
        
        
         =
        
        
         (
        
        
         
          x
         
         
          
           i
          
          
           1
          
         
        
        
         
          x
         
         
          
           j
          
          
           1
          
         
        
        
         +
        
        
         
          x
         
         
          
           i
          
          
           2
          
         
        
        
         
          x
         
         
          
           j
          
          
           2
          
         
        
        
         
          )
         
         
          2
         
        
       
      
     
    
    
     
      
       
      
     
     
      
       
        
        
         =
        
        
         (
        
        
         
          x
         
         
          
           i
          
          
           1
          
         
         
          2
         
        
        
         
          x
         
         
          
           j
          
          
           1
          
         
         
          2
         
        
        
         +
        
        
         
          x
         
         
          
           i
          
          
           2
          
         
         
          2
         
        
        
         
          x
         
         
          
           j
          
          
           2
          
         
         
          2
         
        
        
         +
        
        
         2
        
        
         
          x
         
         
          
           i
          
          
           1
          
         
        
        
         
          x
         
         
          
           j
          
          
           1
          
         
        
        
         
          x
         
         
          
           i
          
          
           2
          
         
        
        
         
          x
         
         
          
           j
          
          
           2
          
         
        
        
         )
        
       
      
     
    
    
     
      
       
      
     
     
      
       
        
        
         =
        
        
         <
        
        
         ϕ
        
        
         (
        
        
         
          x
         
         
          1
         
        
        
         )
        
        
         ,
        
        
         ϕ
        
        
         (
        
        
         
          x
         
         
          2
         
        
        
         )
        
        
         >
        
       
      
     
    
   
   
    \begin{aligned}K(x_i,x_j)&=<x_i,x_j>^2\\ &=(x_{i1}x_{j1}+x_{i2}x_{j2})^2\\ &= (x_{i1}^2x_{j1}^2+x_{i2}^2x_{j2}^2+2x_{i1}x_{j1}x_{i2}x_{j2})\\&=<\phi(x_1),\phi(x_2)>\end{aligned}
   
  
 K(xi​,xj​)​=<xi​,xj​>2=(xi1​xj1​+xi2​xj2​)2=(xi12​xj12​+xi22​xj22​+2xi1​xj1​xi2​xj2​)=<ϕ(x1​),ϕ(x2​)>​


 
  
   
    ϕ
   
   
    (
   
   
    
     x
    
    
     i
    
   
   
    )
   
   
    =
   
   
    [
   
   
    
     x
    
    
     
      i
     
     
      1
     
    
    
     2
    
   
   
    ,
   
   
    
     x
    
    
     
      i
     
     
      2
     
    
    
     2
    
   
   
    ,
   
   
    
     2
    
   
   
    
     x
    
    
     
      i
     
     
      1
     
    
   
   
    
     x
    
    
     
      i
     
     
      2
     
    
   
   
    ]
   
  
  
   \phi(x_i)=[x_{i1}^2,x_{i2}^2,\sqrt{2}x_{i1}x_{i2}]
  
 
ϕ(xi​)=[xi12​,xi22​,2​xi1​xi2​]


 
  
   
    ϕ
   
   
    (
   
   
    
     x
    
    
     j
    
   
   
    )
   
   
    =
   
   
    [
   
   
    
     x
    
    
     
      j
     
     
      1
     
    
    
     2
    
   
   
    ,
   
   
    
     x
    
    
     
      j
     
     
      2
     
    
    
     2
    
   
   
    ,
   
   
    
     2
    
   
   
    
     x
    
    
     
      j
     
     
      1
     
    
   
   
    
     x
    
    
     
      j
     
     
      2
     
    
   
   
    ]
   
  
  
   \phi(x_j)=[x_{j1}^2,x_{j2}^2,\sqrt{2}x_{j1}x_{j2}]
  
 
ϕ(xj​)=[xj12​,xj22​,2​xj1​xj2​]

可见使用核函数无需将数据映射至高维,大大简化了计算的过程。

核函数的要求

    G
   
   
    r
   
   
    a
   
   
    m
   
  
  
   Gram
  
 
Gram矩阵:

      G
     
     
      
       i
      
      
       j
      
     
    
    
     =
    
    
     K
    
    
     (
    
    
     
      x
     
     
      i
     
    
    
     ,
    
    
     
      x
     
     
      j
     
    
    
     )
    
   
   
    G_{ij}=K(x_i,x_j)
   
  
 Gij​=K(xi​,xj​)

如果

    G
   
   
    r
   
   
    a
   
   
    m
   
  
  
   Gram
  
 
Gram矩阵为对称矩阵并且为半正定矩阵,那么

 
  
   
    K
   
   
    (
   
   
    
     x
    
    
     i
    
   
   
    ,
   
   
    
     x
    
    
     j
    
   
   
    )
   
  
  
   K(x_i,x_j)
  
 
K(xi​,xj​)可以成为核函数。

常见的核函数

①多项式核函数 POLY

    K
   
   
    (
   
   
    
     x
    
    
     i
    
   
   
    ,
   
   
    
     x
    
    
     j
    
   
   
    )
   
   
    =
   
   
    (
   
   
    <
   
   
    
     x
    
    
     i
    
   
   
    ,
   
   
    
     x
    
    
     j
    
   
   
    >
   
   
    +
   
   
    c
   
   
    
     )
    
    
     d
    
   
  
  
   K(x_i,x_j)=(<x_i,x_j>+c)^d
  
 
K(xi​,xj​)=(<xi​,xj​>+c)d
  •                                c                         ≥                         0                              c\ge0                  c≥0控制低阶项的强度
    
  • 特殊情况,当 c = 0 , d = 1 c=0,d=1 c=0,d=1时就是线性核,跟无核一样

②高斯核函数 RBF

    K
   
   
    (
   
   
    
     x
    
    
     i
    
   
   
    ,
   
   
    
     x
    
    
     j
    
   
   
    )
   
   
    =
   
   
    e
   
   
    x
   
   
    p
   
   
    (
   
   
    −
   
   
    
     
      ∣
     
     
      ∣
     
     
      
       x
      
      
       i
      
     
     
      −
     
     
      
       x
      
      
       j
      
     
     
      ∣
     
     
      
       ∣
      
      
       2
      
      
       2
      
     
    
    
     
      2
     
     
      
       σ
      
      
       2
      
     
    
   
   
    )
   
  
  
   K(x_i,x_j)=exp(-\frac{||x_i-x_j||^2_2}{2\sigma^2})
  
 
K(xi​,xj​)=exp(−2σ2∣∣xi​−xj​∣∣22​​)
  • 当 x i = x j x_i=x_j xi​=xj​,值为1,当 x i 与 x j x_i与x_j xi​与xj​距离增加,值倾向于0,使用高斯核函数之前需要将特征正规划
  • 相当于做一个高维空间的高斯分布映射, σ \sigma σ越大,则正态分布的曲线越舒缓。
  • 使用高斯核之前需要将数据进行正规化在这里插入图片描述

五、将SVM扩展到支持多个类别

①OVR

  对于K个类别的情况,训练K个SVM,第j个SVM用于判断任意条数据是属于类别j还是属于类别非j.预测的时候,具有最大值的

     w
    
    
     i
    
    
     T
    
   
   
    x
   
   
    +
   
   
    
     b
    
    
     i
    
   
  
  
   w_i^Tx+b_i
  
 
wiT​x+bi​表示给定的数据

 
  
   
    x
   
  
  
   x
  
 
x属于类别

 
  
   
    i
   
  
  
   i
  
 
i.

②OVO

  对于K个类别的情况,训练

    K
   
   
    ∗
   
   
    (
   
   
    K
   
   
    −
   
   
    1
   
   
    )
   
   
    /
   
   
    2
   
  
  
   K*(K-1)/2
  
 
K∗(K−1)/2个SVM,每一个SVM只用于判读任意条数据是属于K中的特定两个类别。预测的时候,使用

 
  
   
    K
   
   
    ∗
   
   
    (
   
   
    K
   
   
    −
   
   
    1
   
   
    )
   
   
    /
   
   
    2
   
  
  
   K*(K-1)/2
  
 
K∗(K−1)/2个SVM做

 
  
   
    K
   
   
    ∗
   
   
    (
   
   
    K
   
   
    −
   
   
    1
   
   
    )
   
   
    /
   
   
    2
   
  
  
   K*(K-1)/2
  
 
K∗(K−1)/2次预测,使用计票的方式决定数据被分类为哪个类别的次数最多,就认为数据

 
  
   
    x
   
  
  
   x
  
 
x属此类别。

在这里插入图片描述

六、SVM的求解

  经过对偶变换,我们将原始问题转化成了关于求解

     α
    
    
     ∗
    
   
  
  
   \alpha^*
  
 
α∗的问题:

 
  
   
    
     
      
       
        
         
          
           min
          
          
           ⁡
          
         
         
          α
         
        
        
         L
        
        
         (
        
        
         w
        
        
         ,
        
        
         b
        
        
         ,
        
        
         ξ
        
        
         ,
        
        
         α
        
        
         ,
        
        
         β
        
        
         )
        
       
      
     
     
      
       
        
        
         =
        
        
         
          1
         
         
          2
         
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          ∑
         
         
          
           j
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          α
         
         
          j
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         
          y
         
         
          
           (
          
          
           j
          
          
           )
          
         
        
        
         K
        
        
         (
        
        
         
          x
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         ,
        
        
         
          x
         
         
          
           (
          
          
           j
          
          
           )
          
         
        
        
         )
        
        
         −
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
       
      
     
    
    
     
      
       
        
         s
        
        
         .
        
        
         t
        
        
         .
        
        
       
      
     
     
      
       
        
        
         0
        
        
         ≤
        
        
         
          α
         
         
          i
         
        
        
         ≤
        
        
         C
        
       
      
     
    
    
     
      
       
      
     
     
      
       
        
        
         
          ∑
         
         
          
           i
          
          
           =
          
          
           1
          
         
         
          n
         
        
        
         
          α
         
         
          i
         
        
        
         
          y
         
         
          
           (
          
          
           i
          
          
           )
          
         
        
        
         =
        
        
         0
        
       
      
     
    
   
   
    \begin{aligned}\min\limits_\alpha L(w,b,\xi,\alpha,\beta)&=\frac{1}{2}\sum\limits_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy^{(i)}y^{(j)}K(x^{(i)},x^{(j)})-\sum\limits_{i=1}^n\alpha_i\\ s.t.\quad&0\le\alpha_i\le C\\&\sum\limits_{i=1}^n\alpha_iy^{(i)}=0\end{aligned}
   
  
 αmin​L(w,b,ξ,α,β)s.t.​=21​i=1∑n​j=1∑n​αi​αj​y(i)y(j)K(x(i),x(j))−i=1∑n​αi​0≤αi​≤Ci=1∑n​αi​y(i)=0​

  这里最优解

     α
    
    
     ∗
    
   
  
  
   \alpha^*
  
 
α∗是

 
  
   
    n
   
  
  
   n
  
 
n维的,直接求解在

 
  
   
    n
   
  
  
   n
  
 
n过大的情况下并不能完成,因此我们可以采用坐标轮换法的思想:

在这里插入图片描述
其原理就是对于高维的

    x
   
  
  
   x
  
 
x寻找最优解的过程转化为一系列低纬的

 
  
   
    
     x
    
    
     i
    
   
  
  
   x_i
  
 
xi​分量求解过程,利用梯度下降的方法,在各自的维度上依次寻找最优解,最终可以达到相同的效果。

  关于SVM求解我们使用较多的是SMO算法,其就是采用了坐标轮换法的思想,下面将进行介绍:

如果我们每次只选择更新一个参数

     α
    
    
     i
    
   
  
  
   \alpha_i
  
 
αi​,那么他势必会打破

 
  
   
    
     ∑
    
    
     
      i
     
     
      =
     
     
      1
     
    
    
     n
    
   
   
    
     α
    
    
     i
    
   
   
    
     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    =
   
   
    0
   
  
  
   \sum\limits_{i=1}^n\alpha_iy^{(i)}=0
  
 
i=1∑n​αi​y(i)=0的约束条件,因此SMO算法每次针对两个参数进行更新

 
  
   
    
     α
    
    
     1
    
   
   
    和
   
   
    
     α
    
    
     2
    
   
  
  
   \alpha_1和\alpha_2
  
 
α1​和α2​,这两个参数满足:
 
  
   
    
     
      α
     
     
      1
     
    
    
     
      y
     
     
      
       (
      
      
       1
      
      
       )
      
     
    
    
     +
    
    
     
      α
     
     
      2
     
    
    
     
      y
     
     
      
       (
      
      
       2
      
      
       )
      
     
    
    
     =
    
    
     −
    
    
     
      ∑
     
     
      
       k
      
      
       =
      
      
       3
      
     
     
      n
     
    
    
     
      α
     
     
      k
     
    
    
     
      y
     
     
      
       (
      
      
       k
      
      
       )
      
     
    
   
   
    \alpha_1y^{(1)}+\alpha_2y^{(2)}=-\sum\limits_{k=3}^n\alpha_ky^{(k)}
   
  
 α1​y(1)+α2​y(2)=−k=3∑n​αk​y(k)

我们不妨设

    −
   
   
    
     ∑
    
    
     
      k
     
     
      =
     
     
      3
     
    
    
     n
    
   
   
    
     α
    
    
     k
    
   
   
    
     y
    
    
     
      (
     
     
      k
     
     
      )
     
    
   
  
  
   -\sum\limits_{k=3}^n\alpha_ky^{(k)}
  
 
−k=3∑n​αk​y(k)为一个固定的常数

 
  
   
    ζ
   
  
  
   \zeta
  
 
ζ,那么我们可以得到
 
  
   
    
     
      α
     
     
      1
     
    
    
     
      y
     
     
      
       (
      
      
       1
      
      
       )
      
     
    
    
     +
    
    
     
      α
     
     
      2
     
    
    
     
      y
     
     
      
       (
      
      
       2
      
      
       )
      
     
    
    
     =
    
    
     ζ
    
   
   
    \alpha_1y^{(1)}+\alpha_2y^{(2)}=\zeta
   
  
 α1​y(1)+α2​y(2)=ζ

因此我们可以得到

      α
     
     
      1
     
    
    
     =
    
    
     ζ
    
    
     
      y
     
     
      
       (
      
      
       1
      
      
       )
      
     
    
    
     −
    
    
     
      α
     
     
      2
     
    
    
     
      y
     
     
      
       (
      
      
       2
      
      
       )
      
     
    
    
     
      y
     
     
      
       (
      
      
       1
      
      
       )
      
     
    
   
   
    \alpha_1=\zeta y^{(1)}-\alpha_2y^{(2)}y^{(1)}
   
  
 α1​=ζy(1)−α2​y(2)y(1)

求解过程

**1.先求得未限制范围的

      α
     
     
      2
     
     
      
       n
      
      
       e
      
      
       w
      
      
       ,
      
      
       u
      
      
       n
      
      
       c
      
     
    
   
   
    \alpha_2^{new,unc}
   
  
 α2new,unc​**

下面介绍

     α
    
    
     2
    
    
     
      n
     
     
      e
     
     
      w
     
     
      ,
     
     
      u
     
     
      n
     
     
      c
     
    
   
  
  
   \alpha_2^{new,unc}
  
 
α2new,unc​的求解过程:

记:

    g
   
   
    (
   
   
    x
   
   
    )
   
   
    =
   
   
    
     ∑
    
    
     
      i
     
     
      =
     
     
      1
     
    
    
     n
    
   
   
    
     α
    
    
     i
    
   
   
    
     y
    
    
     i
    
   
   
    K
   
   
    (
   
   
    
     x
    
    
     i
    
   
   
    ,
   
   
    x
   
   
    )
   
   
    +
   
   
    b
   
  
  
   g(x)=\sum\limits_{i=1}^n\alpha_iy_iK(x_i,x)+b
  
 
g(x)=i=1∑n​αi​yi​K(xi​,x)+b

令:

     E
    
    
     i
    
   
   
    =
   
   
    g
   
   
    (
   
   
    
     x
    
    
     i
    
   
   
    )
   
   
    −
   
   
    
     y
    
    
     i
    
   
   
    =
   
   
    (
   
   
    
     ∑
    
    
     
      j
     
     
      =
     
     
      1
     
    
    
     n
    
   
   
    
     α
    
    
     j
    
   
   
    
     y
    
    
     j
    
   
   
    K
   
   
    (
   
   
    
     x
    
    
     j
    
   
   
    ,
   
   
    
     x
    
    
     i
    
   
   
    )
   
   
    +
   
   
    b
   
   
    )
   
   
    −
   
   
    
     y
    
    
     i
    
   
  
  
   E_i=g(x_i)-y_i=(\sum\limits_{j=1}^n\alpha_jy_jK(x_j,x_i)+b)-y_i
  
 
Ei​=g(xi​)−yi​=(j=1∑n​αj​yj​K(xj​,xi​)+b)−yi​

引入:

      v
     
     
      i
     
    
    
     =
    
    
     
      ∑
     
     
      
       j
      
      
       =
      
      
       3
      
     
     
      n
     
    
    
     
      α
     
     
      j
     
    
    
     
      y
     
     
      j
     
    
    
     K
    
    
     (
    
    
     
      x
     
     
      i
     
    
    
     ,
    
    
     
      x
     
     
      j
     
    
    
     )
    
    
     =
    
    
     g
    
    
     (
    
    
     
      x
     
     
      i
     
    
    
     )
    
    
     −
    
    
     
      ∑
     
     
      
       j
      
      
       =
      
      
       1
      
     
     
      2
     
    
    
     
      α
     
     
      j
     
    
    
     
      y
     
     
      j
     
    
    
     K
    
    
     (
    
    
     
      x
     
     
      i
     
    
    
     ,
    
    
     
      x
     
     
      j
     
    
    
     )
    
    
     −
    
    
     b
    
   
   
    v_i=\sum\limits_{j=3}^n\alpha_jy_jK(x_i,x_j)=g(x_i)-\sum\limits_{j=1}^2\alpha_jy_jK(x_i,x_j)-b
   
  
 vi​=j=3∑n​αj​yj​K(xi​,xj​)=g(xi​)−j=1∑2​αj​yj​K(xi​,xj​)−b

目标函数:

     W
    
    
     (
    
    
     α
    
    
     )
    
    
     =
    
    
     
      
       min
      
      
       ⁡
      
     
     
      α
     
    
    
     L
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     ,
    
    
     ξ
    
    
     ,
    
    
     α
    
    
     ,
    
    
     β
    
    
     )
    
    
     =
    
    
     
      1
     
     
      2
     
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      ∑
     
     
      
       j
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     
      α
     
     
      j
     
    
    
     
      y
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     
      y
     
     
      
       (
      
      
       j
      
      
       )
      
     
    
    
     K
    
    
     (
    
    
     
      x
     
     
      
       (
      
      
       i
      
      
       )
      
     
    
    
     ,
    
    
     
      x
     
     
      
       (
      
      
       j
      
      
       )
      
     
    
    
     )
    
    
     −
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
   
   
    W(\alpha)=\min\limits_\alpha L(w,b,\xi,\alpha,\beta)=\frac{1}{2}\sum\limits_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy^{(i)}y^{(j)}K(x^{(i)},x^{(j)})-\sum\limits_{i=1}^n\alpha_i
   
  
 W(α)=αmin​L(w,b,ξ,α,β)=21​i=1∑n​j=1∑n​αi​αj​y(i)y(j)K(x(i),x(j))−i=1∑n​αi​

 
  
   
    
     W
    
    
     (
    
    
     
      α
     
     
      1
     
    
    
     ,
    
    
     
      α
     
     
      2
     
    
    
     )
    
    
     =
    
    
     
      1
     
     
      2
     
    
    
     
      α
     
     
      1
     
     
      2
     
    
    
     
      K
     
     
      11
     
    
    
     +
    
    
     
      1
     
     
      2
     
    
    
     
      α
     
     
      2
     
     
      2
     
    
    
     
      K
     
     
      22
     
    
    
     +
    
    
     
      α
     
     
      1
     
    
    
     
      α
     
     
      2
     
    
    
     
      y
     
     
      1
     
    
    
     
      y
     
     
      2
     
    
    
     
      K
     
     
      12
     
    
    
     +
    
    
     
      y
     
     
      1
     
    
    
     
      v
     
     
      1
     
    
    
     
      α
     
     
      1
     
    
    
     +
    
    
     
      y
     
     
      2
     
    
    
     
      v
     
     
      2
     
    
    
     
      α
     
     
      2
     
    
    
     −
    
    
     (
    
    
     
      α
     
     
      1
     
    
    
     +
    
    
     
      α
     
     
      2
     
    
    
     )
    
    
     +
    
    
     O
    
   
   
    W(\alpha_1,\alpha_2)=\frac{1}{2}\alpha_1^2K_{11}+\frac{1}{2}\alpha_2^2K_{22}+\alpha_1\alpha_2y_1y_2K_{12}+y_1v_1\alpha_1+y_2v_2\alpha_2-(\alpha_1+\alpha_2)+O
   
  
 W(α1​,α2​)=21​α12​K11​+21​α22​K22​+α1​α2​y1​y2​K12​+y1​v1​α1​+y2​v2​α2​−(α1​+α2​)+O

这里

    O
   
  
  
   O
  
 
O为其他无关常数项,对结果没什么影响,一会儿我们直接省去

前面我们已经说明过

     α
    
    
     1
    
   
   
    =
   
   
    ζ
   
   
    
     y
    
    
     
      (
     
     
      1
     
     
      )
     
    
   
   
    −
   
   
    
     α
    
    
     2
    
   
   
    
     y
    
    
     
      (
     
     
      2
     
     
      )
     
    
   
   
    
     y
    
    
     
      (
     
     
      1
     
     
      )
     
    
   
  
  
   \alpha_1=\zeta y^{(1)}-\alpha_2y^{(2)}y^{(1)}
  
 
α1​=ζy(1)−α2​y(2)y(1),因此我们将

 
  
   
    
     α
    
    
     1
    
   
  
  
   \alpha_1
  
 
α1​替换掉得到:

 
  
   
    
     W
    
    
     (
    
    
     
      α
     
     
      2
     
    
    
     )
    
    
     =
    
    
     
      1
     
     
      2
     
    
    
     (
    
    
     ζ
    
    
     −
    
    
     
      α
     
     
      2
     
    
    
     
      y
     
     
      2
     
    
    
     
      )
     
     
      2
     
    
    
     
      K
     
     
      11
     
    
    
     +
    
    
     
      1
     
     
      2
     
    
    
     
      α
     
     
      2
     
     
      2
     
    
    
     
      K
     
     
      22
     
    
    
     +
    
    
     (
    
    
     ζ
    
    
     −
    
    
     
      α
     
     
      2
     
    
    
     
      y
     
     
      2
     
    
    
     )
    
    
     
      α
     
     
      2
     
    
    
     
      y
     
     
      2
     
    
    
     
      K
     
     
      12
     
    
    
     +
    
    
     
      v
     
     
      1
     
    
    
     (
    
    
     ζ
    
    
     −
    
    
     
      α
     
     
      2
     
    
    
     
      y
     
     
      2
     
    
    
     )
    
    
     +
    
    
     
      y
     
     
      2
     
    
    
     
      v
     
     
      2
     
    
    
     
      α
     
     
      2
     
    
    
     −
    
    
     [
    
    
     (
    
    
     ζ
    
    
     
      y
     
     
      1
     
    
    
     −
    
    
     
      α
     
     
      2
     
    
    
     
      y
     
     
      2
     
    
    
     
      y
     
     
      1
     
    
    
     )
    
    
     +
    
    
     
      α
     
     
      2
     
    
    
     ]
    
   
   
    W(\alpha_2)=\frac{1}{2}(\zeta-\alpha_2y_2)^2K_{11}+\frac{1}{2}\alpha_2^2K_{22}+(\zeta -\alpha_2y_2)\alpha_2y_2K_{12}+v_1(\zeta -\alpha_2y_2)+y_2v_2\alpha_2-[(\zeta y_1-\alpha_2y_2y_1)+\alpha_2]
   
  
 W(α2​)=21​(ζ−α2​y2​)2K11​+21​α22​K22​+(ζ−α2​y2​)α2​y2​K12​+v1​(ζ−α2​y2​)+y2​v2​α2​−[(ζy1​−α2​y2​y1​)+α2​]

此时函数里只剩下

     α
    
    
     2
    
   
  
  
   \alpha_2
  
 
α2​一个未知项,我们对其求导得:

 
  
   
    
     
      
       δ
      
      
       W
      
     
     
      
       δ
      
      
       
        α
       
       
        2
       
      
     
    
    
     =
    
    
     
      K
     
     
      11
     
    
    
     
      α
     
     
      2
     
    
    
     +
    
    
     
      K
     
     
      22
     
    
    
     
      α
     
     
      2
     
    
    
     −
    
    
     2
    
    
     
      K
     
     
      12
     
    
    
     
      α
     
     
      2
     
    
    
     −
    
    
     
      K
     
     
      11
     
    
    
     ζ
    
    
     
      y
     
     
      2
     
    
    
     +
    
    
     
      K
     
     
      12
     
    
    
     ζ
    
    
     
      y
     
     
      2
     
    
    
     +
    
    
     
      y
     
     
      1
     
    
    
     
      y
     
     
      2
     
    
    
     −
    
    
     1
    
    
     −
    
    
     
      v
     
     
      1
     
    
    
     
      y
     
     
      2
     
    
    
     +
    
    
     
      v
     
     
      2
     
    
    
     
      y
     
     
      2
     
    
   
   
    \frac{\delta W}{\delta\alpha_2}=K_{11}\alpha_2+K_{22}\alpha_2-2K_{12}\alpha_2-K_{11}\zeta y_2+K_{12}\zeta y_2+y_1y_2-1-v_1y_2+v_2y_2
   
  
 δα2​δW​=K11​α2​+K22​α2​−2K12​α2​−K11​ζy2​+K12​ζy2​+y1​y2​−1−v1​y2​+v2​y2​

令其等于0得:

         (
        
        
         
          K
         
         
          11
         
        
        
         +
        
        
         
          K
         
         
          22
         
        
        
         −
        
        
         2
        
        
         
          K
         
         
          12
         
        
        
         )
        
        
         
          α
         
         
          2
         
        
       
      
     
     
      
       
        
        
         =
        
        
         
          y
         
         
          2
         
        
        
         (
        
        
         
          y
         
         
          2
         
        
        
         −
        
        
         
          y
         
         
          1
         
        
        
         +
        
        
         ζ
        
        
         
          K
         
         
          11
         
        
        
         −
        
        
         ζ
        
        
         
          K
         
         
          12
         
        
        
         +
        
        
         
          v
         
         
          1
         
        
        
         −
        
        
         
          v
         
         
          2
         
        
        
         )
        
       
      
     
    
    
     
      
       
      
     
     
      
       
        
        
         =
        
        
         
          y
         
         
          2
         
        
        
         [
        
        
         
          y
         
         
          2
         
        
        
         −
        
        
         
          y
         
         
          1
         
        
        
         +
        
        
         ζ
        
        
         
          K
         
         
          11
         
        
        
         −
        
        
         ζ
        
        
         
          K
         
         
          12
         
        
        
         +
        
        
         (
        
        
         g
        
        
         (
        
        
         
          x
         
         
          1
         
        
        
         )
        
        
         −
        
        
         
          ∑
         
         
          
           j
          
          
           =
          
          
           1
          
         
         
          2
         
        
        
         
          α
         
         
          j
         
        
        
         
          y
         
         
          j
         
        
        
         
          K
         
         
          
           1
          
          
           j
          
         
        
        
         −
        
        
         b
        
        
         )
        
        
         −
        
        
         (
        
        
         g
        
        
         (
        
        
         
          x
         
         
          2
         
        
        
         )
        
        
         −
        
        
         
          ∑
         
         
          
           j
          
          
           =
          
          
           1
          
         
         
          2
         
        
        
         
          α
         
         
          j
         
        
        
         
          y
         
         
          j
         
        
        
         
          K
         
         
          
           2
          
          
           j
          
         
        
        
         −
        
        
         b
        
        
         )
        
        
         ]
        
       
      
     
    
   
   
    \begin{aligned}(K_{11}+K_{22}-2K_{12})\alpha_2&=y_2(y_2-y_1+\zeta K_{11}-\zeta K_{12}+v_1-v_2)\\&=y_2[y_2-y_1+\zeta K_{11}-\zeta K_{12}+(g(x_1)-\sum\limits_{j=1}^2\alpha_jy_jK_{1j}-b)-(g(x_2)-\sum\limits_{j=1}^2\alpha_jy_jK_{2j}-b)]\end{aligned}
   
  
 (K11​+K22​−2K12​)α2​​=y2​(y2​−y1​+ζK11​−ζK12​+v1​−v2​)=y2​[y2​−y1​+ζK11​−ζK12​+(g(x1​)−j=1∑2​αj​yj​K1j​−b)−(g(x2​)−j=1∑2​αj​yj​K2j​−b)]​

我们令

    η
   
   
    =
   
   
    (
   
   
    
     K
    
    
     11
    
   
   
    +
   
   
    
     K
    
    
     22
    
   
   
    −
   
   
    2
   
   
    
     K
    
    
     12
    
   
   
    )
   
  
  
   \eta=(K_{11}+K_{22}-2K_{12})
  
 
η=(K11​+K22​−2K12​)

我们将

    ζ
   
   
    =
   
   
    
     α
    
    
     1
    
    
     
      o
     
     
      l
     
     
      d
     
    
   
   
    
     y
    
    
     1
    
   
   
    +
   
   
    
     α
    
    
     2
    
    
     
      o
     
     
      l
     
     
      d
     
    
   
   
    
     y
    
    
     2
    
   
  
  
   \zeta=\alpha_1^{old}y_1+\alpha_2^{old}y_2
  
 
ζ=α1old​y1​+α2old​y2​代入式子得:

 
  
   
    
     
      
       
        
         (
        
        
         
          K
         
         
          11
         
        
        
         +
        
        
         
          K
         
         
          22
         
        
        
         −
        
        
         2
        
        
         
          K
         
         
          12
         
        
        
         )
        
        
         
          α
         
         
          2
         
         
          
           n
          
          
           e
          
          
           w
          
          
           ,
          
          
           u
          
          
           n
          
          
           c
          
         
        
       
      
     
     
      
       
        
        
         =
        
        
         
          y
         
         
          2
         
        
        
         [
        
        
         
          E
         
         
          1
         
        
        
         −
        
        
         
          E
         
         
          2
         
        
        
         +
        
        
         
          α
         
         
          2
         
         
          
           o
          
          
           l
          
          
           d
          
         
        
        
         (
        
        
         
          K
         
         
          11
         
        
        
         +
        
        
         
          K
         
         
          22
         
        
        
         −
        
        
         2
        
        
         
          K
         
         
          12
         
        
        
         )
        
        
         ]
        
       
      
     
    
    
     
      
       
      
     
    
    
     
      
       
        
         α
        
        
         2
        
        
         
          n
         
         
          e
         
         
          w
         
         
          ,
         
         
          u
         
         
          n
         
         
          c
         
        
       
      
     
     
      
       
        
        
         =
        
        
         
          α
         
         
          2
         
         
          
           o
          
          
           l
          
          
           d
          
         
        
        
         +
        
        
         
          
           
            y
           
           
            2
           
          
          
           (
          
          
           
            E
           
           
            1
           
          
          
           −
          
          
           
            E
           
           
            2
           
          
          
           )
          
         
         
          η
         
        
       
      
     
    
   
   
    \begin{aligned}(K_{11}+K_{22}-2K_{12})\alpha_2^{new,unc}&=y_2[E_1-E_2+\alpha_2^{old}(K_{11}+K_{22}-2K_{12})]\\\\\alpha_2^{new,unc}&=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta}\end{aligned}
   
  
 (K11​+K22​−2K12​)α2new,unc​α2new,unc​​=y2​[E1​−E2​+α2old​(K11​+K22​−2K12​)]=α2old​+ηy2​(E1​−E2​)​​

**2.求限制范围后的

      α
     
     
      2
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
   
   
    \alpha_2^{new}
   
  
 α2new​**

其中

      α
     
     
      2
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     =
    
    
     
      {
     
     
      
       
        
         
          H
         
        
       
       
        
         
        
       
       
        
         
          
           
            α
           
           
            2
           
           
            
             n
            
            
             e
            
            
             w
            
            
             ,
            
            
             u
            
            
             n
            
            
             c
            
           
          
          
           >
          
          
           H
          
         
        
       
      
      
       
        
         
        
       
      
      
       
        
         
          
           α
          
          
           2
          
          
           
            n
           
           
            e
           
           
            w
           
           
            ,
           
           
            u
           
           
            n
           
           
            c
           
          
         
        
       
       
        
         
        
       
       
        
         
          
           L
          
          
           ≤
          
          
           
            α
           
           
            2
           
           
            
             n
            
            
             e
            
            
             w
            
            
             ,
            
            
             u
            
            
             n
            
            
             c
            
           
          
          
           ≤
          
          
           H
          
         
        
       
      
      
       
        
         
        
       
      
      
       
        
         
          L
         
        
       
       
        
         
        
       
       
        
         
          
           
            α
           
           
            2
           
           
            
             n
            
            
             e
            
            
             w
            
            
             ,
            
            
             u
            
            
             n
            
            
             c
            
           
          
          
           <
          
          
           L
          
         
        
       
      
     
    
   
   
     \alpha_2^{new}=\left\{ \begin{array}{rcl} H & & {\alpha_2^{new,unc}>H}\\\\ \alpha_2^{new,unc} & & {L\le\alpha_2^{new,unc}\le H}\\\\ L & &{\alpha_2^{new,unc}<L} \end{array} \right. 
   
  
 α2new​=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​Hα2new,unc​L​​α2new,unc​>HL≤α2new,unc​≤Hα2new,unc​<L​

这里我们的

     α
    
    
     2
    
    
     
      n
     
     
      e
     
     
      w
     
    
   
  
  
   \alpha_2^{new}
  
 
α2new​是满足一定的约束关系的,

 
  
   
    0
   
   
    ≤
   
   
    
     α
    
    
     i
    
   
   
    ≤
   
   
    C
   
  
  
   0\le \alpha_i\le C
  
 
0≤αi​≤C,同时由于

 
  
   
    
     α
    
    
     1
    
   
   
    
     y
    
    
     
      (
     
     
      1
     
     
      )
     
    
   
   
    +
   
   
    
     α
    
    
     2
    
   
   
    
     y
    
    
     
      (
     
     
      2
     
     
      )
     
    
   
   
    =
   
   
    ζ
   
  
  
   \alpha_1y^{(1)}+\alpha_2y^{(2)}=\zeta
  
 
α1​y(1)+α2​y(2)=ζ,注意这里

 
  
   
    
     y
    
    
     
      (
     
     
      i
     
     
      )
     
    
   
   
    ∈
   
   
    {
   
   
    1
   
   
    −
   
   
    ,
   
   
    1
   
   
    }
   
  
  
   y^{(i)}\in\{1-,1\}
  
 
y(i)∈{1−,1}我们做下面两种假设:
  •                                          y                                       (                               1                               )                                                 y^{(1)}                  y(1)与                                             y                                       (                               2                               )                                                 y^{(2)}                  y(2)同号,此时我们可以得到                                             α                            1                                  +                                   α                            2                                  =                         k                              \alpha_1+\alpha_2=k                  α1​+α2​=k,                                             α                            2                                  =                         k                         −                                   α                            1                                       \alpha_2=k-\alpha_1                  α2​=k−α1​,因为                                             α                            1                                  ∈                         [                         0                         ,                         C                         ]                              \alpha_1\in[0,C]                  α1​∈[0,C],所以                                             α                            2                                  ∈                         [                         −                         C                         +                         k                         ,                         k                         ]                              \alpha_2\in[-C+k,k]                  α2​∈[−C+k,k],又因为                                   k                         =                                   α                            1                                  +                                   α                            2                                       k=\alpha_1+\alpha_2                  k=α1​+α2​,可得                                             α                            2                                  ∈                         [                                   α                            1                                  +                                   α                            2                                  −                         C                         ,                                   α                            1                                  +                                   α                            2                                  ]                              \alpha_2\in[\alpha_1+\alpha_2-C,\alpha_1+\alpha_2]                  α2​∈[α1​+α2​−C,α1​+α2​]
    

  因此可以得到

     L
    
    
     ≤
    
    
     
      α
     
     
      2
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     ≤
    
    
     H
    
   
   
    L\le \alpha_2^{new}\le H
   
  
 L≤α2new​≤H
 
  
   
    
     L
    
    
     =
    
    
     m
    
    
     a
    
    
     x
    
    
     (
    
    
     0
    
    
     ,
    
    
     
      α
     
     
      1
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     +
    
    
     
      α
     
     
      2
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     −
    
    
     C
    
    
     )
    
    
     ,
    
    
    
     H
    
    
     =
    
    
     m
    
    
     i
    
    
     n
    
    
     (
    
    
     C
    
    
     ,
    
    
     
      α
     
     
      1
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     +
    
    
     
      α
     
     
      2
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     )
    
   
   
    L=max(0,\alpha_1^{old}+\alpha_2^{old}-C),\quad H=min(C,\alpha_1^{old}+\alpha_2^{old})
   
  
 L=max(0,α1old​+α2old​−C),H=min(C,α1old​+α2old​)
  •                                          y                                       (                               1                               )                                                 y^{(1)}                  y(1)与                                             y                                       (                               2                               )                                                 y^{(2)}                  y(2)异号,此时我们可以得到                                             α                            1                                  −                                   α                            2                                  =                         k                              \alpha_1-\alpha_2=k                  α1​−α2​=k,因此可以得到                                             α                            2                                  =                                   α                            1                                  −                         k                              \alpha_2=\alpha_1-k                  α2​=α1​−k,因为                                             α                            1                                  ∈                         [                         0                         ,                         C                         ]                              \alpha_1\in[0,C]                  α1​∈[0,C],所以                                             α                            2                                  ∈                         [                         −                         k                         ,                         C                         −                         k                         ]                              \alpha_2\in[-k,C-k]                  α2​∈[−k,C−k],又因为                                   k                         =                                   α                            1                                  −                                   α                            2                                       k=\alpha_1-\alpha_2                  k=α1​−α2​,所以                                             α                            2                                  ∈                         [                                   α                            2                                  −                                   α                            1                                  ,                         C                         +                                   α                            2                                  −                                   α                            1                                  ]                              \alpha_2\in[\alpha_2-\alpha_1,C+\alpha_2-\alpha_1]                  α2​∈[α2​−α1​,C+α2​−α1​]
    

  因此可以得到

     L
    
    
     ≤
    
    
     
      α
     
     
      2
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     ≤
    
    
     H
    
   
   
    L\le \alpha_2^{new}\le H
   
  
 L≤α2new​≤H
 
  
   
    
     L
    
    
     =
    
    
     m
    
    
     a
    
    
     x
    
    
     (
    
    
     0
    
    
     ,
    
    
     
      α
     
     
      2
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     −
    
    
     
      α
     
     
      1
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     )
    
    
     ,
    
    
    
     H
    
    
     =
    
    
     m
    
    
     i
    
    
     n
    
    
     (
    
    
     C
    
    
     ,
    
    
     C
    
    
     +
    
    
     
      α
     
     
      2
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     −
    
    
     
      α
     
     
      1
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     )
    
   
   
    L=max(0,\alpha_2^{old}-\alpha_1^{old}),\quad H=min(C,C+\alpha_2^{old}-\alpha_1^{old})
   
  
 L=max(0,α2old​−α1old​),H=min(C,C+α2old​−α1old​)

在这里插入图片描述
**3.得到

      α
     
     
      1
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
   
   
    \alpha_1^{new}
   
  
 α1new​的解**

根据

      α
     
     
      1
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     
      y
     
     
      1
     
    
    
     +
    
    
     
      α
     
     
      2
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     
      y
     
     
      2
     
    
    
     =
    
    
     
      α
     
     
      1
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     
      y
     
     
      1
     
    
    
     +
    
    
     
      α
     
     
      2
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     
      y
     
     
      2
     
    
   
   
    \alpha_1^{old}y_1+\alpha_2^{old}y_2=\alpha_1^{new}y_1+\alpha_2^{new}y_2
   
  
 α1old​y1​+α2old​y2​=α1new​y1​+α2new​y2​

我们可以求得

      α
     
     
      1
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     =
    
    
     
      α
     
     
      1
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     +
    
    
     
      y
     
     
      1
     
    
    
     
      y
     
     
      2
     
    
    
     (
    
    
     
      α
     
     
      2
     
     
      
       o
      
      
       l
      
      
       d
      
     
    
    
     −
    
    
     
      α
     
     
      2
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     )
    
   
   
    \alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new})
   
  
 α1new​=α1old​+y1​y2​(α2old​−α2new​)

**4.更新参数

     b
    
   
   
    b
   
  
 b和
 
  
   
    
     
      E
     
     
      i
     
    
   
   
    E_i
   
  
 Ei​**

  前面我们已经证明,如果

    0
   
   
    ≤
   
   
    
     α
    
    
     1
    
    
     
      n
     
     
      e
     
     
      w
     
    
   
   
    ≤
   
   
    C
   
  
  
   0\le \alpha_1^{new}\le C
  
 
0≤α1new​≤C,那么

 
  
   
    
     α
    
    
     1
    
    
     
      n
     
     
      e
     
     
      w
     
    
   
  
  
   \alpha_1^{new}
  
 
α1new​为支持向量,我们可以利用它来更新参数

 
  
   
    b
   
  
  
   b
  
 
b

 
  
   
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       1
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     
      y
     
     
      i
     
    
    
     
      K
     
     
      
       i
      
      
       1
      
     
    
    
     +
    
    
     b
    
    
     =
    
    
     
      y
     
     
      1
     
    
   
   
    \sum\limits_{i=1}^n\alpha_iy_iK_{i1}+b=y_1
   
  
 i=1∑n​αi​yi​Ki1​+b=y1​
 
  
   
    
     
      b
     
     
      1
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     =
    
    
     
      y
     
     
      1
     
    
    
     −
    
    
     
      α
     
     
      1
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     
      y
     
     
      1
     
    
    
     
      K
     
     
      11
     
    
    
     −
    
    
     
      α
     
     
      2
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     
      y
     
     
      1
     
    
    
     
      K
     
     
      12
     
    
    
     −
    
    
     
      ∑
     
     
      
       i
      
      
       =
      
      
       3
      
     
     
      n
     
    
    
     
      α
     
     
      i
     
    
    
     
      y
     
     
      i
     
    
    
     
      K
     
     
      
       i
      
      
       1
      
     
    
   
   
    b_1^{new}=y_1-\alpha_1^{new}y_1K_{11}-\alpha_2^{new}y_1K_{12}-\sum\limits_{i=3}^n\alpha_iy_iK_{i1}
   
  
 b1new​=y1​−α1new​y1​K11​−α2new​y1​K12​−i=3∑n​αi​yi​Ki1​
 
  
   
    
     
      E
     
     
      i
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     =
    
    
     (
    
    
     
      ∑
     
     
      S
     
    
    
     
      α
     
     
      j
     
    
    
     
      y
     
     
      j
     
    
    
     K
    
    
     (
    
    
     
      x
     
     
      j
     
    
    
     ,
    
    
     
      x
     
     
      i
     
    
    
     )
    
    
     +
    
    
     
      b
     
     
      
       n
      
      
       e
      
      
       w
      
     
    
    
     )
    
    
     −
    
    
     
      y
     
     
      i
     
    
   
   
    E_i^{new}=(\sum\limits_{S}\alpha_jy_jK(x_j,x_i)+b^{new})-y_i
   
  
 Einew​=(S∑​αj​yj​K(xj​,xi​)+bnew)−yi​

其中

    S
   
  
  
   S
  
 
S为所有支撑向量的集合

变量的启发式选择

  对于SMO算法,我们每次选择两个样本进行更新,那么其中至少有一个是要违反KKT条件的。
1.第一个变量的选择

  • 违反KKT最严重的样本点,
  • 检验样本点是否满足KKT条件 α i = 0 ⇒ y i g x ( x ) ≥ 0 \alpha_i=0\Rightarrow y_ig_x(x)\ge 0 αi​=0⇒yi​gx​(x)≥0 0 < α i < C ⇒ y i g x ( x ) = 0 0<\alpha_i<C\Rightarrow y_ig_x(x)=0 0<αi​<C⇒yi​gx​(x)=0 α i = C ⇒ y i g x ( x ) ≤ 1 \alpha_i=C\Rightarrow y_ig_x(x)\le1 αi​=C⇒yi​gx​(x)≤1 其中当 0 < α i < C 0<\alpha_i<C 0<αi​<C时,对应点为支撑点,如果不满足KKT条件,对原始问题影响最大,所以我们一般选择 0 < α i < C 0<\alpha_i<C 0<αi​<C并且 y i g x ( x ) ≠ 0 y_ig_x(x)\ne0 yi​gx​(x)​=0的点作为外循环

2.第二个变量的选择

  我们的目的是希望目标函数能够有足够大的变化,即对应的

    ∣
   
   
    
     E
    
    
     1
    
   
   
    −
   
   
    
     E
    
    
     2
    
   
   
    ∣
   
  
  
   |E_1-E_2|
  
 
∣E1​−E2​∣最大,是目标函数下降的最快
  • 如果内循环通过上述方法找到的点不能使目标函数有足够的下降,则: - 遍历间隔边界上的样本点,测试目标函数下降- 如果下降不大,则遍历所有样本点- 如果依然下降不大,则丢弃外循环点,重新选择

七、关于凸函数的补充

凸函数的定义

①其定义域为凸集
  假设对于任意

    x
   
   
    ,
   
   
    y
   
   
    ∈
   
   
    C
   
  
  
   x,y \in C
  
 
x,y∈C并且任意参数

 
  
   
    α
   
   
    ∈
   
   
    [
   
   
    0
   
   
    ,
   
   
    1
   
   
    ]
   
  
  
   \alpha \in [0,1]
  
 
α∈[0,1],我们有

 
  
   
    α
   
   
    x
   
   
    +
   
   
    (
   
   
    1
   
   
    −
   
   
    α
   
   
    )
   
   
    y
   
   
    ∈
   
   
    C
   
  
  
   \alpha x+(1-\alpha)y\in C
  
 
αx+(1−α)y∈C,(即两点之间的任何一点都在定义域内)则集合为凸集。

在这里插入图片描述
其中1为凸集,2、3不是
②函数定义域为凸集,对于定义域里的任意

    x
   
   
    ,
   
   
    y
   
  
  
   x,y
  
 
x,y满足

     f
    
    
     (
    
    
     θ
    
    
     x
    
    
     +
    
    
     (
    
    
     1
    
    
     −
    
    
     θ
    
    
     )
    
    
     y
    
    
     )
    
    
     <
    
    
     =
    
    
     θ
    
    
     f
    
    
     (
    
    
     x
    
    
     )
    
    
     +
    
    
     (
    
    
     1
    
    
     −
    
    
     θ
    
    
     )
    
    
     f
    
    
     (
    
    
     y
    
    
     )
    
   
   
    f(\theta x+(1-\theta)y) <= \theta f(x)+(1-\theta)f(y)
   
  
 f(θx+(1−θ)y)<=θf(x)+(1−θ)f(y)

在这里插入图片描述

凸函数的判定方法

  对于一元函数

    f
   
   
    (
   
   
    x
   
   
    )
   
  
  
   f(x)
  
 
f(x),我们可以通过其二阶导数

 
  
   
    f
   
   
    ″
   
   
    (
   
   
    x
   
   
    )
   
  
  
   f″(x)
  
 
f″(x) 的符号来判断。如果函数的二阶导数总是非负,即

 
  
   
    f
   
   
    ′
   
   
    ′
   
   
    (
   
   
    x
   
   
    )
   
   
    ≥
   
   
    0
   
  
  
   f′′(x)≥0
  
 
f′′(x)≥0f″ ,则

 
  
   
    f
   
   
    (
   
   
    x
   
   
    )
   
  
  
   f(x)
  
 
f(x)是凸函数

  对于多元函数

    f
   
   
    (
   
   
    X
   
   
    )
   
  
  
   f(X)
  
 
f(X),我们可以通过其Hessian矩阵(Hessian矩阵是由多元函数的二阶导数组成的方阵)的正定性来判断。如果Hessian矩阵是半正定矩阵,则是

 
  
   
    f
   
   
    (
   
   
    X
   
   
    )
   
  
  
   f(X)
  
 
f(X)凸函数

常见的凸函数

  • 线性函数为凸/凹函数
  •                                     e                            x                            p                            x                            ,                            −                            l                            o                            g                            x                            ,                            x                            l                            o                            g                            x                                  expx, −logx, xlogx                     expx,−logx,xlogx 是凸函数
    
  • 范数为凸函数范数 ∣ ∣ w ∣ ∣ 1 = ∣ w 1 ∣ + ∣ w 2 ∣ + . . . + ∣ w n ∣ ||w||_1=|w_1|+|w_2|+...+|w_n| ∣∣w∣∣1​=∣w1​∣+∣w2​∣+...+∣wn​∣ ∣ ∣ w ∣ ∣ 2 = w 1 2 + w 2 2 + . . . + w n 2 2 ||w||_2=\sqrt[2] {w_1^2+w_2^2+...+w_n^2} ∣∣w∣∣2​=2w12​+w22​+...+wn2​​ ∣ ∣ w ∣ ∣ p = w 1 p + w 2 p + . . . + w n p p ||w||_p=\sqrt[p] {w_1^p+w_2^p+...+w_n^p} ∣∣w∣∣p​=pw1p​+w2p​+...+wnp​​
  •                                                                         x                                     T                                              x                                          t                                            \frac{x^Tx}{t}                     txTx​为凸函数(                                        x                            >                            0                                  x>0                     x>0)
    

本文转载自: https://blog.csdn.net/chenjunheaixuexi/article/details/124945810
版权归原作者 小白学推荐 所有, 如有侵权,请联系我们删除。

“最全面的SVM介绍(从拉格朗日对偶到SMO算法)”的评论:

还没有评论