支持向量机(SVM)原理解析

1. 基础概念

    SVM(Support Vector Machine)支持向量机,是一类出色的监督学习算法,常用于分类和回归问题。SVM的一个重要特征是,其通过最大化几何间隔的方式,降低了经验分类误差,因此SVM又被称为最大间隔分类器。其次,SVM是一类线性分类器,通过构造分隔超平面,将数据分为两个类别。对于线性不可分的数据,SVM通过将原始数据映射到更高的维度,从而使其线性可分。

    我们将数据表示为如下形式:

    其中,表示数据的两个类别。n表示数据的数量。

支持向量机(SVM)原理解析_第1张图片

    如上图所示,分隔超平面将两个类别的数据分隔开来。并且在超平面的两侧,各构造一个与分隔超平面平行的平面:

则数据点位于平面两侧,且该平面距离分隔超平面距离最远。其中位于平面上的点称为支持向量(Support Vector)。SVM通过最大化平面之间的几何距离来得到最优分隔超平面。平面之间的几何距离为:,则SVM算法可以定义为以下的约束最优化问题:

即:

       通过引入拉格朗日乘法因子,将以上最优化问题转化为如下原始形式:


       根据原始问题的对偶性得:

       分别对w,b求偏导得:

       将以上结果代入进行运算,

支持向量机(SVM)原理解析_第2张图片

我们可以得到如下所示的dual形式:

2. 常用核函数

       我们将以下函数称之为核函数:

       函数通过将映射到更高的维度,从而使其线性可分。然后,SVM在此更高的维度上,寻找具有最大间隔的分隔超平面。

       在SVM应用中,如何选择合适的核函数仍然是一个研究议题,下面列出常用的核函数。

1. 线性核函数(Linear Kernel)

2. 多项式核函数(Polynomial Kernel)

3. RBF kernel

4. Sigmoid kernel

       其中,d是核函数的参数。在以上核函数中,RBF是最常用的核函数,主要由于以下原因:

  1. RBF相比于线性核函数,将输入映射到一个更高纬度的空间。
  2. RBF相比于其他核函数参数更少,且计算简单。

3. 实践理论

       在构建SVM应用时,我们可以参照以下实践步骤快速地构建模型。

  1. 预处理数据

              在SVM模型中,实例x被表示为一组实数向量表示实 例的第i个属性,m表示实例的属性个数。因此,如果实例有m个属性,我

       们需要将实例的每个属性表示为一个实数数值,从而将实例表示为m维的实       数数组。

              在训练SVM模型前,对数据进行合理的缩放(scaling)是非常必要的。 对数据的缩放主要有以下两个优点:

  1. 避免数值较大的属性在算法中起主要的作用,数值较小属性的影响作用被忽略。
  2. 节约计算成本,避免算法在运行中出现数值越界。

              在缩放阶段,我们推荐线性的将每个属性的值缩放到区间内。

2. 模型选择

              虽然有很多的核函数可供选择,但基于以上原因,我们推荐首先采用RBF     核函数。RBF核函数有一个参数,我们通过K-folder cross validation和Grid Search方法寻找最优的参数。

              在K-folder cross validation方法中,我们将训练数据均匀的分为K个子 集,然后分别使用每一个子集作为测试集,并将其余的k-1个子集作为训练   集训练模型,最后在测试集上得到算法的精确率,并将得到的k个精确率取 均值作为该参数下算法的精确率。

              在Grid Search方法中,我们尝试一系列参数的值,并使用K-folder cross validation方法验证该值对应的精确率,最后选择最优的参数。但是要一一   验证所有的参数非常耗时,所以在实践应用中,我们通常在的合理区间      内随机取一些值进行训练,并在这些值中挑选最优的参数。后续在该参数附       近执行相对全量的搜索,最终得到一个合理的参数。

4. 软线性分隔

       在实际应用中,不是所有的数据都是线性可分的,对于非线性可分的问题,我们通过以下调整使得SVM能够有效支持:

       在以上公式中,我们通过参数降低了约束限制,允许部分数据在分隔平面内侧。参数C是另外一个超参数,作为模型误分类的惩罚系数。

你可能感兴趣的:(神经网络,算法,人工智能)