SVM的“三重境界”

     SVM——支持向量机,作为机器学习领域最为重量级的学习算法之一,个人总结认为其有“三重境界”:硬,软,柔。硬,即最基本的硬间隔最大化;软,即软间隔最大化;柔,利用核函数实现对非线性样本空间进行分类。首先要对SVM的一些基本概念,特别是一些易混的概念进行梳理,理解这些概念才是理解后面三重境界的基础。

 

SVM的“三重境界”_第1张图片 图 1. SVM示例图

   

    本文以上图为例对SVM进行讲解。蓝点表示正例,黄点表示负例;五星表示支持向量;灰色粗线表示分割超平面;黑色双向箭头表示间隔

 

一、概念梳理
 

  1.  几何间隔


        在 \textbf{R}^n中,设超平面方程为 \textbf{w}x+b\textbf{w} 为法向量,b 为偏置,则点 x_i 到超平面的距离为

                                                                                    \gamma _i = y_i\cdot \frac{\textbf{w}x_i+b}{||\textbf{w}||_2}

        在SVM中,该公式表示点 x_i 到超平面的几何间隔是一个真实的有符号的距离值

        若点 x_i 在超平面的正例一侧,几何间隔为正数,否则几何间隔为负数。

        同时,定义训练数据集到分割超平面的几何间隔为:

                                                                                      \gamma =\min _{i=1,2,...,N}\gamma _i

        含义:训练数据集中距离分割超平面最近的点与分割超平面的几何间隔

     
  2. 函数间隔

        与几何间隔相对的是函数间隔,定义为

                                                                                  \hat{\gamma }_i=y_i\cdot (\textbf{w}x_i+b)

        距超平面较远的点,函数间隔较大,反之较小。并非真实的距离,而是点到超平面距离远近的一种度量

                                                                                          ||\textbf{w}||_2=1
         
        则函数间隔等价于几何间隔。所以,几何间隔是函数间隔的一种特例。

        同时,定义训练数据集到分割超平面的函数间隔为:

                                                                                      \hat{\gamma } =\min _{i=1,2,...,N}\hat{\gamma } _i

        含义:训练数据集中距离分割超平面最近的点与分割超平面的函数间隔

     

 

二、第一重境界 —— 硬间隔最大化

 

  1.  目标函数推导

        SVM的目标是寻找一个分割超平面,使得 \gamma 最大化。即


                                                                                           \max _{w,b}\gamma

                                                              s.t. \ \ y_i\left (\frac{\textbf{w}}{||\textbf{w}||_2}x_i+\frac{b}{||\textbf{w}||_2} \right )\geqslant \gamma , \ \ i=1,2,...,N

        约束表示对于任意一个样本点,其到分割超平面的几何间隔至少是 \gamma 。

        为便于求解,由函数间隔和几何间隔的关系,上式可转换为

                                                                                      \max _{w,b}\ \frac{\hat{\gamma }}{||\textbf{w}||_2}

                                                                   s.t. \ \ y_i\left (\textbf{w}x_i+b \right )\geqslant \hat{\gamma } , \ \ i=1,2,...,N
        
         若按比例 \lambda 同时改变 \textbf{w} 和 b,则 \hat{\gamma } 变为  \lambda \hat{\gamma },这种改变对目标函数和约束条件没有造成影响。因此不妨令 \hat{\gamma } 为1,并

    将最大化转换为最小化问题,则上式等价的表示为:

                                                                                      \min _{w,b}\frac{1}{2}||\textbf{w}||^2

                                                                  s.t. \ \ y_i\left (\textbf{w}x_i+b \right ) - 1 \geqslant 0 , \ \ i=1,2,...,N
     
  2.  境界解读

        现实的分类任务中,完全将不同类别数据分开的最大分割超平面往往不存在,因为数据中往往存在一些噪音,或者人为构造特征时存在失误。即便存在这样的分割超平面,也是很牵强的一个解,因为这样的分割超平面过多的关注了当前训练数据中的边缘特征,而非数据集普适的特征。一个也不能分错;过于关注边缘特征,忽略普适特征,SVM的第一重境界打上"硬"的标签再合适不过,放在形容人身上,这叫不够圆融,太刻板
     

三、第二重境界 —— 软间隔最大化
 

  1.  目标函数推导

         软间隔最大化不像硬间隔最大化那么刻板,在处理分类时灵活很多。给予每个样本 x_i 一个容忍度 \xi _i\geqslant 0,样本需要满足的约束较硬间隔最大化宽松了一些。即满足:

                                                                     s.t. \ \ y_i\left (\textbf{w}x_i+b \right )+\xi _i\geqslant 1, \ \ i=1,2,...,N



                                                                     s.t. \ \ y_i\left (\textbf{w}x_i+b \right ) \geqslant 1-\xi _i, \ \ i=1,2,...,N

    即可。

         每个样本虽然被给予了一个容忍度, 但是也不能太大度(\xi _i 超级大),否则任意的分割超平面就能使约束成立,那么SVM模型将变得没有任何意义。所以,应该在适度的宽松条件下,使它们满足约束。为此,每个样本需额外支付一个代价 \xi _i,因此有了如下的目标函数:

                                                                                       \min _{w,b}\frac{1}{2}||\textbf{w}||^2+C\sum_{i=1}^{N}\xi _i

         其中超参数 C 的含义值得玩味一番。如果 C 等于0,每个样本的容忍度如脱缰的野马,不知道其值会有多大;如果 C 特别大,为了保证目标函数值最小化,每个样本的容忍度非常小,误分类的样本数会很少,基本上退化到了硬间隔最大化的境界。因此,C 充当了一个既能使间隔尽量大,又能保证误分类样本尽量少的一个调和参数。
     
  2.  境界解读

         
    其实,就是比硬间隔更圆融了一些,眼光不在拘泥于所有类别的数据都要泾渭分明上了,更多的关注了数据的普适特征,降低了过拟合的风险。

     

四、第三重境界 —— 核SVM

    

    SVM目标是寻找一个线性分割超平面,将正负样本分开。但是,现实的分类中存在线性不可分的情况,如下图所示。

SVM的“三重境界”_第2张图片

     面对如此的分类任务,无论是硬间隔还是软间隔都无法定位到一个线性分类边界,使得正负样本完全分开。存在一种称为核函数的技巧,可以将数据从低维映空间射到高维空间中使得本来在低维空间中线性不可分的数据在高维空间中可以实现线性可分。应用核函数之后样本空间转化为下图。

SVM的“三重境界”_第3张图片

    可见,在高维空间中,可以实现将正负样本线性分开。

    境界解读: 使用核函数的SVM就像水一样,遇圆则圆,遇方则方,可以实现灵活的变换,而实现这一点正是借助了核函数。

 

五、小结

     本文对SVM的三种模型形式,做了略带形象化的解释,希望对入门SVM的同学有所帮助。其中,对于SVM的模型推导过程(拉格朗日对偶)和实现算法(序列最小优化算法——SMO算法)均未涉及,如果想更深入的了解,可以参考相关资料。

你可能感兴趣的:(机器学习,最优化方法,支持向量机,机器学习,算法,人工智能)