机器学习笔记——支持向量机(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算法快速求解目标函数。

时间: 2024-11-05 18:57:36

机器学习笔记——支持向量机(3)的相关文章

七月算法--12月机器学习在线班-第十二次课笔记—支持向量机(SVM)

七月算法-12月机器学习在线班--第十二次课笔记-支持向量机(SVM) 七月算法(julyedu.com)12月机器学习在线班学习笔记http://www.julyedu.com ? 复习的内容: 对偶问题 KKT条件 ? SVM 1.1三类数据类型 线性可分支持向量机 线性支持向量机 非线性支持向量机 ? 1.2 线性分类 1.2.1 样本到分类面的距离的意义 点到直线的距离,ABC是归一化的."+"正类别,"-"负类别 因此距离可以直接用AX+BY+c=f(x,

机器学习笔记——SVM之一

SVM(Support Vector Machine),中文名为 支持向量机,就像自动机一样,听起来异常神气,最初总是纠结于不是机器怎么能叫"机",后来才知道其实此处的"机"实际上是算法的意思. 支持向量机一般用于分类,基本上,在我的理解范围内,所有的机器学习问题都是分类问题.而据说,SVM是效果最好而成本最低的分类算法. SVM是从线性可分的情况下最优分类面发展而来的,其基本思想可以用下图表示: (最优分类面示意图) 图中空心点和实心点代表两类数据样本,H为分类线

机器学习笔记

下载链接:斯坦福机器学习笔记 这一系列笔记整理于2013年11月至2014年7月.所有内容均是个人理解,做笔记的原因是为了以后回顾相应方法时能快速记起,理解错误在所难免,不合适的地方敬请指正. 笔记按照斯坦福机器学习公开课的notes整理,其中online学习部分没有整理,reinforcement learning还没接触,有时间补上. 这份笔记主要记录自己学习过程中理解上的难点,所以对于初学者来说可能不容易理解,更详细和全面的说明可以参照JerryLead等的机器学习博文. 水哥@howde

机器学习笔记(1)

今天按照<机器学习实战>学习 k-邻近算法,输入KNN.classify0([0,0],group,labels,3)的时候总是报如下的错误: Traceback (most recent call last): File "<pyshell#75>", line 1, in <module> KNN.classify0([0,0],group,labels,3) File "KNN.py", line 16, in classi

机器学习笔记——K-means

K-means是一种聚类算法,其要求用户设定聚类个数k作为输入参数,因此,在运行此算法前,需要估计需要的簇的个数. 假设有n个点,需要聚到k个簇中.K-means算法首先从包含k个中心点的初始集合开始,即随机初始化簇的中心.随后,算法进行多次迭代处理并调整中心位置,知道达到最大迭代次数或中性收敛于固定点. k-means聚类实例.选择三个随机点用作聚类中心(左上),map阶段(右上)将每个点赋给离其最近的簇.在reduce阶段(左下),取相互关联的点的均值,作为新的簇的中心位置,得到本轮迭代的最

机器学习笔记 贝叶斯学习(上)

机器学习笔记(一) 今天正式开始机器学习的学习了,为了激励自己学习,也为了分享心得,决定把自己的学习的经验发到网上来让大家一起分享. 贝叶斯学习 先说一个在著名的MLPP上看到的例子,来自于Josh Tenenbaum 的博士论文,名字叫做数字游戏. 用我自己的话叙述就是:为了决定谁洗碗,小明和老婆决定玩一个游戏.小明老婆首先确定一种数的性质C,比如说质数或者尾数为3:然后给出一系列此类数在1至100中的实例D= {x1,...,xN} :最后给出任意一个数x请小明来预测x是否在D中.如果小明猜

机器学习笔记——人工神经网络

人工神经网络(Artificial Neural Networks,ANN)提供了一种普遍而实用的方法从样例中学习值为实数.离散值或向量的函数. 人工神经网络由一系列简单的单元相互密集连接构成,其中每一个单元有一定数量的实值输入(可能是其他单元的输出),并产生单一的实数值输出(可能成为其他单元的输入). 适合神经网络学习的问题: 实例是很多"属性-值"对表示的 目标函数的输出可能是离散值.实数值或者由若干实数或离散属性组成的向量 训练数据可能包含错误 可容忍长时间的训练 可能需要快速求

机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)> 2.<机器学习笔记02:多元线性回归.梯度下降和Normal equation> 3.<机器学习笔记03:Normal equation及其与梯度下降的比较> 说明:本文章所有图片均属于Stanford机器学课程,转载请注明出处 面对一些类似回归问题,我们可

机器学习笔记之基础概念

本文基本按照<统计学习方法>中第一章的顺序来写,目录如下: 1. 监督学习与非监督学习 2. 统计学习三要素 3. 过拟合与正则化(L1.L2) 4. 交叉验证 5. 泛化能力 6. 生成模型与判别模型 7. 机器学习主要问题 8. 提问 正文: 1. 监督学习与非监督学习 从标注数据中学习知识的规律以及训练模型的方法叫做监督学习,但由于标注数据获取成本较高,训练数据的数量往往不够,所以就有了从非标注数据,也就是非监督数据中学习的方法. 由于非监督数据更容易获取,所以非监督学习方法更适合于互联