总结一下遇到的各种核函数

2023-10-28

原文:http://www.bubuko.com/infodetail-991698.html

首先,再对核方法的思想进行描述,核函数的思想是一个伟大的想法,它工作简练巧妙的映射,解决了高维空间中数据量庞大的问题,在机器学习中是对算法进行非线性改进的利器。如下,如果在原空间中,给定的样本数据X是线性不可分的,那么如果我们能够将数据映射到高维空间中,即

技术分享

那么在高维空间中,样本数据很有可能线性可分,这个特点可以用下图做一个很好的说明:

技术分享

如左图,红色部分的点为一类数据,黑色部分的点为另一类,在一维空间中,你不可能通过一刀切将两类数据分开,至少需要两刀。OK,这就说明数据分布是非线性的,我们采用高维映射,当然了,例子中只是映射到了二维空间,但已经足够说明问题了,在右图中,完全可以通过沿着X轴方向的一刀切将两类数据分开,说明在二维空间中,数据已经变成线性可分的了。

 

这个时候,我们就可以采用很多已有的线性算法对数据进行处理,但是问题来了,映射函数具体形式是什么?这个问题的答案是,根本不需要知道映射函数的具体形式,直接对高维数据进行操作吧!

比如说最经典的PCA算法,这部分内容其实是对前一篇帖子的回顾(http://blog.csdn.net/wsj998689aa/article/details/40398777

PCA在原始空间中的数学模型如下所示:

                                                                                                                                   技术分享

在高维空间中的形式就是:


        技术分享                                                               

我们对其进行简单的变换,我们知道,一个空间中的基向量完全可以用所有的训练样本线性表示出来,即

技术分享

见证神奇的时刻到了,上式带入上上式,就可以得到如下形式:

技术分享                                                        

如果你再在等号两侧同时左乘一个东西,就会变成如下形式:

技术分享

核方法的价值在于如下等式成立,

技术分享

请注意,这个公式表达的意思只是高维空间中向量的内积等于原空间中向量之间的核函数值,根核函数的具体形式没有一毛钱的关系。我们继续,一个样本是这样的,那么矩阵化的形式如下:

技术分享

那么PCA就变成了如下形式:

技术分享

看到没,核方法借用核函数的性质,将高维映射成功的抹掉了。那么什么样的函数才可以被称作为核函数呢?这里大牛们给出了一个著名的定理,称作mercer定理。

 

Mercer 定理:任何半正定的函数都可以作为核函数。所谓半正定的函数f(xi,xj),是指拥有训练数据集合(x1,x2,...xn),我们定义一个矩阵的元素aij = f(xi,xj),这个矩阵式n*n的,如果这个矩阵是半正定的,那么f(xi,xj)就称为半正定的函数。

 

请注意,这个mercer定理不是核函数必要条件,只是一个充分条件,即还有不满足mercer定理的函数也可以是核函数。所谓半正定指的就是核矩阵K的特征值均为非负。

 

本文将遇到的核函数进行收集整理,分享给大家。

 

1. Linear Kernel

线性核是最简单的核函数,核函数的数学公式如下:

技术分享

如果我们将线性核函数应用在KPCA中,我们会发现,推导之后和原始PCA算法一模一样,很多童鞋借此说“kernel is shit!!!”,这是不对的,这只是线性核函数偶尔会出现等价的形式罢了。

 

2. Polynomial Kernel

多项式核实一种非标准核函数,它非常适合于正交归一化后的数据,其具体形式如下:

技术分享

这个核函数是比较好用的,就是参数比较多,但是还算稳定。

 

3. Gaussian Kernel

这里说一种经典的鲁棒径向基核,即高斯核函数,鲁棒径向基核对于数据中的噪音有着较好的抗干扰能力,其参数决定了函数作用范围,超过了这个范围,数据的作用就“基本消失”。高斯核函数是这一族核函数的优秀代表,也是必须尝试的核函数,其数学形式如下:

技术分享

虽然被广泛使用,但是这个核函数的性能对参数十分敏感,以至于有一大把的文献专门对这种核函数展开研究,同样,高斯核函数也有了很多的变种,如指数核,拉普拉斯核等。

4. Exponential Kernel

      指数核函数就是高斯核函数的变种,它仅仅是将向量之间的L2距离调整为L1距离,这样改动会对参数的依赖性降低,但是适用范围相对狭窄。其数学形式如下:

技术分享

5. Laplacian Kernel

      拉普拉斯核完全等价于指数核,唯一的区别在于前者对参数的敏感性降低,也是一种径向基核函数。

技术分享

6. ANOVA Kernel

      ANOVA 核也属于径向基核函数一族,其适用于多维回归问题,数学形式如下:

技术分享

7. Sigmoid Kernel

Sigmoid 核来源于神经网络,现在已经大量应用于深度学习,是当今机器学习的宠儿,它是S型的,所以被用作于“激活函数”。关于这个函数的性质可以说好几篇文献,大家可以随便找一篇深度学习的文章看看。

技术分享

8. Rational Quadratic Kernel

      二次有理核完完全全是作为高斯核的替代品出现,如果你觉得高斯核函数很耗时,那么不妨尝试一下这个核函数,顺便说一下,这个核函数作用域虽广,但是对参数十分敏感,慎用!!!!

技术分享

9. Multiquadric Kernel

      多元二次核可以替代二次有理核,它是一种非正定核函数。

技术分享

10. Inverse Multiquadric Kernel

      顾名思义,逆多元二次核来源于多元二次核,这个核函数我没有用过,但是据说这个基于这个核函数的算法,不会遇到核相关矩阵奇异的情况。

技术分享

11. Circular Kernel

      这个核函数没有用过,其数学形式如下所示:

技术分享

12. Spherical Kernel

      这个核函数是上一个的简化版,形式如下所示

技术分享

13. Wave Kernel

      这个核函数没有用过,其适用于语音处理场景。

技术分享

14. Triangular  Kernel

三角核函数感觉就是多元二次核的特例,数学公式如下:

技术分享

15. Log Kernel

      对数核一般在图像分割上经常被使用,数学形式如下:

技术分享

16. Spline Kernel

技术分享

17. Bessel Kernel

技术分享

18. Cauchy Kernel

      柯西核来源于神奇的柯西分布,与柯西分布相似,函数曲线上有一个长长的尾巴,说明这个核函数的定义域很广泛,言外之意,其可应用于原始维度很高的数据上。

技术分享

19. Chi-Square Kernel

      卡方核,这是我最近在使用的核函数,让我欲哭无泪,在多个数据集上都没有用,竟然比原始算法还要差劲,不知道为什么文献作者首推这个核函数,其来源于卡方分布,数学形式如下:

技术分享

它存在着如下变种:

技术分享

其实就是上式减去一项得到的产物,这个核函数基于的特征不能够带有赋值,否则性能会急剧下降,如果特征有负数,那么就用下面这个形式:

技术分享

20. Histogram Intersection Kernel

      直方图交叉核在图像分类里面经常用到,比如说人脸识别,适用于图像的直方图特征,例如extended LBP特征其数学形式如下,形式非常的简单

技术分享

21. Generalized Histogram Intersection

     顾名思义,广义直方图交叉核就是上述核函数的拓展,形式如下:

技术分享

22. Generalized T-Student Kernel

      TS核属于mercer核,其数学形式如下,这个核也是经常被使用的

技术分享

23. Bayesian Kernel

贝叶斯核函数还没有用到过。

版权声明:本文为博主原创文章,未经博主允许不得转载。

总结一下遇到的各种核函数~

标签:核函数   核方法   

原文:http://blog.csdn.net/wsj998689aa/article/details/47027365


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

总结一下遇到的各种核函数 的相关文章

  • 1001 害死人不偿命的(3n+1)猜想 PAT乙级真题 C++

    1001 害死人不偿命的 3n 1 猜想 卡拉兹 Callatz 猜想 对任何一个正整数 n 如果它是偶数 那么把它砍掉一半 如果它是奇数 那么把 3n 1 砍掉一半 这样一直反复砍下去 最后一定在某一步得到 n 1 卡拉兹在 1950 年
  • 简单实现动态代理(Proxy)

    前言 最近学习了Jdk的动态代理 然后自己也简单的手写了一个 思路 根据代理的接口 生成对应的Java代码文件 将生成的Java文件编译成class文件 利用URLClassLoader加载class到Jvm中 利用反射在new出这个对象
  • 小程序文字上下滚动轮播效果实现CSS

    wxml
  • CentOS7-查询可以远程登录的帐号信息

    查询可以远程登录的帐号信息 查询 etc shadow 文件 etc shadow 文件 用于存储 Linux 系统中用户的密码信息 又称为 影子文件 文件内容格式解析 用户名 加密密码 最后一次修改时间 最小修改时间间隔 密码有效期 密码

随机推荐

  • 谈谈初学者该怎么学电脑

    十五年前 一说电脑 就感觉是很高科技的东西 那时候一般只有计算机专业和相关行业的人才能够接触 随着信息和科技的发展 电脑已经渗入到各个行业和家庭 电脑不仅广泛用于各种工作 还普及到了家庭娱乐中 因此 掌握电脑不再仅仅是工作需要 而是一项基本
  • 超级无敌详细使用ubuntu搭建hadoop完全分布式集群

    一 软件准备 安装VMware 下载ubuntu镜像 阿里源ubuntu下载地址 选择自己适合的版本 以下我使用的是18 04 server版就是没有桌面的 安装桌面版如果自己电脑配置不行的话启动集群容易卡死 说明一下哈就是桌面版和服务器版
  • JSP输出HelloWorld和Servlet输出HelloWorld

    一 新建Web工程 1 更新插件以获取Dynamic Web Project Eclispe Help Install New Software 下拉选择后等一会 就会出现需要更新的东西如下图 下拉选择Web XML Java EE and
  • 手把手教你学Python之波士顿房价预测(scikit-learn的应用)

    目录 1 波士顿房价预测介绍 2 线性回归算法 3 调用scikit learn库实现房价预测 1 波士顿房价预测介绍 问题描述 波士顿房价数据集统计的是20世纪70年代中期波士顿郊区房价的中位数 统计了城镇人均犯罪率 不动产税等共计13个
  • sysbench 随机数随机算法详解

    https www percona com blog 2020 03 26 sysbench and the random distribution effect 随机算法 https www jianshu com p 30933e0be
  • MFC几个常用函数:OnCreate和OnInitialUpDate,GetActiveFrame和MDIGetActive,Invalidate、SetModifiedFlage、UpdateAll

    把用常用的都整理一下 不然好乱 一 OnCreate和OnInitialUpDate 参考 http www cnblogs com mingfei200169 articles 666567 html ONCREATE只是产生VIEW的基
  • 关于Unity ScriptableObject 的数据保存问题

    最近在开发的时候遇到的问题 在用ScriptableObject进行保存数据的时候 并不是所有的数据都能正常保存 这让人很是难受 所以我决定系统性地整理一下这个问题 注 建议大家将自己的Unity文件保存方式设置为Text而不是二进制 这样
  • 深度学习——深度生成模型(GAN,VAE)

    深度学习与PyTorch入门 对抗生成网络GAN理论讲解及项目实战 哔哩哔哩 bilibili 背景 生成模型 从某个分布中获取输入训练样本 并学习表示该分布的模型 作用 产生真实数据 艺术创作 超分辨率图片 2 帮助我们发现数据集中的隐变
  • 2021-08-19

    Python中merge 函数的三种连接方式 1 内连接 df1 pd DataFrame a foo bar b 1 2 df2 pd DataFrame a foo baz c 3 4 df3 df1 merge df2 how inn
  • 刷脸支付识别卡券钱包展示优惠券

    刷脸支付的背后是整个新的零售市场 面对巨大的市场 微信 支付宝和银联都为服务商提供了激励计划 但服务商 开发 运营和售后团队 的资格门槛将使大多数创业者望而却步别先从一组数据来看 根据IBG数据 指纹识别在全球生物识别市场占有率最高 但总体
  • 完全背包问题(详细解答)

    首先完全背包问题需要01背包问题做铺垫 如果读者01背包问题没有解决 一定要理解之后 在看完全背包问题 包括01背包的优化 这里是01背包 这里是01背包的全部优化 好 我们开始完全背包 完全背包定义 有N种物品和一个容量为V的背包 每种物
  • kali根目录磁盘扩容(已解决问题no space left on device)

    一 如何遇到这个问题的和为什么会出现这个问题 1 1一开始本来是打算用docker去拉取镜像的 但是我发现正在拉取的时候突然就爆出这个错误了no space left on device 1 2我这里出现这个问题的原因是因为我的kali根目
  • Python和Excel的完美结合:常用操作汇总(案例详析)

    在以前 商业分析对应的英文单词是Business Analysis 大家用的分析工具是Excel 后来数据量大了 Excel应付不过来了 Excel最大支持行数为1048576行 人们开始转向python和R这样的分析工具了 这时候商业分析
  • Unicode字符列表

    代码 显示 描述 U 0020 空格 U 0021 叹号 U 0022 双引号 U 0023 井号 U 0024 价钱 货币符号 U 0025 百分比符号 U 0026 英文 and 的简写符号 U 0027 引号 U 0028 开 圆括号
  • OpenHarmony 3.x Releases编译环境搭建从零到编译Demo成功

    最近在学习OpenHarmony轻量化系统的移植 关于OH的编译环境 参考了各个大佬的blog 成功搭建环境 本教程展示了从零到成功编译的全部过程 因为OH的更新 有些博主的blog已经不适用 本blog写于2022 4 3 注 随着OH的
  • flask自定义错误页

    文章目录 前言 一 环境 二 步骤 1 自定义404错误页 2 捕抓404错误 运行 前言 在逛淘宝 京东等大型网站的时候 有时候操作失误就会弹出错误界面 你会发现他们的错误界面很美观 不像系统自带的错误页面 那么flask是否也可以实现自
  • 导入可执行文件

    dmp文件 E oracle product 10 2 0 db 1 bin imp exe sql文件 E oracle product 10 2 0 db 1 bin sqlplus exe
  • Smartbi 修改用户密码漏洞

    漏洞简介 通过查看 Smartbi 的补丁包信息 发现存在漏洞在某种特定情况下修改用户的密码 进行简单的复现和分析 漏洞复现 在页面上修改密码时 需要知道原本的用户对应的密码 直接构造这样的数据包 就不需要知道原本的密码 知道用户名就可以修
  • 用Python来看考研三百万大军

    尽管今年研招网内部 已经做了优化改善 还是抵挡不住考生们的报名热情 网站崩溃 2017年考研人数增长至201万人 2018年则达到238万人 2019年考研报名人数达到290万人 注 数据来自 中国教育在线 为了看清近几年考研人数的增长趋势
  • 总结一下遇到的各种核函数

    原文 http www bubuko com infodetail 991698 html 首先 再对核方法的思想进行描述 核函数的思想是一个伟大的想法 它工作简练巧妙的映射 解决了高维空间中数据量庞大的问题 在机器学习中是对算法进行非线性