SVM中核函数的理解

转载 2018年04月16日 20:48:28

这篇文章是阅读JULY大神支持向量机通俗导论(理解SVM的三层境界)的一点学习笔记。 
在JULY大神原文中,对核函数解释的时候,点和点的坐标表示混用了”X”这个字母,从而为理解带来了不便。于是自己经过一些验算和重写之后,有了这一学习笔记。


我们知道,核函数的提出是在解决SVM在将低维线性不可分数据映射成高位线性可分时提出来的,于是我们直接从此开始。 
对于下图(来源于导论原文)的两类数据 
这里写图片描述 
我们可以用一个圆将它们区分开,这个二维上的点坐标为(p,q)(p,q)于是,圆我们可以用一个二次方程表示: 

a1p+a2p2+a3q+a4q2+a5pq+a6=0a1p+a2p2+a3q+a4q2+a5pq+a6=0

根据这一方程的形式,我们构造一个五维空间,其上点与二维平面的映射关系为 
(Z1,Z2,Z3,Z4,Z5)=(p,p2,q,q2,pq)(1.1)(1.1)(Z1,Z2,Z3,Z4,Z5)=(p,p2,q,q2,pq)

于是原二次方程即变为: 
i=15aiZi+a6=0∑i=15aiZi+a6=0

αZ+a6=0即αZ+a6=0

即一个超平面方程,通过SVM知识我们知道,这个超平面正是在五维空间上线性划分两类数据的超平面。 
那么是否对于式子,
f(x)=i=1naiyi<x1,x2>+bf(x)=∑i=1naiyi<x1,x2>+b

将其映射为
f(x)=i=1naiyi<ϕ(x1),ϕ(x2)>+b(1.2)(1.2)f(x)=∑i=1naiyi<ϕ(x1),ϕ(x2)>+b

是否可以对已知的非线性数据,找一个映射ϕ()ϕ() 一股脑将数据映射到高维空间,于是就能根据限制条件求出aiai
其实不行,ϕ()ϕ()这个映射,随着原像的维数增长,像的维数会爆炸性增长,自然ϕ()ϕ()也会变得很庞大,所以不好求。 
但是,我们不能退缩,要想出来办法。 
我么思考式子1.2,我们是先映射点积,我们能否找到一个函数K(x1,x2)K(x1,x2)其操作获得的结果和<ϕ(x1),ϕ(x2)><ϕ(x1),ϕ(x2)>结果一致,这样就不用映射,可以直接用x1x2x1和x2来求得,这样就不用寻找复杂的ϕ()ϕ()了。 
下面我们就找这样一个K(x1,x2)K(x1,x2)。 
还是考虑二维平面上的点x1(p1,q2),x2(p1,q2)x1(p1,q2),x2(p1,q2),及上文中式子1.1的映射我们有: 
ϕ(x1)=(p1,p21,q1,q21,p1q1)ϕ(x1)=(p1,p12,q1,q12,p1q1)

ϕ(x2)=(p2,p22,q2,q22,p2q2)ϕ(x2)=(p2,p22,q2,q22,p2q2)

所以有:
<ϕ(x1),ϕ(x2)>=p1p2+p21p22+q1q2+q21q22+p1p2q1q2(1.3)(1.3)<ϕ(x1),ϕ(x2)>=p1p2+p12p22+q1q2+q12q22+p1p2q1q2

同时我们计算: 
(<x1,x2>+1)2=2p1p2+p21p22+2q1q2+q21q22+2p1p2q1q2+1(1.4)(1.4)(<x1,x2>+1)2=2p1p2+p12p22+2q1q2+q12q22+2p1p2q1q2+1

对比发现式子1.3和1.4在形式上是很相似的。 
所以我们猜想,(<x1,x2>+1)2(<x1,x2>+1)2是否等于某一映射ϕ2()ϕ2()所对应的<ϕ2(x1),ϕ2(x2)><ϕ2(x1),ϕ2(x2)>。 
答案是,这个ϕ2()ϕ2()是有的,而且 
ϕ2()=>(2p,p2,2q,q2,2pq,1)ϕ2()=>(2p,p2,2q,q2,2pq,1)

一般化的说,其实只要满足形式上的一致性,总能找到这样一个ϕ()ϕ()存在。即,x1,x2x1,x2经过K(x1,x2)K(x1,x2)之后得到的值正是x1,x2x1,x2经过某映射后内积的值,这样就不用费力去求ϕ()ϕ()就可获得数据点在高维的内积了。 
K(x1,x2)我们称K(x1,x2)为核函数。

引用JULY大神的一句话

核函数绝就绝在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就是避免了直接在高维空间的复杂计算。

支持向量机(SVM)号称可以在保证经验风险固定较小的前提下,尽量最小化置信范围.其方法是在一个特征空间(好像要是Hilbert空间)上,找出划分两个点集的最优超平面,即使得两个点集沿该平面间隙最大.刚好落在这个间隙边上的向量叫做支持向量.这样的最大化据说就可以和置信范围最小化等价.VC维在这样的过程中是如何发生微妙变化的我还不太清楚.在两个点集不能用超平面完全划分的时候也有与此相适应的算法.推导显示求这样一个超平面,等价于求一个约束二次规划问题.
 
还有一个令人庆幸的事实是:如果只要求训练这样的超平面并对以后的数据做划分.SVM并不需要知道样例在特征空间中的向量表达或者甚至不需要知道特征空间的维数.它只需要知道任意两个样例映射到此空间后向量的内积.而这样的内积可以在样例(训练集或测试集中的)被映射成某个不可琢磨的特征空间中的向量之前被计算出来,完成这样计算的函数叫核函数.即使样例到特征空间的映射关系都不知道,只要该核函数满足伟大的Mercer定理,这样的特征空间就总能存在,SVM就能工作.

【Tensorflow_DL_Note3】深度学习中的数据处理及其可视化

#coding=UTF-8 #=====================================================================================...
  • maweifei
  • maweifei
  • 2018-04-17 10:52:16
  • 39

OpenCV笔记(4)实现神经网络(ANN)

      参考博客:点击打开链接。1.神经网络      神经网络最重要的功能是分类,前面用opencv实现的SVM也是分类器。      分类器的输入是数值向量,输出是数值。目标是让正确分类的比例...
  • qq_41051855
  • qq_41051855
  • 2018-04-16 16:18:49
  • 41

SVM核函数理解

核函数参数的理解,不知道对不对。。。
  • u012328476
  • u012328476
  • 2016-08-31 11:54:06
  • 1450

SVM的核函数

看了pluskid的文章中关于SVM核函数,有些地方反复理解了很久才懂,所以对原文的语句进行修改,写下自己的理解过程,以后回忆方便。 线性情况下的支持向量机对非线性的数据没有办法处理。例如...
  • vincent2610
  • vincent2610
  • 2016-07-26 16:27:56
  • 1277

机器学习----SVM(3)核函数

本文主要参考了了博客:http://blog.pluskid.org/?p=685  更详细的讲解可以参考原博客。       1、为什么引入核函数呢?       为了回答这个问题,我们先来说明什么...
  • Sunshine_in_Moon
  • Sunshine_in_Moon
  • 2016-05-05 14:52:02
  • 3072

为何引入核函数的理解(在理解SVM原理的前提下阅读)推荐看:http://blog.csdn.net/v_july_v/article/details/7624837

2.2、核函数Kernel 特征空间的隐式映射:核函数     咱们首先给出核函数的来头:在上文中,我们已经了解到了SVM处理线性可分的情况,而对于非线性的情况,SVM 的处理方法...
  • chengleisheng
  • chengleisheng
  • 2014-11-07 10:43:54
  • 2398

对于核函数的理解

一直都觉得核函数是一个很难理解东西,在知乎上看到了一个解答,感觉不错。         观点:核函数和映射没有关系,核函数只是用来计算映射到高维空间之后的内积的一种简便方法。一般英文文献对Kerne...
  • u012762641
  • u012762641
  • 2017-07-04 10:17:44
  • 470

SVM学习笔记(三)---核函数

转载自:http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988406.html  7 核函数(Kernels) 考虑我们最初在“线性回归...
  • susu_love
  • susu_love
  • 2016-11-28 14:16:45
  • 498

SVM核函数总结

SVM引入核函数有两个方面的原因,一是为了更好的拟合数据,另一个重要的原因是实现数据的线性可分。 由于一些数据集在低维空间是线性不可分的,SVM通过引入核函数实现了把特征集从低维空间到高维空间的映射...
  • lihaitao000
  • lihaitao000
  • 2016-04-17 16:27:41
  • 3191

SVM的常见核函数及其选取

核函数的数学要求 核函数有严格的数学要求,所以设计一个核函数是很困难的。K(x,z)是正定核的充要条件是:K(x,z)对应的Gram矩阵实半正定矩阵。 Gram矩阵:矩阵对应点的内积。KTK, K...
  • u011746554
  • u011746554
  • 2017-04-28 22:20:30
  • 1305
收藏助手
不良信息举报
您举报文章:SVM中核函数的理解
举报原因:
原因补充:

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