一文读懂支持向量积核函数(附公式)

转载 2018年01月29日 00:00:00

640?wx_fmt=png&wxfrom=5&wx_lazy=1

来源:jerrylead

本文长度为1783字,建议阅读4分钟

本文通过多个例子为你介绍支持向量积核函数,助你更好地理解。


核函数(Kernels)


考虑我们最初在“线性回归”中提出的问题,特征是房子的面积x,这里的x是实数,结果y是房子的价格。


假设我们从样本点的分布中看到x和y符合3次曲线,那么我们希望使用x的三次多项式来逼近这些样本点。


那么首先需要将特征x扩展到三维640?wx_fmt=png&wxfrom=5&wx_lazy=1,然后寻找特征和结果之间的模型。我们将这种特征变换称作特征映射(feature mapping)。映射函数称作640?wx_fmt=png&wxfrom=5&wx_lazy=1,在这个例子中


640?wx_fmt=png&wxfrom=5&wx_lazy=1


我们希望将得到的特征映射后的特征应用于SVM分类,而不是最初的特征。这样,我们需要将前面640?wx_fmt=png&wxfrom=5&wx_lazy=1公式中的内积从640?wx_fmt=png&wxfrom=5&wx_lazy=1,映射到640?wx_fmt=png&wxfrom=5&wx_lazy=1


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


将核函数形式化定义,如果原始特征内积是640?wx_fmt=png,映射后为640?wx_fmt=png,那么定义核函数(Kernel)为


640?wx_fmt=png


到这里,我们可以得出结论,如果要实现该节开头的效果,只需先计算640?wx_fmt=png,然后计算640?wx_fmt=png即可,然而这种计算方式是非常低效的。


比如最初的特征是n维的,我们将其映射到640?wx_fmt=png维,然后再计算,这样需要640?wx_fmt=png的时间。那么我们能不能想办法减少计算时间呢?


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


640?wx_fmt=png


展开后,得


640?wx_fmt=png


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


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


640?wx_fmt=png


也就是说核函数640?wx_fmt=png只能在选择这样的640?wx_fmt=png作为映射函数时才能够等价于映射后特征的内积。


再看一个核函数


640?wx_fmt=png


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


640?wx_fmt=png


更一般地,核函数640?wx_fmt=png对应的映射后特征维度为640?wx_fmt=png


由于计算的是内积,我们可以想到IR中的余弦相似度,如果x和z向量夹角越小,那么核函数值越大,反之,越小。因此,核函数值是640?wx_fmt=png640?wx_fmt=png的相似度。


再看另外一个核函数


640?wx_fmt=png


这时,如果x和z很相近(640?wx_fmt=png),那么核函数值为1,如果x和z相差很大(640?wx_fmt=png),那么核函数值约等于0。


由于这个函数类似于高斯分布,因此称为高斯核函数,也叫做径向基函数(Radial Basis Function 简称RBF)。它能够把原始特征映射到无穷维。


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


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


640?wx_fmt=png

来自Eric Xing的slides


注意,使用核函数后,怎么分类新来的样本呢?线性的时候我们使用SVM学习出w和b,新来样本x的话,我们使用640?wx_fmt=png来判断,如果值大于等于1,那么是正类,小于等于是负类。


在两者之间,认为无法确定。如果使用了核函数后,640?wx_fmt=png就变成了640?wx_fmt=png,是否先要找到640?wx_fmt=png,然后再预测?答案肯定不是了,找640?wx_fmt=png很麻烦,回想我们之前说过的


640?wx_fmt=png


只需将640?wx_fmt=png替换成640?wx_fmt=png,然后值的判断同上。


核函数有效性判定


问题:给定一个函数K,我们能否使用K来替代计算640?wx_fmt=png,也就说,是否能够找出一个640?wx_fmt=png,使得对于所有的x和z,都有640?wx_fmt=png


比如给出了640?wx_fmt=png,是否能够认为K是一个有效的核函数。


下面来解决这个问题,给定m个训练样本640?wx_fmt=png,每一个640?wx_fmt=png对应一个特征向量。


那么,我们可以将任意两个640?wx_fmt=png640?wx_fmt=png带入K中,计算得到640?wx_fmt=png。I可以从1到m,j可以从1到m,这样可以计算出m*m的核函数矩阵(Kernel Matrix)。


为了方便,我们将核函数矩阵和640?wx_fmt=png都使用K来表示。


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


640?wx_fmt=png


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


640?wx_fmt=png


最后一步和前面计算640?wx_fmt=png时类似。从这个公式我们可以看出,如果K是个有效的核函数(即640?wx_fmt=png640?wx_fmt=png等价),那么,在训练集上得到的核函数矩阵K应该是半正定的(640?wx_fmt=png


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


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


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


Mercer定理:

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


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


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


核函数不仅仅用在SVM上,但凡在一个模型后算法中出现了640?wx_fmt=png,我们都可以常使用640?wx_fmt=png去替换,这可能能够很好地改善我们的算法。


编辑:文婧

640?wx_fmt=jpeg

一文读懂支持向量积核函数(附公式)

核函数(Kernels) 考虑我们最初在“线性回归”中提出的问题,特征是房子的面积x,这里的x是实数,结果y是房子的价格。 假设我们从样本点的分布中看到x和y符合3次曲线,那么我们希望使用x的三次...
  • qq_36510261
  • qq_36510261
  • 2018年01月31日 15:16
  • 58

一文读懂支持向量积核函数(附公式)

来源:jerrylead本文长度为1783字,建议阅读4分钟本文通过多个例子为你介绍支持向量积核函数,助你更好地理解。核函数(Kernels)考虑我们最初在“线性回归”中提出的问题,特征是房子的面积x...
  • tMb8Z9Vdm66wH68VX1
  • tMb8Z9Vdm66wH68VX1
  • 2018年01月29日 00:00
  • 210

【资料合集】2017云栖大会•苏州峰会回顾合集:PDF下载

技术揭秘大狂欢,12月7日,云栖大会·苏州峰会于苏州日航酒店三楼中宴会厅召开,带来前沿技术理念及实践技术成果分享。本次云栖大会的看点:企业软件供应链生产效能如何提升;如何实现高效研发实践;初创企业如何...
  • qq_36510261
  • qq_36510261
  • 2017年12月13日 14:51
  • 113

一文读懂遗传算法工作原理(附Python实现)

选自AnalyticsVidhya 参与:晏奇、黄小天 近日,Analyticsvidhya 上发表了一篇题为《Introduction to Genetic Algorithm & thei...
  • QFire
  • QFire
  • 2017年08月29日 20:44
  • 1165

一文读懂「Attention is All You Need」| 附代码实现

作者丨苏剑林单位丨广州火焰信息科技有限公司研究方向丨NLP,神经网络个人主页丨kexue.fm前言2017 年中,有两篇类似同时也是笔者非常欣赏的论文,分别是 FaceBook 的 Convoluti...
  • c9Yv2cf9I06K2A9E
  • c9Yv2cf9I06K2A9E
  • 2018年01月10日 00:00
  • 151

独家 | 一文读懂人工神经网络

作者:Sidath Asiri翻译:Nicola校对:卢苗苗原文标题:MeetArticial Neural Networks本文约1500字,建议阅读5分钟。本文通过使用浅显易懂的语言和介绍yout...
  • tMb8Z9Vdm66wH68VX1
  • tMb8Z9Vdm66wH68VX1
  • 2018年02月01日 00:00
  • 249

mac、iOS端支持自定义布局的collection控件的实现与设计

介绍 collection控件用来实现界面的各种自定义布局,最常用其作为横向、竖向的布局控件。很早之前,系统对于collection的支持并不是很好。所以自己实现了支持自定义布局、自定义cell...
  • qq_36510261
  • qq_36510261
  • 2017年12月07日 14:29
  • 49

一文读懂最近流行的CNN架构(附学习资料)

来源: 机器学习算法全栈工程师本文长度为4259字,建议阅读6分钟本文为你介绍CNN架构,包括ResNet, AlexNet, VGG, Inception。本文翻译自ResNet, AlexNet,...
  • tMb8Z9Vdm66wH68VX1
  • tMb8Z9Vdm66wH68VX1
  • 2018年01月14日 00:00
  • 600

一文读懂BP神经网络

转自一位懂生活的女神的博客园的文章。http://www.cnblogs.com/charlotte77/p/5629865.html  最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程...
  • accumulate_zhang
  • accumulate_zhang
  • 2016年11月24日 18:49
  • 1344

独家 | 17篇手把手教技术指南、技术进阶干货大合集

数据派一直致力于打造数据科学人才聚集地,传播数据科学知识,分享前沿科技动态,分析应用案例,组织线下活动。本文通过梳理往期内容,挑选出数据派研究部出品的“一文读懂”、“手把手教”、“实践经验”系列独家原...
  • tMb8Z9Vdm66wH68VX1
  • tMb8Z9Vdm66wH68VX1
  • 2018年01月31日 00:00
  • 206
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一文读懂支持向量积核函数(附公式)
举报原因:
原因补充:

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