机器学习之一文读懂SVM原理

Introduction

 首先我们要明确SVM要解决的是一个分类问题,通过一个超平面对多维数据按照特征差异进行分类。首先我们需要思考如下问题:

1. 什么样的决策平面才是最好的

2. 特征数据本身就很难分该如何解决

3. 计算复杂度如何以及适合什么样场景下的应用

基于上述问题对svm进行推导。

1.决策平面的说明

我们通过下图的数据进行辅助理解:

              机器学习之一文读懂SVM原理

首先通过二维平面上的数据进行模拟,中间的两条实线可以看做是中间的直线看成是svm的决策函数,虚线上的数据是svm的support vectors(支持向量)。

我们的目的就是要选择支持向量(虚线上的数据)离决策函数最远时的情况作为最终结果。

因此我们需要知道距离的计算方式,一般超平面的方程如下:

                                                                机器学习之一文读懂SVM原理

x表示一个样本数据,即上图中一个个的样本点,可以通过一个多维的向量进行描述,超平面和正负样本可通过下图进行表述:

                                               机器学习之一文读懂SVM原理

x'和x''是决策平面上的点,x是样本空间中任意一个样本,x'和x‘’有如下关系:

                                                                     机器学习之一文读懂SVM原理

                                                                     机器学习之一文读懂SVM原理

因此有: 

                                                                机器学习之一文读懂SVM原理

                                      

一次可以知道机器学习之一文读懂SVM原理垂直于超平面上x’与x’’组成的向量,因此机器学习之一文读懂SVM原理垂直于超平面(根据向量垂直于平面上任意两点组成的向量可知)。因此空间点到超平面的距离可以根据距离公式计算得到。

                           机器学习之一文读懂SVM原理

可以理解为样本x与超平面x’点组成的向量在法向量方向的投影距离。其中机器学习之一文读懂SVM原理表示单位法向量。

2.数据标签的定义

这里我们以最简单的一维数据作为样本数据进行输入,y表示对应的标签(±1),将x代入决策平面可得如下:

                             机器学习之一文读懂SVM原理

这里用φ(x)表示样本有一个个特征组成的向量。

3. 优化的目标函数

按照上述的一维数据,我们的优化目标就是找到一条线(w和b),使得支持向量即之前虚线上的点离优化目标这条线尽量远。将上面的距离公式可以简化得到我们的优化目标函数如下:

              机器学习之一文读懂SVM原理

我们在对决策函数进行缩放后可以使得其输出的结果值机器学习之一文读懂SVM原理>=1,因此有:

    机器学习之一文读懂SVM原理

                       机器学习之一文读懂SVM原理

可知取等于1的结果为最小值,因此只需要知道机器学习之一文读懂SVM原理取最大值时对应的w和b是我们需要训练得到的值。

可以根据如下变换进行目标函数的转换:

         机器学习之一文读懂SVM原理

系数1/2是为了方便求导数,我们应用拉格朗日乘子法进行参数求解。

4. 拉格朗日乘子法求解

拉格朗日乘子法形如下图:

           机器学习之一文读懂SVM原理

将我们的目标函数的约束条件进行移位如下:

                                                 机器学习之一文读懂SVM原理

并代入到转换后的最小化后的目标函数:机器学习之一文读懂SVM原理中得到如下形式:

    机器学习之一文读懂SVM原理

其中ai是我们要求的中间变量,通过求取ai的值来间接得到w和b的值,需要对目标函数w和b求偏导并代入原式得到关于ai的方程,因为有三个参数待求解上式遵循kkt条件并分别对w和b求偏导如下:

                       机器学习之一文读懂SVM原理

将求导结果代入原式公式得到如下结果:

                      机器学习之一文读懂SVM原理

根据kkt原理继续对a求极大值,并将极大值转极小值问题:         
机器学习之一文读懂SVM原理

其中,ai>0是由于拉格朗日乘子法所自带的约束条件。当求得ai的值之后,根据前面的w和b的偏导信息求得值的信息。ai的求解十分复杂,我们可以通过一个特定的demo进行ai的求解,如下图所示:

                   机器学习之一文读懂SVM原理

根据已知条件机器学习之一文读懂SVM原理 进行正负样本的展开得到上图a1,a2,a3的约束关系。

代入到求解ai公式中,可得:

          机器学习之一文读懂SVM原理

因此需要对a1,a2求极小值(上式化简结果应该是+2a2,不是-),即需要对a1,a2求偏导,具体如下:

             机器学习之一文读懂SVM原理

解在边界上可以通过一个凸函数进行抽象理解。这样就对应上了。将最终的求解结果带入到w和b中求得最终的超平面方程如下:

                   机器学习之一文读懂SVM原理

实际中,训练样本的维度很高,因此训练结果的w和b也是一个多维的数据,例如对一些图像数据的分类问题。

由于上式对w求偏导结果如下:

                                                机器学习之一文读懂SVM原理

且a2=0,如下图:由于x2不在虚线上,即不是支持向量,对我们的w求解结果不产生影响,而所谓的支持向量即虚线上的点,对最终的训练结果产生实质性影响。这就是所谓支持向量的意义。

                                  机器学习之一文读懂SVM原理