文章目录
    
    
    
    一、SVM介绍
   
    SVM的英文全称是Support Vector Machines,我们叫它
    
     支持向量机
    
    。支持向量机是我们用于分类的一种算法。
   
    可以参考大佬博客链接:
    
     https://jackcui.blog.csdn.net/article/details/78072313
    
    关于对SVM的介绍。
   
    SVM就是试图把棍放在最佳位置,好让在棍的两边
    
     有尽可能大的间隙
    
    。这个间隙就是球到棍的距离。
   
    再之后,把这些球叫做
    
     data
    
    ,把棍子叫做
    
     classifier
    
    , 找到最大间隙的
    
     trick
    
    叫做
    
     optimization
    
    ,拍桌子叫做
    
     kernelling
    
    , 那张纸叫做
    
     hyperplane
    
    。
   
    
     概况问题
    
    :
    
    当一个分类问题,数据是线性可分的,也就是用一根棍就可以将两种小球分开的时候,我们只要将棍的位置放在让小球距离棍的距离
    
     最大化
    
    的位置即可,寻找这个最大间隔的过程,就叫做最优化。
    
    但是,现实往往是很残酷的,一般的数据是线性不可分的,也就是找不到一个棍将两种小球很好的分类。这个时候,我们就需要像大侠一样,将小球拍起,用一张纸代替小棍将小球进行分类。想要让数据飞起,我们需要的东西就是
    
     核函数(kernel)
    
    ,用于切分小球的纸,就是
    
     超平面
    
    。(核函数的作用就是低维转化为高维。)
   
    
    
    二、线性SVM
   
    先看下线性可分的二分类问题。
    
    
    
    上图中的(a)是已有的数据,红色和蓝色分别代表两个不同的类别。数据显然是线性可分的,但是将两类数据点分开的直线显然不止一条。上图的(b)和(c)分别给出了B、C两种不同的分类方案,其中黑色实线为分界线,术语称为“
    
     决策面
    
    ”。每个
    
     决策面对应了一个线性分类器
    
    。虽然从分类结果上看,分类器A和分类器B的效果是相同的。但是他们的性能是有差距的,看下图:
    
    
    
    在”决策面”不变的情况下,我又添加了一个红点。可以看到,分类器B依然能很好的分类结果,而分类器C则出现了分类错误。显然分类器B的”决策面”放置的位置优于分类器C的”决策面”放置的位置,SVM算法也是这么认为的,它的依据就是分类器B的分类间隔比分类器C的分类间隔大。
   
    这里涉及到第一个SVM独有的概念”
    
     分类间隔
    
    “。在保证决策面方向不变且不会出现错分样本的情况下移动决策面,会在原来的决策面两侧找到两个极限位置(越过该位置就会产生错分现象),如虚线所示。
   
    虚线的位置由决策面的方向和距离原决策面
    
     最近的几个样本的位置决定
    
    。而这两条平行虚线正中间的分界线就是在保持当前决策面方向不变的前提下的
    
     最优决策面
    
    。两条虚线之间的垂直距离就是这个最优决策面对应的分类间隔。
   
    显然每一个可能把数据集正确分开的方向都有一个最优决策面(有些方向无论如何移动决策面的位置也不可能将两类样本完全分开),而不同方向的最优决策面的分类间隔通常是不同的,那个
    
     具有“最大间隔”的决策面就是SVM要寻找的最优解
    
    。而这个真正的最优解对应的两侧
    
     虚线所穿过的样本点
    
    ,就是SVM中的支持样本点,称为”
    
     支持向量
    
    “。
   
    
    
    2.1 数学建模
   
求解这个”决策面”的过程,就是最优化。一个最优化问题通常有两个基本的因素:
- 目标函数,也就是你希望什么东西的什么指标达到最好
- 优化对象,你期望通过改变哪些因素来使你的目标函数达到最优。
    
     在线性SVM算法中,目标函数显然就是那个”
     
      分类间隔
     
     “,而优化对象则是
     
      决策面
     
     。
    
   
所以要对SVM问题进行数学建模,首先要对上述两个对象(“分类间隔”和”决策面”)进行数学描述。按照一般的思维习惯,我们先描述决策面。
数学建模的时候,先在二维空间建模,然后再推广到多维。
    
    
    2.1.1决策面方程
   
    我们都知道二维空间下一条直线的方式如下所示:
    
    
     
      
       
        y 
=
a
x
+
b
         y=a x+b
       
       
        
         
         
         
          y
         
         
         
         
          =
         
         
         
        
        
         
         
         
          a
         
         
          x
         
         
         
         
          +
         
         
         
        
        
         
         
         
          b
         
        
       
      
     
    
   
    
     
      
       
        x 
2
=
a
x
1
+
b
         x_{2}=a x_{1}+b
       
       
        
         
         
         
          
           x
          
          
           
            
             
              
               
               
               
                
                 
                  2
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
         
         
         
          =
         
         
         
        
        
         
         
         
          a
         
         
          
           x
          
          
           
            
             
              
               
               
               
                
                 
                  1
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
         
         
         
          +
         
         
         
        
        
         
         
         
          b
         
        
       
      
     
    
   
    
     
      
       
        a 
x
1
−
x
2
+
b
=
0
         \mathrm{ax}_{1}-\mathrm{x}_{2}+\mathrm{b}=0
       
       
        
         
         
         
          
           
            ax
           
          
          
           
            
             
              
               
               
               
                
                 
                  1
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
         
         
         
          −
         
         
         
        
        
         
         
         
          
           x
          
          
           
            
             
              
               
               
               
                
                 
                  2
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
         
         
         
          +
         
         
         
        
        
         
         
         
          b
         
         
         
         
          =
         
         
         
        
        
         
         
         
          0
         
        
       
      
     
    
   
移项得到:
    
     
      
       
        [ 
a
−
1
]
[
x
1
x
2
]
+
b
=
0
         \left[\begin{array}{ll} a & -1 \end{array}\right]\left[\begin{array}{l} x_{1} \\ x_{2} \end{array}\right]+b=0
       
       
        
         
         
         
          
           
            [
           
          
          
           
            
            
            
             
              
               
                
                 
                 
                 
                  
                   a
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
            
            
            
             
              
               
                
                 
                 
                 
                  
                   −
                  
                  
                   1
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
           
          
          
           
            ]
           
          
         
         
         
         
          
           
            [
           
          
          
           
            
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    x
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           1
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                 
                
                
                 
                 
                 
                  
                   
                    x
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           2
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
           
          
          
           
            ]
           
          
         
         
         
         
          +
         
         
         
        
        
         
         
         
          b
         
         
         
         
          =
         
         
         
        
        
         
         
         
          0
         
        
       
      
     
    
   
进一步向量化,用w列向量和x列向量和标量γ进一步向量化:
    
     
      
       
        ω 
T
x
+
γ
=
0
         \boldsymbol{\omega}^{T} \boldsymbol{x}+\gamma=0
       
       
        
         
         
         
          
           
            
             ω
            
           
          
          
           
            
             
              
               
               
               
                
                 
                  T
                 
                
               
              
             
            
           
          
         
         
          
           
            x
           
          
         
         
         
         
          +
         
         
         
        
        
         
         
         
          γ
         
         
         
         
          =
         
         
         
        
        
         
         
         
          0
         
        
       
      
     
    
   
其中,向量w和x分别为:
    
     
      
       
        ω 
=
[
ω
1
,
ω
2
]
T
,
x
=
[
x
1
,
x
2
]
T
         \boldsymbol{\omega}=\left[\omega_{1}, \omega_{2}\right]^{T}, \boldsymbol{x}=\left[x_{1}, x_{2}\right]^{T}
       
       
        
         
         
         
          
           
            ω
           
          
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
           
            [
           
           
            
             ω
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    1
                   
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
           
           
            ,
           
           
           
           
            
             ω
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    2
                   
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
           
           
            ]
           
          
          
           
            
             
              
               
               
               
                
                 
                  T
                 
                
               
              
             
            
           
          
         
         
         
         
          ,
         
         
         
         
          
           
            x
           
          
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
           
            [
           
           
            
             x
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    1
                   
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
           
           
            ,
           
           
           
           
            
             x
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    2
                   
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
           
           
            ]
           
          
          
           
            
             
              
               
               
               
                
                 
                  T
                 
                
               
              
             
            
           
          
         
        
       
      
     
    
   
这里w1=a,w2=-1。我们都知道,最初的那个直线方程a和b的几何意义,a表示直线的斜率,b表示截距,a决定了直线与x轴正方向的夹角,b决定了直线与y轴交点位置。那么向量化后的直线的w和r的几何意义是什么呢?
    二维空间的直线方程已经推导完成,将其推广到
    
     n维空间
    
    ,就变成了超平面方程。(一个超平面,在二维空间的例子就是一个直线)但是它的公式没变,依然是:
   
    
     
      
       
        ω 
T
x
+
γ
=
0
         \boldsymbol{\omega}^{T} \boldsymbol{x}+\gamma=0
       
       
        
         
         
         
          
           
            
             ω
            
           
          
          
           
            
             
              
               
               
               
                
                 
                  T
                 
                
               
              
             
            
           
          
         
         
          
           
            x
           
          
         
         
         
         
          +
         
         
         
        
        
         
         
         
          γ
         
         
         
         
          =
         
         
         
        
        
         
         
         
          0
         
        
       
      
     
    
   
    
     
      
       
        ω 
=
[
ω
1
,
ω
2
,
                ⋯
                
,
ω
n
]
T
x
=
[
x
1
,
x
2
,
                ⋯
                
,
x
n
]
T
         \begin{array}{l} \boldsymbol{\omega}=\left[\omega_{1}, \omega_{2}, \cdots, \omega_{n}\right]^{T} \\ \boldsymbol{x}=\left[x_{1}, x_{2}, \cdots, x_{n}\right]^{T} \end{array}
       
       
        
         
         
         
          
           
           
           
            
             
              
               
                
                
                
                 
                  
                   
                    ω
                   
                  
                 
                 
                 
                 
                  =
                 
                 
                 
                 
                  
                   
                    [
                   
                   
                    
                     ω
                    
                    
                     
                      
                       
                        
                         
                         
                         
                          
                           
                            1
                           
                          
                         
                        
                       
                       
                        
                       
                      
                      
                       
                        
                        
                       
                      
                     
                    
                   
                   
                    ,
                   
                   
                   
                   
                    
                     ω
                    
                    
                     
                      
                       
                        
                         
                         
                         
                          
                           
                            2
                           
                          
                         
                        
                       
                       
                        
                       
                      
                      
                       
                        
                        
                       
                      
                     
                    
                   
                   
                    ,
                   
                   
                   
                   
                    ⋯
                   
                   
                   
                   
                   
                   
                    ,
                   
                   
                   
                   
                    
                     ω
                    
                    
                     
                      
                       
                        
                         
                         
                         
                          
                           
                            n
                           
                          
                         
                        
                       
                       
                        
                       
                      
                      
                       
                        
                        
                       
                      
                     
                    
                   
                   
                    ]
                   
                  
                  
                   
                    
                     
                      
                       
                       
                       
                        
                         
                          T
                         
                        
                       
                      
                     
                    
                   
                  
                 
                
               
               
                
                
                
                 
                  
                   
                    x
                   
                  
                 
                 
                 
                 
                  =
                 
                 
                 
                 
                  
                   
                    [
                   
                   
                    
                     x
                    
                    
                     
                      
                       
                        
                         
                         
                         
                          
                           
                            1
                           
                          
                         
                        
                       
                       
                        
                       
                      
                      
                       
                        
                        
                       
                      
                     
                    
                   
                   
                    ,
                   
                   
                   
                   
                    
                     x
                    
                    
                     
                      
                       
                        
                         
                         
                         
                          
                           
                            2
                           
                          
                         
                        
                       
                       
                        
                       
                      
                      
                       
                        
                        
                       
                      
                     
                    
                   
                   
                    ,
                   
                   
                   
                   
                    ⋯
                   
                   
                   
                   
                   
                   
                    ,
                   
                   
                   
                   
                    
                     x
                    
                    
                     
                      
                       
                        
                         
                         
                         
                          
                           
                            n
                           
                          
                         
                        
                       
                       
                        
                       
                      
                      
                       
                        
                        
                       
                      
                     
                    
                   
                   
                    ]
                   
                  
                  
                   
                    
                     
                      
                       
                       
                       
                        
                         
                          T
                         
                        
                       
                      
                     
                    
                   
                  
                 
                
               
              
              
               
              
             
             
              
               
               
              
             
            
           
           
           
          
         
        
       
      
     
    
   
    我们已经顺利推导出了
    
     "决策面"方程
    
    ,它就是我们的超平面方程,之后,我们统称其为超平面方程。
   
    
    
    2.1.2″分类间隔”方程
   
    
    
    我们已经知道间隔的大小实际上就是支持向量对应的样本点到决策面的距离的二倍。那么图中的距离d我们怎么求?我们高中都学过,点到直线的距离距离公式如下:
    
    
     
      
       
        d 
=
∣
A
x
0
+
B
y
0
+
C
A
2
+
B
2
∣
         d=\left|\frac{A x_{0}+B y_{0}+C}{\sqrt{A^{2}+B^{2}}}\right|
       
       
        
         
         
         
          d
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
           
            
             
              
               
                
                
                
                 
                
               
              
              
               
              
             
             
              
               
               
              
             
            
           
          
          
           
           
           
            
             
              
               
                
                
                
                 
                  
                   
                    
                     
                      
                      
                      
                       
                        
                         A
                        
                        
                         
                          
                           
                            
                             
                             
                             
                              
                               
                                2
                               
                              
                             
                            
                           
                          
                         
                        
                       
                       
                       
                       
                        +
                       
                       
                       
                       
                        
                         B
                        
                        
                         
                          
                           
                            
                             
                             
                             
                              
                               
                                2
                               
                              
                             
                            
                           
                          
                         
                        
                       
                      
                     
                     
                      
                      
                      
                     
                    
                    
                     
                    
                   
                   
                    
                     
                     
                    
                   
                  
                 
                
               
               
                
                
                
                
               
               
                
                
                
                 
                  A
                 
                 
                  
                   x
                  
                  
                   
                    
                     
                      
                       
                       
                       
                        
                         
                          0
                         
                        
                       
                      
                     
                     
                      
                     
                    
                    
                     
                      
                      
                     
                    
                   
                  
                 
                 
                 
                 
                  +
                 
                 
                 
                 
                  B
                 
                 
                  
                   y
                  
                  
                   
                    
                     
                      
                       
                       
                       
                        
                         
                          0
                         
                        
                       
                      
                     
                     
                      
                     
                    
                    
                     
                      
                      
                     
                    
                   
                  
                 
                 
                 
                 
                  +
                 
                 
                 
                 
                  C
                 
                
               
              
              
               
              
             
             
              
               
               
              
             
            
           
           
           
          
          
           
            
             
              
               
                
                
                
                 
                
               
              
              
               
              
             
             
              
               
               
              
             
            
           
          
         
        
       
      
     
    
    
    
    
    现在,将直线方程扩展到多维,求得我们现在的超平面方程,对公式进行如下变形:
   
    
     
      
       
        d 
=
∣
ω
T
x
+
γ
∣
∥
ω
∥
         d=\frac{\left|\boldsymbol{\omega}^{T} \boldsymbol{x}+\gamma\right|}{\|\boldsymbol{\omega}\|}
       
       
        
         
         
         
          d
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
          
          
           
            
             
              
               
               
               
                
                 ∥
                
                
                 
                  
                   ω
                  
                 
                
                
                 ∥
                
               
              
              
               
               
               
               
              
              
               
               
               
                
                 
                  
                   
                    
                     
                      
                       
                       
                       
                        
                       
                      
                     
                     
                      
                     
                    
                    
                     
                      
                      
                     
                    
                   
                  
                 
                 
                  
                   
                    
                     ω
                    
                   
                  
                  
                   
                    
                     
                      
                       
                       
                       
                        
                         
                          T
                         
                        
                       
                      
                     
                    
                   
                  
                 
                 
                  
                   
                    x
                   
                  
                 
                 
                 
                 
                  +
                 
                 
                 
                 
                  γ
                 
                 
                  
                   
                    
                     
                      
                       
                       
                       
                        
                       
                      
                     
                     
                      
                     
                    
                    
                     
                      
                      
                     
                    
                   
                  
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
          
          
         
        
       
      
     
    
    
    分析图片!!:
    
    
     已知W其实是垂直所求平面的法向量,先对W向量求模,即单位化,再乘某一点到平面一点的向量,就得到某点到该平面的距离
    
    。
   
这个d就是”分类间隔”。其中||w||表示w的二范数,求所有元素的平方和,然后再开方。比如对于二维平面:
    
     
      
       
        ω 
=
[
ω
1
,
ω
2
]
T
         \omega=\left[\omega_{1}, \omega_{2}\right]^{T}
       
       
        
         
         
         
          ω
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
           
            [
           
           
            
             ω
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    1
                   
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
           
           
            ,
           
           
           
           
            
             ω
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    2
                   
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
           
           
            ]
           
          
          
           
            
             
              
               
               
               
                
                 
                  T
                 
                
               
              
             
            
           
          
         
        
       
      
     
    
   
    
     
      
       
        ∥ 
ω
∥
=
ω
1
2
+
ω
2
2
2
         \|\boldsymbol{\omega}\|=\sqrt[2]{\omega_{1}^{2}+\omega_{2}^{2}}
       
       
        
         
         
         
          ∥
         
         
          
           
            ω
           
          
         
         
          ∥
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
           
            
             
              
               
               
               
                
                 
                  2
                 
                
               
              
             
            
           
          
          
           
            
             
              
              
              
               
                
                 ω
                
                
                 
                  
                   
                    
                     
                     
                     
                      
                       
                        1
                       
                      
                     
                    
                    
                     
                     
                     
                      
                       
                        2
                       
                      
                     
                    
                   
                   
                    
                   
                  
                  
                   
                    
                    
                   
                  
                 
                
               
               
               
               
                +
               
               
               
               
                
                 ω
                
                
                 
                  
                   
                    
                     
                     
                     
                      
                       
                        2
                       
                      
                     
                    
                    
                     
                     
                     
                      
                       
                        2
                       
                      
                     
                    
                   
                   
                    
                   
                  
                  
                   
                    
                    
                   
                  
                 
                
               
              
             
             
              
              
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
        
       
      
     
    
   
    我们目的是为了找出一个分类效果好的超平面作为分类器。分类器的好坏的评定依据是分类间隔W=2d的大小,即分类间隔W越大,我们认为这个超平面的分类效果越好。此时,求解超平面的问题就变成了求解分类间隔W最大化的为题。
    
     W的最大化也就是d最大化的
    
    。
   
    
    
    2.1.3约束条件
   
看起来,我们已经顺利获得了目标函数的数学形式。但是为了求解w的最大值。我们不得不面对如下问题:
- 我们如何判断超平面是否将样本点正确分类?
- 我们知道相求距离d的最大值,我们首先需要找到支持向量上的点,怎么在众多的点中选出支持向量上的点呢?
这个二维平面上有两种点,我们分别对它们进行标记:
- 红颜色的圆点标记为1,我们人为规定其为正样本
- 蓝颜色的五角星标记为-1,我们人为规定其为负样本
对每个样本点xi加上一个类别标签yi:
    
     
      
       
        y 
i
=
{
+
1
红色点
−
1
蓝色点
         y_{i}=\left\{\begin{array}{ll} +1 & \text { 红色点 } \\ -1 & \text { 蓝色点 } \end{array}\right.
       
       
        
         
         
         
          
           y
          
          
           
            
             
              
               
               
               
                
                 
                  i
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
           
            {
            
           
          
          
           
            
            
            
             
              
               
                
                 
                 
                 
                  
                   +
                  
                  
                   1
                  
                 
                
                
                 
                 
                 
                  
                   −
                  
                  
                   1
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
            
            
            
             
              
               
                
                 
                 
                 
                  
                   
                   
                   
                    红色点
                   
                   
                   
                  
                 
                
                
                 
                 
                 
                  
                   
                   
                   
                    蓝色点
                   
                   
                   
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
           
          
          
          
         
        
       
      
     
    
   
如果我们的超平面方程能够完全正确地对上图的样本点进行分类,就会满足下面的方程:
    
     
      
       
        { 
ω
T
x
i
+
γ
>
0
y
i
=
1
ω
T
x
i
+
γ
<
0
y
i
=
−
1
         \left\{\begin{array}{cc} \boldsymbol{\omega}^{T} x_{i}+\gamma>0 & y_{i}=1 \\ \boldsymbol{\omega}^{T} x_{i}+\gamma<0 & y_{i}=-1 \end{array}\right.
       
       
        
         
         
         
          
           
            {
            
           
          
          
           
            
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    
                     
                      ω
                     
                    
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           T
                          
                         
                        
                       
                      
                     
                    
                   
                  
                  
                   
                    x
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   +
                  
                  
                  
                  
                   γ
                  
                  
                  
                  
                   >
                  
                  
                  
                  
                   0
                  
                 
                
                
                 
                 
                 
                  
                   
                    
                     
                      ω
                     
                    
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           T
                          
                         
                        
                       
                      
                     
                    
                   
                  
                  
                   
                    x
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   +
                  
                  
                  
                  
                   γ
                  
                  
                  
                  
                   <
                  
                  
                  
                  
                   0
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
            
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    y
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   =
                  
                  
                  
                  
                   1
                  
                 
                
                
                 
                 
                 
                  
                   
                    y
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   =
                  
                  
                  
                  
                   −
                  
                  
                   1
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
           
          
          
          
         
        
       
      
     
    
   
如果我们要求再高一点,假设决策面正好处于间隔区域的中轴线上,并且相应的支持向量对应的样本点到决策面的距离为d,那么公式进一步写成:
    
     
      
       
        { 
ω
T
x
i
+
γ
∥
ω
∥
≥
d
∀
y
i
=
1
ω
T
x
i
+
γ
∥
ω
∥
≤
−
d
∀
y
i
=
−
1
         \left\{\begin{array}{lr} \frac{\boldsymbol{\omega}^{\boldsymbol{T}} x_{i}+\gamma}{\|\boldsymbol{\omega}\|} \geq \mathrm{d} \quad & \forall y_{i}=1 \\ \frac{\boldsymbol{\omega}^{\boldsymbol{T}} x_{i}+\gamma}{\|\boldsymbol{\omega}\|} \leq-\mathrm{d} \quad & \forall y_{i}=-1 \end{array}\right.
       
       
        
         
         
         
          
           
            {
            
           
          
          
           
            
            
            
             
              
               
                
                 
                 
                 
                  
                   
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           ∥
                          
                          
                           
                            
                             ω
                            
                           
                          
                          
                           ∥
                          
                         
                        
                       
                       
                        
                        
                        
                        
                       
                       
                        
                        
                        
                         
                          
                           
                            
                             
                              ω
                             
                            
                           
                           
                            
                             
                              
                               
                                
                                
                                
                                 
                                  
                                   
                                    
                                     T
                                    
                                   
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                          
                           
                            x
                           
                           
                            
                             
                              
                               
                                
                                
                                
                                 
                                  
                                   i
                                  
                                 
                                
                               
                              
                              
                               
                              
                             
                             
                              
                               
                               
                              
                             
                            
                           
                          
                          
                           +
                          
                          
                           γ
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                   
                   
                  
                  
                  
                  
                   ≥
                  
                  
                  
                  
                   d
                  
                  
                  
                 
                
                
                 
                 
                 
                  
                   
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           ∥
                          
                          
                           
                            
                             ω
                            
                           
                          
                          
                           ∥
                          
                         
                        
                       
                       
                        
                        
                        
                        
                       
                       
                        
                        
                        
                         
                          
                           
                            
                             
                              ω
                             
                            
                           
                           
                            
                             
                              
                               
                                
                                
                                
                                 
                                  
                                   
                                    
                                     T
                                    
                                   
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                          
                           
                            x
                           
                           
                            
                             
                              
                               
                                
                                
                                
                                 
                                  
                                   i
                                  
                                 
                                
                               
                              
                              
                               
                              
                             
                             
                              
                               
                               
                              
                             
                            
                           
                          
                          
                           +
                          
                          
                           γ
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                   
                   
                  
                  
                  
                  
                   ≤
                  
                  
                  
                  
                   −
                  
                  
                   d
                  
                  
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
            
            
            
             
              
               
                
                 
                 
                 
                  
                   ∀
                  
                  
                   
                    y
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   =
                  
                  
                  
                  
                   1
                  
                 
                
                
                 
                 
                 
                  
                   ∀
                  
                  
                   
                    y
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   =
                  
                  
                  
                  
                   −
                  
                  
                   1
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
           
          
          
          
         
        
       
      
     
    
   
    上述公式的解释就是,对于所有分类标签为1的样本点,它们到直线的距离都大于等于d(支持向量上的样本点到超平面的距离)。对于所有分类标签为-1的样本点,它们到直线的距离都小于等于d。
    
     公式两边都除以d
    
    ,就可以得到:
   
    
     
      
       
        { 
ω
d
T
x
i
+
γ
d
≥
1
∀
y
i
=
1
ω
d
T
x
i
+
γ
d
≤
−
1
∀
y
i
=
−
1
         \left\{\begin{array}{lr} \boldsymbol{\omega}_{d}^{T} x_{i}+\gamma_{d} \geq 1 & \forall y_{i}=1 \\ \boldsymbol{\omega}_{d}^{T} x_{i}+\gamma_{d} \leq-1 & \forall y_{i}=-1 \end{array}\right.
       
       
        
         
         
         
          
           
            {
            
           
          
          
           
            
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    
                     
                      ω
                     
                    
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           d
                          
                         
                        
                       
                       
                        
                        
                        
                         
                          
                           T
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                   
                    x
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   +
                  
                  
                  
                  
                   
                    γ
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           d
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   ≥
                  
                  
                  
                  
                   1
                  
                 
                
                
                 
                 
                 
                  
                   
                    
                     
                      ω
                     
                    
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           d
                          
                         
                        
                       
                       
                        
                        
                        
                         
                          
                           T
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                   
                    x
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   +
                  
                  
                  
                  
                   
                    γ
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           d
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   ≤
                  
                  
                  
                  
                   −
                  
                  
                   1
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
            
            
            
             
              
               
                
                 
                 
                 
                  
                   ∀
                  
                  
                   
                    y
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   =
                  
                  
                  
                  
                   1
                  
                 
                
                
                 
                 
                 
                  
                   ∀
                  
                  
                   
                    y
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   =
                  
                  
                  
                  
                   −
                  
                  
                   1
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
           
          
          
          
         
        
       
      
     
    
   
    
     
      
       
        ω 
d
=
ω
∥
ω
∥
d
,
γ
d
=
γ
∥
ω
∥
d
         \boldsymbol{\omega}_{d}=\frac{\boldsymbol{\omega}}{\|\boldsymbol{\omega}\| d}, \quad \gamma_{d}=\frac{\gamma}{\|\boldsymbol{\omega}\| d}
       
       
        
         
         
         
          
           
            
             ω
            
           
          
          
           
            
             
              
               
               
               
                
                 
                  d
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
          
          
           
            
             
              
               
               
               
                
                 ∥
                
                
                 
                  
                   ω
                  
                 
                
                
                 ∥
                
                
                 d
                
               
              
              
               
               
               
               
              
              
               
               
               
                
                 
                  
                   ω
                  
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
          
          
         
         
          ,
         
         
         
         
         
         
          
           γ
          
          
           
            
             
              
               
               
               
                
                 
                  d
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
          
          
           
            
             
              
               
               
               
                
                 ∥
                
                
                 
                  
                   ω
                  
                 
                
                
                 ∥
                
                
                 d
                
               
              
              
               
               
               
               
              
              
               
               
               
                
                 γ
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
          
          
         
        
       
      
     
    
   
    上述两个公式,都是描述一条直线,数学模型代表的意义是一样的。现在,
    
     让我们对wd和γd重新起个名字,就叫它们w和γ
    
    。因此,我们就可以说:“对于存在分类间隔的两类样本点,我们一定可以找到一些超平面面,使其对于所有的样本点均满足下面的条件:”
   
    
     将不等式的右边与0的关系转化为与1的关系
    
    :
   
    
     
      
       
        { 
ω
T
x
i
+
γ
≥
1
∀
y
i
=
1
ω
T
x
i
+
γ
≤
−
1
∀
y
i
=
−
1
         \left\{\begin{array}{lr} \boldsymbol{\omega}^{T} x_{i}+\gamma \geq 1 & \forall y_{i}=1 \\ \boldsymbol{\omega}^{T} x_{i}+\gamma \leq-1 & \forall y_{i}=-1 \end{array}\right.
       
       
        
         
         
         
          
           
            {
            
           
          
          
           
            
            
            
             
              
               
                
                 
                 
                 
                  
                   
                    
                     
                      ω
                     
                    
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           T
                          
                         
                        
                       
                      
                     
                    
                   
                  
                  
                   
                    x
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   +
                  
                  
                  
                  
                   γ
                  
                  
                  
                  
                   ≥
                  
                  
                  
                  
                   1
                  
                 
                
                
                 
                 
                 
                  
                   
                    
                     
                      ω
                     
                    
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           T
                          
                         
                        
                       
                      
                     
                    
                   
                  
                  
                   
                    x
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   +
                  
                  
                  
                  
                   γ
                  
                  
                  
                  
                   ≤
                  
                  
                  
                  
                   −
                  
                  
                   1
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
            
            
            
             
              
               
                
                 
                 
                 
                  
                   ∀
                  
                  
                   
                    y
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   =
                  
                  
                  
                  
                   1
                  
                 
                
                
                 
                 
                 
                  
                   ∀
                  
                  
                   
                    y
                   
                   
                    
                     
                      
                       
                        
                        
                        
                         
                          
                           i
                          
                         
                        
                       
                      
                      
                       
                      
                     
                     
                      
                       
                       
                      
                     
                    
                   
                  
                  
                  
                  
                   =
                  
                  
                  
                  
                   −
                  
                  
                   1
                  
                 
                
               
               
                
               
              
              
               
                
                
               
              
             
            
            
            
           
          
          
          
         
        
       
      
     
    
   
    
     
      
       
        y 
i
(
ω
T
x
i
+
γ
)
≥
1
∀
x
i
         y_{i}\left(\boldsymbol{\omega}^{T} x_{i}+\gamma\right) \geq 1 \quad \forall x_{i}
       
       
        
         
         
         
          
           y
          
          
           
            
             
              
               
               
               
                
                 
                  i
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
         
         
         
          
           
            (
           
          
          
           
            
             
              ω
             
            
           
           
            
             
              
               
                
                
                
                 
                  
                   T
                  
                 
                
               
              
             
            
           
          
          
           
            x
           
           
            
             
              
               
                
                
                
                 
                  
                   i
                  
                 
                
               
              
              
               
              
             
             
              
               
               
              
             
            
           
          
          
          
          
           +
          
          
          
          
           γ
          
          
           
            )
           
          
         
         
         
         
          ≥
         
         
         
        
        
         
         
         
          1
         
         
         
         
          ∀
         
         
          
           x
          
          
           
            
             
              
               
               
               
                
                 
                  i
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
        
       
      
     
    
   
    
    
    2.1.4线性SVM优化问题基本描述
   
    
     目标函数:
    
   
    
     
      
       
        d 
=
∣
ω
T
x
+
γ
∣
∥
ω
∥
         d=\frac{\left|\boldsymbol{\omega}^{T} \boldsymbol{x}+\gamma\right|}{\|\boldsymbol{\omega}\|}
       
       
        
         
         
         
          d
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
          
          
           
            
             
              
               
               
               
                
                 ∥
                
                
                 
                  
                   ω
                  
                 
                
                
                 ∥
                
               
              
              
               
               
               
               
              
              
               
               
               
                
                 
                  
                   
                    
                     
                      
                       
                       
                       
                        
                       
                      
                     
                     
                      
                     
                    
                    
                     
                      
                      
                     
                    
                   
                  
                 
                 
                  
                   
                    
                     ω
                    
                   
                  
                  
                   
                    
                     
                      
                       
                       
                       
                        
                         
                          T
                         
                        
                       
                      
                     
                    
                   
                  
                 
                 
                  
                   
                    x
                   
                  
                 
                 
                 
                 
                  +
                 
                 
                 
                 
                  γ
                 
                 
                  
                   
                    
                     
                      
                       
                       
                       
                        
                       
                      
                     
                     
                      
                     
                    
                    
                     
                      
                      
                     
                    
                   
                  
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
          
          
         
        
       
      
     
    
   
    
    
    因为,我们只关心支持向量上的点。随后我们求解d的最大化问题变成了||w||的最小化问题。进而||w||的最小化问题等效于
   
    
     
      
       
        min 
1
2
∥
ω
∥
2
         \min \frac{1}{2}\|\omega\|^{2}
       
       
        
         
         
         
          min
         
         
         
         
          
          
          
           
            
             
              
               
               
               
                
                 2
                
               
              
              
               
               
               
               
              
              
               
               
               
                
                 1
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
          
          
         
         
          ∥
         
         
          ω
         
         
          
           ∥
          
          
           
            
             
              
               
               
               
                
                 
                  2
                 
                
               
              
             
            
           
          
         
        
       
      
     
    
   
为什么要做这样的等效呢?这是为了在进行最优化的过程中对目标函数求导时比较方便,但这绝对不影响最优化问题最后的求解。我们将最终的目标函数和约束条件放在一起进行描述:
    
     
      
       
        min 
1
2
∥
ω
∥
2
         \min \frac{1}{2}\|\omega\|^{2}
       
       
        
         
         
         
          min
         
         
         
         
          
          
          
           
            
             
              
               
               
               
                
                 2
                
               
              
              
               
               
               
               
              
              
               
               
               
                
                 1
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
          
          
         
         
          ∥
         
         
          ω
         
         
          
           ∥
          
          
           
            
             
              
               
               
               
                
                 
                  2
                 
                
               
              
             
            
           
          
         
        
       
      
     
    
   
    
     
      
       
        s.t.  
y
i
(
ω
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
…
,
n
         \text { s.t. } y_{i}\left(\boldsymbol{\omega}^{T} x_{i}+b\right) \geq 1, i=1,2, \ldots, n
       
       
        
         
         
         
          
           s.t.
          
         
         
          
           y
          
          
           
            
             
              
               
               
               
                
                 
                  i
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
         
         
         
          
           
            (
           
          
          
           
            
             
              ω
             
            
           
           
            
             
              
               
                
                
                
                 
                  
                   T
                  
                 
                
               
              
             
            
           
          
          
           
            x
           
           
            
             
              
               
                
                
                
                 
                  
                   i
                  
                 
                
               
              
              
               
              
             
             
              
               
               
              
             
            
           
          
          
          
          
           +
          
          
          
          
           b
          
          
           
            )
           
          
         
         
         
         
          ≥
         
         
         
        
        
         
         
         
          1
         
         
          ,
         
         
         
         
          i
         
         
         
         
          =
         
         
         
        
        
         
         
         
          1
         
         
          ,
         
         
         
         
          2
         
         
          ,
         
         
         
         
          …
         
         
         
         
          ,
         
         
         
         
          n
         
        
       
      
     
    
   
这里n是样本点的总个数,缩写s.t.表示”Subject to”,是”服从某某条件”的意思。上述公式描述的是一个典型的不等式约束条件下的二次型函数优化问题,同时也是支持向量机的基本数学模型。
    
    
    2.1.5求解准备(讲讲凸函数)
   
    我们已经得到支持向量机的基本数学模型,接下来的问题就是如何根据数学模型,求得我们想要的最优解。在学习求解方法之前,我们得知道一点,想用我下面讲述的求解方法有一个前提,就是我们的目标函数必须是凸函数。理解凸函数,我们还要先明确另一个概念,凸集。在凸几何中,凸集(convex set)是在)凸组合下闭合的放射空间的子集。看一幅图可能更容易理解:
    
    
    
    左右量图都是一个集合。
    
     如果集合中任意2个元素连线上的点也在集合中,那么这个集合就是凸集。
     
      显然,上图中的
     
     左图是一个凸集,上图中的右图是一个非凸集
    
    。
   
    凸函数的定义也是如此,其几何意义表示为函数任意两点连线上的值大于对应自变量处的函数值。若这里凸集C即某个区间L,那么,设函数f为定义在区间L上的函数,若对L上的任意两点x1,x2和任意的实数λ,λ属于(0,1),总有:
    
    
    
    则函数f称为L上的凸函数,当且仅当其上镜图(在函数图像上方的点集)为一个凸集。再看一幅图,也许更容易理解:
    
    
    
    像上图这样的函数,它整体就是一个非凸函数,我们无法获得全局最优解的,只能获得局部最优解。比如红框内的部分,如果单独拿出来,它就是一个凸函数。对于我们的目标函数:
   
    
     
      
       
        min 
1
2
∥
ω
∥
2
         \min \frac{1}{2}\|\omega\|^{2}
       
       
        
         
         
         
          min
         
         
         
         
          
          
          
           
            
             
              
               
               
               
                
                 2
                
               
              
              
               
               
               
               
              
              
               
               
               
                
                 1
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
          
          
         
         
          ∥
         
         
          ω
         
         
          
           ∥
          
          
           
            
             
              
               
               
               
                
                 
                  2
                 
                
               
              
             
            
           
          
         
        
       
      
     
    
   
    很显然,它是一个
    
     凸函数
    
    。
   
    
     通常我们需要求解的最优化问题有如下几类:
    
   
- 
无约束优化问题,可以写为: 
 
 
 
 
 
 min f ( x ) \min f(x) 
 
 
 
 
 
 
 min
 
 
 
 
 f
 
 
 (
 
 
 x
 
 
 )
 
 
 
 
 
 
 
 尝尝使用的方法就是费马大定理(Fermat),即使用求取函数f(x)的导数,然后令其为零,可以求得候选最优值,再在这些候选值中验证;如果是凸函数,可以保证是最优解。这也就是我们高中经常使用的求函数的极值的方法。
- 
有等式约束的优化问题,可以写为: 
 
 
 
 
 
 min f ( x ) s . t . h i ( x ) = 0 , i = 1 , 2 , … , n \min f(x) s.t. h_{i(x)}=0, \quad i=1,2, \ldots, n 
 
 
 
 
 
 
 min
 
 
 
 
 f
 
 
 (
 
 
 x
 
 
 )
 
 
 s
 
 
 .
 
 
 t
 
 
 .
 
 
 
 h
 
 
 
 
 
 
 
 
 
 
 
 i
 
 
 (
 
 
 x
 
 
 )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =
 
 
 
 
 
 
 
 
 0
 
 
 ,
 
 
 
 
 
 
 i
 
 
 
 
 =
 
 
 
 
 
 
 
 
 1
 
 
 ,
 
 
 
 
 2
 
 
 ,
 
 
 
 
 …
 
 
 
 
 ,
 
 
 
 
 n
 
 
 
 
 
 
 
 常常使用的方法就是拉格朗日乘子法(Lagrange Multiplier) ,即把等式约束h_i(x)用一个系数与f(x)写为一个式子,称为拉格朗日函数,而系数称为拉格朗日乘子。通过拉格朗日函数对各个变量求导,令其为零,可以求得候选值集合,然后验证求得最优值。
- 
有不等式约束的优化问题,可以写为: 
 
 
 
 
 
 min f ( x ) s . t . g i ( x ) ≤ 0 , i = 1 , 2 , … , n h j ( x ) = 0 , j = 1 , 2 , … , m \min f(x) s.t. g_{i(x)} \leq 0, \quad i=1,2, \ldots, n h_{j(x)}=0, \quad j=1,2, \ldots, m 
 
 
 
 
 
 
 min
 
 
 
 
 f
 
 
 (
 
 
 x
 
 
 )
 
 
 s
 
 
 .
 
 
 t
 
 
 .
 
 
 
 g
 
 
 
 
 
 
 
 
 
 
 
 i
 
 
 (
 
 
 x
 
 
 )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ≤
 
 
 
 
 
 
 
 
 0
 
 
 ,
 
 
 
 
 
 
 i
 
 
 
 
 =
 
 
 
 
 
 
 
 
 1
 
 
 ,
 
 
 
 
 2
 
 
 ,
 
 
 
 
 …
 
 
 
 
 ,
 
 
 
 
 n
 
 
 
 h
 
 
 
 
 
 
 
 
 
 
 
 j
 
 
 (
 
 
 x
 
 
 )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =
 
 
 
 
 
 
 
 
 0
 
 
 ,
 
 
 
 
 
 
 j
 
 
 
 
 =
 
 
 
 
 
 
 
 
 1
 
 
 ,
 
 
 
 
 2
 
 
 ,
 
 
 
 
 …
 
 
 
 
 ,
 
 
 
 
 m
 
 
 
 
 
 
常常使用的方法就是KKT条件。同样地,我们把所有的等式、不等式约束与f(x)写为一个式子,也叫拉格朗日函数,系数也称拉格朗日乘子,通过一些条件,可以求出最优值的必要条件,这个条件称为KKT条件。
    
     我们的最优化问题,属于C类问题:
    
    
    
     
      
       
        min 
1
2
∥
ω
∥
2
s
.
t
.
y
i
(
ω
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
…
,
n
         \min \frac{1}{2}\|\omega\|^{2} s.t. y_{i}\left(\boldsymbol{\omega}^{T} x_{i}+b\right) \geq 1, i=1,2, \ldots, n
       
       
        
         
         
         
          min
         
         
         
         
          
          
          
           
            
             
              
               
               
               
                
                 2
                
               
              
              
               
               
               
               
              
              
               
               
               
                
                 1
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
          
          
         
         
          ∥
         
         
          ω
         
         
          
           ∥
          
          
           
            
             
              
               
               
               
                
                 
                  2
                 
                
               
              
             
            
           
          
         
         
          s
         
         
          .
         
         
          t
         
         
          .
         
         
          
           y
          
          
           
            
             
              
               
               
               
                
                 
                  i
                 
                
               
              
             
             
              
             
            
            
             
              
              
             
            
           
          
         
         
         
         
          
           
            (
           
          
          
           
            
             
              ω
             
            
           
           
            
             
              
               
                
                
                
                 
                  
                   T
                  
                 
                
               
              
             
            
           
          
          
           
            x
           
           
            
             
              
               
                
                
                
                 
                  
                   i
                  
                 
                
               
              
              
               
              
             
             
              
               
               
              
             
            
           
          
          
          
          
           +
          
          
          
          
           b
          
          
           
            )
           
          
         
         
         
         
          ≥
         
         
         
        
        
         
         
         
          1
         
         
          ,
         
         
         
         
          i
         
         
         
         
          =
         
         
         
        
        
         
         
         
          1
         
         
          ,
         
         
         
         
          2
         
         
          ,
         
         
         
         
          …
         
         
         
         
          ,
         
         
         
         
          n
         
        
       
      
     
    
   
    
    
    2.1.6拉格朗日函数
   
    
    
    
     现在,我们的问题变成了求新目标函数的最小值
    
    ,即:
    
    
     
      
       
        min 
w
,
b
θ
(
w
)
=
min
w
,
b
max
α
i
≥
0
L
(
w
,
b
,
α
)
=
p
∗
         \min _{w, b} \theta(w)=\min _{w, b} \max _{\alpha_{i} \geq 0} \mathcal{L}(w, b, \alpha)=p^{*}
       
       
        
         
         
         
          
           
            
             
              
              
              
               
                
                 w
                
                
                 ,
                
                
                 b
                
               
              
             
             
              
              
              
               
                min
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
         
         
          θ
         
         
          (
         
         
          w
         
         
          )
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
           
            
             
              
              
              
               
                
                 w
                
                
                 ,
                
                
                 b
                
               
              
             
             
              
              
              
               
                min
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
         
         
          
           
            
             
              
              
              
               
                
                 
                  α
                 
                 
                  
                   
                    
                     
                      
                      
                      
                       
                        
                         i
                        
                       
                      
                     
                    
                    
                     
                    
                   
                   
                    
                     
                     
                    
                   
                  
                 
                
                
                 ≥
                
                
                 0
                
               
              
             
             
              
              
              
               
                max
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
         
         
          L
         
         
          (
         
         
          w
         
         
          ,
         
         
         
         
          b
         
         
          ,
         
         
         
         
          α
         
         
          )
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
           p
          
          
           
            
             
              
               
               
               
                
                 
                  ∗
                 
                
               
              
             
            
           
          
         
        
       
      
     
    
    
    这里用p*表示这个问题的最优值,且和最初的问题是等价的。
    
    
    
    
     
      
       
        max 
α
i
≥
0
min
w
,
b
L
(
w
,
b
,
α
)
=
d
∗
         \max _{\alpha_{i} \geq 0} \min _{w, b} \mathcal{L}(w, b, \alpha)=d^{*}
       
       
        
         
         
         
          
           
            
             
              
              
              
               
                
                 
                  α
                 
                 
                  
                   
                    
                     
                      
                      
                      
                       
                        
                         i
                        
                       
                      
                     
                    
                    
                     
                    
                   
                   
                    
                     
                     
                    
                   
                  
                 
                
                
                 ≥
                
                
                 0
                
               
              
             
             
              
              
              
               
                max
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
         
         
          
           
            
             
              
              
              
               
                
                 w
                
                
                 ,
                
                
                 b
                
               
              
             
             
              
              
              
               
                min
               
              
             
            
            
             
            
           
           
            
             
             
            
           
          
         
         
         
         
          L
         
         
          (
         
         
          w
         
         
          ,
         
         
         
         
          b
         
         
          ,
         
         
         
         
          α
         
         
          )
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
           d
          
          
           
            
             
              
               
               
               
                
                 
                  ∗
                 
                
               
              
             
            
           
          
         
        
       
      
     
    
   
交换以后的新问题是原始问题的对偶问题,这个新问题的最优值用d来表示。而且d<=p*。我们关心的是d=p的时候,这才是我们要的解。需要什么条件才能让d=p呢?
首先必须满足这个优化问题是凸优化问题。其次,需要满足KKT条件。
    凸优化问题的定义是:
    
     求取最小值的目标函数为凸函数的一类优化问题。
    
   
目标函数是凸函数我们已经知道,这个优化问题又是求最小值。所以我们的最优化问题就是凸优化问题。
    
    
    2.1.7KKT条件
   
见链接
    
    
    2.1.8对偶问题求解
   
    
    
    
    
    带回:
    
    
    
    从上面的最后一个式子,我们可以看出,此时的L(w,b,α)函数只含有一个变量,即αi。
   
    
     现在内侧的最小值求解完成,我们求解外侧的最大值
    
    ,从上面的式子得到:
    
    
    
    现在我们的优化问题变成了如上的形式。对于这个问题,我们有更高效的优化算法,即序列
    
     最小优化(SMO)算法
    
    。
    
     我们通过这个优化算法能得到α,再根据α,我们就可以求解出w和b
    
    ,进而求得我们最初的目的:找到超平面,即”决策平面”。
   
    
    
    2.1.9最后求解
   
    
    
     
   
    
    
    2.2 SMO算法
   
    
     见链接:
     
      https://jackcui.blog.csdn.net/article/details/78072313
     
     !!!!!!
    
   
    
    
     
   
    
    
    三、代码实战
   
    
    
    3.1准备数据
   
'''
@Project :MachineLearning 
@File    :svm-getdata.py
@Author  :Kyrie Irving
@Date    :2022/11/3 20:15 
'''
import matplotlib.pyplot as plt
import numpy as np
def loadDataSet(fileName):
    dataMat = []
    labelMat = []
    fr = open(fileName)
    for line in fr.readlines():
        line = line.strip().split('\t')
        dataMat.append([float(line[0]), float(line[1])])
        labelMat.append(float(line[2]))
    return dataMat, labelMat
def showDataSet(dataMat, labelMat):
    data_plus = []  # 正样本
    data_minus = []  # 负样本
    for i in range(len(labelMat)):
        if labelMat[i] > 0:
            data_plus.append(dataMat[i])
        else:
            data_minus.append(dataMat[i])
    data_plus_np = np.array(data_plus)  # 转换为numpy矩阵
    data_minus_np = np.array(data_minus)  # 转换为numpy矩阵
    plt.scatter(np.transpose(data_plus_np)[0], np.transpose(data_plus_np)[1])   #正样本散点图
    plt.scatter(np.transpose(data_minus_np)[0], np.transpose(data_minus_np)[1]) #负样本散点图
    plt.show()
if __name__ == '__main__':
    dataMat, labelMat = loadDataSet('testSet.txt')
    showDataSet(dataMat, labelMat)
     
   
 
