前边总结了线性SVM,最终转化为一个QP问题来求解。后来又考虑到非线性SVM,如果特征特别特别多的话,直接使用QP的话求解不了,我们经过一系列的转化,把这一问题转化为训练集大小n量级的QP问题。

http://www.cnblogs.com/futurehau/p/6143178.html

在之前的基础之上,我们继续学习,引入核函数的概念,完全避免了特征数目量级的计算问题。接下来依次分析polynomial Kernel, Gaussian Kernel,并对他们进行对比分析。

一、Kernel 的引入

  之前我们得到对偶问题的QP形式:

  

  这似乎是一个n量级的问题,似乎和特征的个数无关,但是仔细一看,Q矩阵每一项的求解涉及到Z空间的内积,这就是特征个数量级的一个操作。所以我们从这里入手,想想怎样可以简化Z空间内积的计算呢?

  以二次变换为例,我们把X空间映射到Z空间,我们现在看看Z空间上的内积表达式是什么,可以怎么转换到X空间上。

  

  好了,我们发现Z空间上的内积刚好可以转换为X空间上的内积。所以我们就想,我们不需要显示的去先把X空间上的数据计算到空间上,然后训练参数,我们可以直接使用X空间上的参数来计算即可,这样大大降       低了我们的计算复杂度。

  

  这样,上述的转换就叫做Kernel函数。它把之前变换后的空间Z上的内积运算转换为原空间上的内积运算。

  我们再回过头来看看之前的对偶QP问题,Z空间上的哪些内积运算可以转换到X空间上呢?

  

  这样一来,所有的训练,测试都没有直接在Z空间上进行内积运算,所有运算都转换到了X空间上。这样所有运算就和你的特征维度没有关系了。

二、polynomial Kernel

  之前的例子使用的转换系数都是1,那么有没有其他的系数呢?

  加入我们改变一下系数,就能够得到不同形式的核函数。

  

  这些不同形式的核函数都把X映射到同一个Z空间,但区别是内积不同,那么几何定义就不一样了,那么分类的Margin就不同,这样对我们的分类效果就会有很大影响。

  同样,我们列举这些 polynomial:

  

三、Gaussian Kernel

  之前,都是一些有限维度的转换,那么可以可以做到无限多维度的转化呢?借助于exp函数的泰勒展开可以实现。厉害!

  

  这样我们得到Gaussian Kernel:

  

  

  

  如图所示,就是一些列高斯函数的线性组合,如果是正样本,就拔高,如果是负样本,就拖下,随后得到一个能够正确分类的超平面。

  可以看到,g(svm)就是一系列中心在Support Vector上的高斯函数的线性组合。所以gaussian kernel也叫RBF

  注意gama较大的时候还是有可能overfit的。

四、Comparison of Kernels

  4.1 Linear Kernel:

   

  4.2 polynomial kernel: ,一般用在小Q的时候

   

  4.3 Gaussian Kernel: 

   

  4.4 其他kernel

  kernel其实代表了Z空间向量的相似性,但并不是所有可以表示相似性的都可以写为kernel,kernel 需要满足以下条件:

  

  

针对可能存在的SVM过拟合问题,接下来讨论 soft margin SVM。http://www.cnblogs.com/futurehau/p/6165839.html

  

SVM2---核函数的引入的更多相关文章

  1. 6. 支持向量机(SVM)核函数

    1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...

  2. SVM学习(续)核函数 & 松弛变量和惩罚因子

    SVM的文章可以看:http://www.cnblogs.com/charlesblc/p/6193867.html 有写的最好的文章来自:http://www.blogjava.net/zhenan ...

  3. 支持向量机(SVM)必备概念(凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件、KKT条件)

    SVM目前被认为是最好的现成的分类器,SVM整个原理的推导过程也很是复杂啊,其中涉及到很多概念,如:凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件.KKT条件还有 ...

  4. 核型SVM

    (本文内容和图片来自林轩田老师<机器学习技法>) 1. 核技巧引入 如果要用SVM来做非线性的分类,我们采用的方法是将原来的特征空间映射到另一个更高维的空间,在这个更高维的空间做线性的SV ...

  5. SVM学习(续)

    SVM的文章可以看:http://www.cnblogs.com/charlesblc/p/6193867.html 有写的最好的文章来自:http://www.blogjava.net/zhenan ...

  6. 【转】 SVM算法入门

    课程文本分类project SVM算法入门 转自:http://www.blogjava.net/zhenandaci/category/31868.html (一)SVM的简介 支持向量机(Supp ...

  7. 深入理解图优化与g2o:图优化篇

    前言 本节我们将深入介绍视觉slam中的主流优化方法——图优化(graph-based optimization).下一节中,介绍一下非常流行的图优化库:g2o. 关于g2o,我13年写过一个文档,然 ...

  8. SVM算法入门

    转自:http://blog.csdn.net/yangliuy/article/details/7316496SVM入门(一)至(三)Refresh 按:之前的文章重新汇编一下,修改了一些错误和不当 ...

  9. 支持向量机(SVM)简介

    主要内容 一:SVM简介 二:线性分类 三:分类间隔 四:核函数 五:松弛变量 SVM简介 支持向量机(support vector Machine)是由Cortes和Vapnik于1995年首先提出 ...

  10. 支撑向量机(SVM)

    转载自http://blog.csdn.net/passball/article/details/7661887,写的很好,虽然那人也是转了别人的做了整理(最原始文章来自http://www.blog ...

随机推荐

  1. JAVA 编码中文简述

    中文编码问题虽然是个老问题,但对不熟悉的人来说还是不好处理的.不过Java中已经有了一套比较成熟的解决方案. 首先对中文编码格式予以简单介绍:中文编码有三套国标:GB2312,GBK,GB18030, ...

  2. Notepad++配置Python开发环境

    1. 安装Python 1 下载 我选择了32位的2.7版本.https://www.python.org/ftp/python/2.7.8/python-2.7.8.msi 2. 安装 安装的时候可 ...

  3. 黑马程序员——JAVA基础之正则表达式,网络爬虫

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 正则表达式: 概念:用于操作字符串的符合一定规则的表达式 特点:用于一些特定的符号来表示一些代码 ...

  4. 如何让AutoCAD自动加载Arx,比如ArxDbg.arx

    1.在AutoCAD的安装根目录下,用记事本创建一个acad.rx文件,如下 ------acad.rx----- ArxDbg.arx -------------------- 2.将ArxDbg. ...

  5. [redis] redis.clients.jedis.exceptions.JedisDataException: MOVED 13102 127.0.0.1

    这个异常上网查了很久才知道原因: MOVED indicates that you're using Redis Cluster. ShardedJedis is not for Redis Clus ...

  6. 函数调用方式__stdcall、__cdel

    函数调用方式关系对比如下: 关键字 调用规则 参数传递方向 返回 参数寄存器 堆栈的清除 __cdecl C语言 从右向左 EAX 无 调用者 __stdcall Win32标准  从右向左 EAX ...

  7. bzoj4130: [PA2011]Kangaroos

    Description 定义两个区间互相匹配表示这两个区间有交集. 给出长度为N的区间序列A,M次询问,每次询问序列A中最长的连续子序列,使得子序列中的每个区间都与[L,R]互相匹配 N<=50 ...

  8. ASP.NET学习笔记1—— MVC

    MVC项目文件夹说明 1.App_Data:用来保存数据文件 2.App_Start:包含ASP.NET-MVC系统启动的相关类文件 3.Controllers:存放整个项目"控制器&quo ...

  9. volley_之2

    一开始会不会觉得有点怔,为什么只需要将请求添加到队列中,不需要去发送请求吗?当然是要的,只是这一切都被封装在Volley后面而已. 我们先来看一下隐藏在Volley后面的这个架构是怎么样的吧,如下图: ...

  10. [HTML] CSS Id 和 Class选择器

    id 和 class 选择器 如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器. id 选择器 id 选择器可以为标 ...