支持向量机(三)核函数

转载 2016年05月31日 17:47:55

7 核函数(Kernels)

考虑我们最初在“线性回归”中提出的问题,特征是房子的面积x,这里的x是实数,结果y是房子的价格。假设我们从样本点的分布中看到x和y符合3次曲线,那么我们希望使用x的三次多项式来逼近这些样本点。那么首先需要将特征x扩展到三维clip_image002[6],然后寻找特征和结果之间的模型。我们将这种特征变换称作特征映射(feature mapping)。映射函数称作clip_image004[10],在这个例子中

clip_image006[6]

我们希望将得到的特征映射后的特征应用于SVM分类,而不是最初的特征。这样,我们需要将前面clip_image008[4]公式中的内积从clip_image010[16],映射到clip_image012[42]

至于为什么需要映射后的特征而不是最初的特征来参与计算,上面提到的(为了更好地拟合)是其中一个原因,另外的一个重要原因是样例可能存在线性不可分的情况,而将特征映射到高维空间后,往往就可分了。(在《数据挖掘导论》Pang-Ning Tan等人著的《支持向量机》那一章有个很好的例子说明)

将核函数形式化定义,如果原始特征内积是clip_image014[4],映射后为clip_image016[6],那么定义核函数(Kernel)为

clip_image018[8]

到这里,我们可以得出结论,如果要实现该节开头的效果,只需先计算clip_image020[10],然后计算clip_image022[10]即可,然而这种计算方式是非常低效的。比如最初的特征是n维的,我们将其映射到clip_image024[6]维,然后再计算,这样需要clip_image026[6]的时间。那么我们能不能想办法减少计算时间呢?

先看一个例子,假设x和z都是n维的,

clip_image028[4]

展开后,得

clip_image030[4]

这个时候发现我们可以只计算原始特征x和z内积的平方(时间复杂度是O(n)),就等价与计算映射后特征的内积。也就是说我们不需要花clip_image026[7]时间了。

现在看一下映射函数(n=3时),根据上面的公式,得到

clip_image031[4]

也就是说核函数clip_image033[4]只能在选择这样的clip_image004[11]作为映射函数时才能够等价于映射后特征的内积。

再看一个核函数

clip_image034[4]

对应的映射函数(n=3时)是

clip_image035[4]

更一般地,核函数clip_image037[4]对应的映射后特征维度为clip_image039[4]。(求解方法参见http://zhidao.baidu.com/question/16706714.html)。

由于计算的是内积,我们可以想到IR中的余弦相似度,如果x和z向量夹角越小,那么核函数值越大,反之,越小。因此,核函数值是clip_image020[11]clip_image041[4]的相似度。

再看另外一个核函数

clip_image042[6]

这时,如果x和z很相近(clip_image044[6]),那么核函数值为1,如果x和z相差很大(clip_image046[6]),那么核函数值约等于0。由于这个函数类似于高斯分布,因此称为高斯核函数,也叫做径向基函数(Radial Basis Function 简称RBF)。它能够把原始特征映射到无穷维。

既然高斯核函数能够比较x和z的相似度,并映射到0到1,回想logistic回归,sigmoid函数可以,因此还有sigmoid核函数等等。

下面有张图说明在低维线性不可分时,映射到高维后就可分了,使用高斯核函数。

clip_image048[6]

来自Eric Xing的slides

注意,使用核函数后,怎么分类新来的样本呢?线性的时候我们使用SVM学习出w和b,新来样本x的话,我们使用clip_image050[8]来判断,如果值大于等于1,那么是正类,小于等于是负类。在两者之间,认为无法确定。如果使用了核函数后,clip_image050[9]就变成了clip_image052[6],是否先要找到clip_image054[8],然后再预测?答案肯定不是了,找clip_image054[9]很麻烦,回想我们之前说过的

clip_image055[4]

只需将clip_image057[4]替换成clip_image059[6],然后值的判断同上。

8 核函数有效性判定

问题:给定一个函数K,我们能否使用K来替代计算clip_image022[11],也就说,是否能够找出一个clip_image061[12],使得对于所有的x和z,都有clip_image018[9]

比如给出了clip_image063[8],是否能够认为K是一个有效的核函数。

下面来解决这个问题,给定m个训练样本clip_image065[6],每一个clip_image067[8]对应一个特征向量。那么,我们可以将任意两个clip_image067[9]clip_image069[6]带入K中,计算得到clip_image071[6]。I可以从1到m,j可以从1到m,这样可以计算出m*m的核函数矩阵(Kernel Matrix)。为了方便,我们将核函数矩阵和clip_image073[10]都使用K来表示。

如果假设K是有效地核函数,那么根据核函数定义

clip_image075[6]

可见,矩阵K应该是个对称阵。让我们得出一个更强的结论,首先使用符号clip_image077[6]来表示映射函数clip_image020[12]的第k维属性值。那么对于任意向量z,得

clip_image078[6]

最后一步和前面计算clip_image063[9]时类似。从这个公式我们可以看出,如果K是个有效的核函数(即clip_image073[11]clip_image080[6]等价),那么,在训练集上得到的核函数矩阵K应该是半正定的(clip_image082[6]

这样我们得到一个核函数的必要条件:

K是有效的核函数 ==> 核函数矩阵K是对称半正定的。

可幸的是,这个条件也是充分的,由Mercer定理来表达。

Mercer定理:

如果函数K是clip_image084[26]上的映射(也就是从两个n维向量映射到实数域)。那么如果K是一个有效核函数(也称为Mercer核函数),那么当且仅当对于训练样例clip_image065[7],其相应的核函数矩阵是对称半正定的。

Mercer定理表明为了证明K是有效的核函数,那么我们不用去寻找clip_image061[13],而只需要在训练集上求出各个clip_image086[6],然后判断矩阵K是否是半正定(使用左上角主子式大于等于零等方法)即可。

许多其他的教科书在Mercer定理证明过程中使用了clip_image088[16]范数和再生希尔伯特空间等概念,但在特征是n维的情况下,这里给出的证明是等价的。

核函数不仅仅用在SVM上,但凡在一个模型后算法中出现了clip_image090[4],我们都可以常使用clip_image073[12]去替换,这可能能够很好地改善我们的算法。

Ref: http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988406.html

支持向量机系列---为什么要引入核函数

前面的算法是针对线性可分的情况,当我们的样本线性不可分的时候怎么办呢?如果我们可以把线性不可分的问题转变成线性可分的问题该有多好!生活就是这么的美妙,我们可以将样本通过一个映射函数交它从原始空间投射到...
  • jiangjieqazwsx
  • jiangjieqazwsx
  • 2016年05月15日 21:33
  • 2563

机器学习----支持向量机(核函数)

讲SVM扩展到非线性可分领域
  • Love_wanling
  • Love_wanling
  • 2017年04月06日 16:51
  • 481

机器学习笔记09:支持向量机(二)-核函数(Kernels)

再吐槽一下CSDN的markdown编辑器,真的是烂,多少年了连个博客编辑器都做不好,数学公式一长,就卡的一笔。希望CSDN能出个离线的博客。 核函数是 SVM 的最重要的部分,我们可以通过设置...
  • Artprog
  • Artprog
  • 2016年05月28日 00:29
  • 2020

支持向量机SVM核函数的选择(七)

支持向量机是建立在统计学习理论基础之上的新一代机器学习算法,支持向量机的优势主要体现在解决线性不可分问题,它通过引入核函数,巧妙地解决了在高维空间中的内积运算,从而很好地解决了非线性分类问题。要构造出...
  • BigBzheng
  • BigBzheng
  • 2016年04月04日 10:05
  • 9849

选择支持向量机(SVM)核函数

SVM核函数通常有四种: 1. Linear 2. Polynomial 3. Gaussian (RBF) 4. Sigmoid/Logistic 不知为何,RBF最常用...
  • qq_33232071
  • qq_33232071
  • 2016年03月21日 19:16
  • 3520

理解支持向量机(二)核函数

由之前对核函数的定义(见统计学习方法定义7.6): 设χ是输入空间(欧氏空间或离散集合),Η为特征空间(希尔伯特空间),如果存在一个从χ到Η的映射 φ(x): χ→Η 使得对所有的x,z∈χ...
  • shijing_0214
  • shijing_0214
  • 2016年03月28日 20:15
  • 13376

公开课机器学习笔记(13)支持向量机三 核函数

2.2、核函数Kernel 2.2.1、特征空间的隐式映射:核函数     咱们首先给出核函数的来头:在上文中,我们已经了解到了SVM处理线性可分的情况,而对于非线性的情况,SVM 的处理方法...
  • BlueLoveyyt
  • BlueLoveyyt
  • 2015年03月28日 14:38
  • 2541

支持向量机SVM(三)核函数

转自http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988406.html 7 核函数(Kernels) 考虑我们最初在“线性回归”中提出...
  • Aijon
  • Aijon
  • 2015年11月19日 09:53
  • 319

核函数与支持向量机入门

原文博客传送门:核函数与支持向量机入门。 理解支持向量机(Support Vector Machine, SVM)的角度很多。从分类问题入手,由最小化训练错误导出限制条件下的凸优化问题的解,进...
  • hengwei_vc
  • hengwei_vc
  • 2015年11月21日 23:25
  • 1332

支持向量机(四)-- 核函数

一、核函数的引入 问题1: SVM显然是线性分类器,但数据如果根本就线性不可分怎么办? 解决方案1: 数据在原始空间(称为输入空间)线性不可分,但是映射到高维空间(称为特征空间)后很可能就线性可分了...
  • u011067360
  • u011067360
  • 2014年05月10日 20:58
  • 2770
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:支持向量机(三)核函数
举报原因:
原因补充:

(最多只允许输入30个字)