首页 > 代码库 > 机器学习笔记——支持向量机(3)

机器学习笔记——支持向量机(3)

八、核(kernel)

如果样本点为线性不可分,那么,需要将数据映射到高维空间,使在原始空间内其线性可分变为线性可分。如下图所示:

上文提到,分类器可以写成:

那么,如果使用一种映射的方法,将低维数据映射到高维(),使得线性不可分变为线性可分。称为特征映射函数,这样,分类器就变为:

(1)实例

低维映射到高维能否将线性不可分变为线性可分呢?下面就举个例子来看。假设数据可以用决策的边界表示(如下图左所示),那么,利用 ,做映射,可以得到决策边界:。经过上述的映射变换,原来在圆内的点都在超平面的一侧(用虚线的圈圈表示),在圆外的点都在超平面的另外一侧(用X表示)(如下图右所示)。


将低维数据映射到高维空间,再计算内积,计算量非常大。而如果有一种方法能在低维数据的基础上,直接计算内积的结果,而不显式的表现出映射至高维空间这个中间过程,算法时间复杂度将降低,这里就引进了核的概念,定义:


我们将内积用核函数代替。

下面看几个核函数的例子:

假设:


那么是一个n2维的向量。如果计算内积,算法复杂度为O(n4)。

,令:


可以看到,计算核函数和计算向量内积的结果是一致的,但仅仅需要计算内积,时间复杂度降低到了线性时间,即O(n)。

再看一个例子:令



那么是一个n2+n+1维的向量,如果计算内积,算法复杂度为O(n4)。



让我们从另一视角看看核函数:直观上来说,如果较为接近,那么我们可以期望较大;而相差较远甚至几乎正交,那么较小。因此,我们可以认为核函数在某种程度上可以度量,甚至x和z的相似度。

(2)常用核函数

接着介绍两个常用的核函数:

多项式核

多项式核可以写成:


多项式核将原始值映射至维空间(其中n为原始值的维度)。

高斯核

高斯核可以写成:

高斯核形式跟高斯分布的密度函数极其相似,因此称为高斯核。高斯核中e的指数部分须计算x和z的欧几里德距离(在机器学习笔记——K-means算法V1.0中已经提到,欧几里德距离可度量数据之间的相异性),当时,x和z较相似;,x和z较相异。

(3)有效核

定理:令K:。如果K是一个有效核,那么它的充分必要条件为:对于任意的,(),核矩阵对应核()矩阵皆为对称阵,并且半正定。下面对该定理进行证明:

对称性:

因此,为对称阵。

半正定性:

令为向量的第k个分量,对于任意向量z,有:


由于z是任意的,因此,K为半正定的。
最后引用v_JULY_v博文中的例子,用以说明支持向量机的分类效果。

假设有一块农场上有狼和羊两类样本,需要修建一个篱笆,将狼和羊分隔开来,避免狼伤及到羊。下面三个图分别是三类不通的分类方法:


可以看出,Logistic模型在对训练样本的划分存在较大的误差,决策树的边界较为生硬,而SVM可以划出较为理想的决策边界。

九、离群点(outlier)和松弛变量

前文中提到的实例均为线性可分,将数据从低维映射到高维也仅仅是增加了数据线性可分的概率,但并不能保证数据线性可分。在一些样本中可能存在少量的离群点,导致分类的效果不尽理想。例如:下面左图中超平面对于两类样本点的分类情况相当良好,而如果增加一个样本点,就会使得超平面移动,而样本和超平面的间隔大幅减小。

   

为了解决上述问题,使SVM用于具有少量离群点的非线性可分数据集,我们将重新定义我们的目标函数和约束条件(规范):



修改后的目标函数以及约束条件将允许函数间隔小于1,如果一个样本的函数间隔为,那么我们将在目标函数中增加惩罚值。其中,参数C为了控制超平面到样本点的间隔尽可能大,并且保证数据点偏差量尽量小。

此时的拉格朗日算子变为:

此时的拉格朗日乘数为)。



以及带入得到下面的对偶问题:



十、SMO(sequentialminimal optimization)算法

SMO算法是由微软公司的John C. Platt发明的一种高效计算SVM的算法。 SMO算法将大型的二次规划问题(quadratic programming,QP),分解成小的QP问题。

(1)坐标上升(coordinate ascent)

假设一个需要求解一个无约束的优化问题,形式如下:

首先固定除了外的其他变量,然后求出以为变量的函数最大值。

Loop untilconvergence{

   For i=1,…,m{

             

}

}


(2)SMO

在下述约束条件下求解优化问题:



我们可以尝试使坐标上升的方法求解:现在我们固定,将看作变量,然而,事与愿违,仅仅使用一个,无法利用坐标上升进行。证明如下:



将上式两边同乘以得:


由上式可以看出的值完全由决定,如果固定了,那么的值也被固定了,为一个常数,而不能为变量了。

因此,如果我们尝试利用坐标上升方法求解,同时更新两个变量,而将剩下的固定,这样可以满足约束条件。

Repeat until convergence{

1.    选择某些一对

2.    保持其他 不变(),以和做为变量对W(a)进行优化。

}


不失一般性:假设所有均满足约束条件,固定,那么我们需要优化以为变量的

由约束条件可得:


由于为定值,我们令,有:


在坐标上表示,如下图


根据约束条件的限制,必须在方型区域内;又,因此,必有上下界,令

可以将表示:

目标函数可以表示成:

目标函数就是关于的二次函数:


我们用表示不受上下界约束的解,而用表示约束解,可得:

求出后,根据,可求出

具体的SMO算法的推导过程可参见JohnC. Platt的论文:SequentialMinimal Optimization: A Fast Algorithm for Training Support Vector Machines。

十一、总结

最后,用一段不带公式的语言总结支持向量机:支持向量机的目标就是求出一个超平面将正负两类样本点分开,并且使最小几何间隔尽可能大。由于上述问题是个非凸优化问题,因此可将其转化为等价的凸优化问题。再利用KKT条件,将原始优化问题,转化为其对偶问题,最终会得到一个以拉格朗日乘数为变量的优化问题。此问题的目标函数中含有样本点与预测点的内积形式,由于可能需要将样本点映射到高维空间,以便使样本点线性可分,可以通过核函数求解内积以降低高维空间求内积的运算复杂度。最后,可以使用SMO算法快速求解目标函数。


机器学习笔记——支持向量机(3)