码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-11-10 13:55:52      阅读:421      评论:0      收藏:0      [点我收藏+]

标签:algorithm   分类   机器学习   

八、核(kernel)

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

bubuko.com,布布扣

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

bubuko.com,布布扣

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

bubuko.com,布布扣

(1)实例

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

bubuko.com,布布扣bubuko.com,布布扣

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

bubuko.com,布布扣

我们将内积bubuko.com,布布扣用核函数bubuko.com,布布扣代替。

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

假设:

bubuko.com,布布扣

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

bubuko.com,布布扣,令:

bubuko.com,布布扣

bubuko.com,布布扣

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

再看一个例子:令


bubuko.com,布布扣

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

bubuko.com,布布扣

bubuko.com,布布扣

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

(2)常用核函数

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

多项式核

多项式核可以写成:

bubuko.com,布布扣

多项式核将原始值映射至bubuko.com,布布扣维空间(其中n为原始值的维度)。

高斯核

高斯核可以写成:

bubuko.com,布布扣

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

(3)有效核

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

对称性:

bubuko.com,布布扣bubuko.com,布布扣

因此,bubuko.com,布布扣为对称阵。

半正定性:

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

bubuko.com,布布扣


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

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

bubuko.com,布布扣

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

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

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

bubuko.com,布布扣   bubuko.com,布布扣

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

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

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

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

bubuko.com,布布扣

此时的拉格朗日乘数为bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣)。

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣以及bubuko.com,布布扣带入bubuko.com,布布扣得到下面的对偶问题:

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

十、SMO(sequentialminimal optimization)算法

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

(1)坐标上升(coordinate ascent)

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

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

Loop untilconvergence{

   For i=1,…,m{

             bubuko.com,布布扣

}

}


(2)SMO

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

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣


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

bubuko.com,布布扣


将上式两边同乘以bubuko.com,布布扣得:

bubuko.com,布布扣

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

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

Repeat until convergence{

1.    选择某些一对bubuko.com,布布扣bubuko.com,布布扣

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

}


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

由约束条件可得:

bubuko.com,布布扣

由于bubuko.com,布布扣为定值,我们令bubuko.com,布布扣,有:

bubuko.com,布布扣

bubuko.com,布布扣在坐标上表示,如下图

bubuko.com,布布扣

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

可以将bubuko.com,布布扣bubuko.com,布布扣表示:bubuko.com,布布扣

目标函数可以表示成:

bubuko.com,布布扣

目标函数就是关于bubuko.com,布布扣的二次函数:

bubuko.com,布布扣

我们用bubuko.com,布布扣表示bubuko.com,布布扣不受上下界约束的解,而bubuko.com,布布扣用表示约束解,可得:

bubuko.com,布布扣

求出bubuko.com,布布扣后,根据bubuko.com,布布扣,可求出bubuko.com,布布扣

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

十一、总结

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


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

标签:algorithm   分类   机器学习   

原文地址:http://blog.csdn.net/linkin1005/article/details/40979019

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!