在一个二维空间中,具有特征空间X和特征空间Y,当其中一个点(x, y)在这个二维平面中,如果想把它映射高维空间中,那么就需要用到核函数。

关于核函数的定义是:设XXX是输入空间,YYY是特征空间。如果存在一个从XXX到YYY的映射ϕ(x):X−>Y\phi(x):X -> Yϕ(x):X−>Y,使得对于所有的向量v1,v2∈Xv_{1}, v_{2} \in Xv1​,v2​∈X,函数K(v1,v2)K(v_{1}, v_{2})K(v1​,v2​)满足条件:K(v1,v2)=<ϕ(v1),ϕ(v2)>K(v_{1}, v_{2}) = <\phi(v_{1}), \phi(v_{2})>K(v1​,v2​)=<ϕ(v1​),ϕ(v2​)>。其中,<v1,v2><v_{1}, v_{2}><v1​,v2​>称为内积,或者数量积,是将两个向量返回一个实数标量的二元运算,如 v1=(x1,y1),v2=(x2,y2)v_{1} = (x_{1}, y_{1}), v_{2} = (x_{2}, y_{2})v1​=(x1​,y1​),v2​=(x2​,y2​),则它们的内积<v1,v2>=x1x2+y1y2<v_{1}, v_{2}> = x_{1}x_{2}+y_{1}y_{2}<v1​,v2​>=x1​x2​+y1​y2​。

借用知乎上的例子:机器学习有很多关于核函数的说法,核函数的定义和作用是什么?的回答 如核函数K(v1,v2)=<v1,v2>2K(v_{1}, v_{2}) = <v_{1}, v_{2}>^{2}K(v1​,v2​)=<v1​,v2​>2,这个核函数其实隐含着一个映射关系P(x,y)=(x2,2xy,y2)P(x, y) = (x^{2}, \sqrt{2}xy, y^{2})P(x,y)=(x2,2​xy,y2),通过这个核函数就可以直接计算它们映射的内积<ϕ(v1),ϕ(v2)><\phi(v_{1}), \phi(v_{2})><ϕ(v1​),ϕ(v2​)>,从而避免分开计算每个向量的映射ϕ(v)\phi(v)ϕ(v)。可以验证:
<P(v1,v2)>=<(x12,2x1y1,y12),(x22,2x2y2,y22)><P(v_{1}, v_{2})> = <(x_{1}^{2}, \sqrt{2}x_{1}y_{1}, y_{1}^{2}),(x_{2}^{2}, \sqrt{2}x_{2}y_{2}, y_{2}^{2})><P(v1​,v2​)>=<(x12​,2​x1​y1​,y12​),(x22​,2​x2​y2​,y22​)>=(x1x2+y1y2)2=(x_{1}x_{2}+y_{1}y_{2})^{2}=(x1​x2​+y1​y2​)2=<v1,v2>2=<v_{1}, v_{2}>^{2}=<v1​,v2​>2=K(v1,v2)= K(v_{1}, v_{2})=K(v1​,v2​)

核函数的作用就是隐含着一个从低维空间向高维空间的映射关系,这样就使得在低维空间中线性不可分的两类点在高维空间中线性可分。在SVM中,遇到线性不可分的样本时,SVM就通过一个非线性映射的核函数把样本映射到一个线性可分的高维空间中,在此高维空间中建立线性函数(如二维空间的直线、三维空间的平面和高维空间的超平面)来划分样本的高维空间,此高维空间的线性分类面对应到输入样本空间的话就是一个非线性的分类面。

核函数一般有这么几类
1、线性核函数:K(v1,v2)=<v1,v2>K(v_{1}, v_{2}) = <v_{1}, v_{2}>K(v1​,v2​)=<v1​,v2​>
2、多项式核函数:K(v1,v2)=(γ<v1,v2>+c)nK(v_{1}, v_{2}) = (\gamma<v_{1}, v_{2}>+c)^{n}K(v1​,v2​)=(γ<v1​,v2​>+c)n
3、sigmoid核函数:K(v1,v2)=tanh(γ<v1,v2>+c)K(v_{1},v_{2}) = tanh(\gamma<v_{1}, v_{2}>+c)K(v1​,v2​)=tanh(γ<v1​,v2​>+c)
4、高斯核函数:K(v1,v2)=exp(−∣∣v1−v2∣∣22σ2)K(v_{1}, v_{2}) = exp(-\frac{||v_{1} - v_{2}||^{2}}{2\sigma^{2}})K(v1​,v2​)=exp(−2σ2∣∣v1​−v2​∣∣2​)
5、拉普拉斯核函数:K(v1,v2)=exp(−∣∣v1−v2∣∣σ)K(v_{1}, v_{2}) = exp(-\frac{||v_{1} - v_{2}||}{\sigma})K(v1​,v2​)=exp(−σ∣∣v1​−v2​∣∣​)

【机器学习】核函数的理解与常见核函数相关推荐

  1. 机器学习中对核函数的理解

    http://mp.weixin.qq.com/s?__biz=MzIxNDIwMTk2OQ==&mid=2649077019&idx=1&sn=e0c4a6c502e3668 ...

  2. 机器学习算法 08 —— 支持向量机SVM算法(核函数、手写数字识别案例)

    文章目录 系列文章 支持向量机SVM算法 1 SVM算法简介 1.1 引入 1.2 算法定义 2 SVM算法原理 2.1 线性可分支持向量机 2.2 SVM计算过程与算法步骤(有点难,我也没理解透,建 ...

  3. svm核函数的理解和选择

    特征空间的隐式映射:核函数 咱们首先给出核函数的来头:在上文中,我们已经了解到了SVM处理线性可分的情况,而对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维空 ...

  4. 机器学习之深入理解SVM

    在浏览本篇博客之前,最好先查看一下我写的另一篇文章机器学习之初识SVM(点击可查阅哦),这样可以更好地为了结以下内容做铺垫! 支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机.线性支持向量 ...

  5. JS闭包的理解及常见应用场景

    JS闭包的理解及常见应用场景 一.总结 一句话总结: 闭包是指有权访问另一个函数作用域中的变量的函数 1.如何从外部读取函数内部的变量,为什么? 闭包:f2可以读取f1中的变量,只要把f2作为返回值, ...

  6. ML之模型文件:机器学习、深度学习中常见的模型文件(.h5、.keras)简介、h5模型文件下载集锦、使用方法之详细攻略

    ML之模型文件:机器学习.深度学习中常见的模型文件(.h5..keras)简介.h5模型文件下载集锦.使用方法之详细攻略 目录 ML/DL中常见的模型文件(.h5..keras)简介及其使用方法 一. ...

  7. 面试官:谈谈对JS闭包的理解及常见应用场景(闭包的作用)

    文章目录 对JS闭包的理解及常见应用场景(闭包的作用) 1.变量作用域 2.如何从外部读取函数内部的变量? 3.闭包概念 4.闭包用途 5.闭包的理解 6.闭包应用场景 setTimeout传参 回调 ...

  8. 对浏览器内核的理解和常见的浏览器内核

    介绍一下你对浏览器内核的理解?常见的浏览器内核有哪些? 答.要或者说核心的部分是"Rendering Engine",可大概译为"渲染引擎",不过我们 一般习惯 ...

  9. 机器学习(三):理解逻辑回归及二分类、多分类代码实践

    本文是机器学习系列的第三篇,算上前置机器学习系列是第八篇.本文的概念相对简单,主要侧重于代码实践. 上一篇文章说到,我们可以用线性回归做预测,但显然现实生活中不止有预测的问题还有分类的问题.我们可以从 ...

最新文章

  1. leetcode:Search in Rotated Sorted Array
  2. intellij idea cpu占用率太大太满 运行速度太慢解决方案
  3. python怎么发送邮件_python中是如何借助smtp协议发送邮件的?
  4. ORA-15260: permission denied on ASM disk group
  5. java全jit编译_JVM即时编译(JIT)(转载)
  6. CodeForces-887B 技巧DFS
  7. 黑马程序员——选择排序
  8. Matlab之程序的暂停与中止
  9. 网络安全基础——服务器远程管理
  10. CAD中通过用户交互来选择对象
  11. 机器视觉培训教程-项目评估以及项目实施
  12. C语言 矩阵相似度
  13. 并发(10):线程之间的协作(上)
  14. 【Unreal4】gitignore目录减小项目大小
  15. 企业员工生日提醒短信怎么发送
  16. 微信应用域名所有权验证管理
  17. CaysnPrinter开发包接口说明文档及打印示例程序 - 20160715
  18. Discuz开通VIP插件
  19. 网络基础应用层--HTTP协议
  20. 富怡CAD计算机在哪,富怡CAD软件如何与富怡数字化仪进行连接

热门文章

  1. 程序员壮烈牺牲的阿里巴巴面试,这些面试题带回来分享给大家
  2. 孩子身高和父母身高有多大关系(测测你的宝宝有多高!)
  3. 什么是NAT?NAT类型有哪些?
  4. 谷歌Android的关系,谷歌:Chrome OS和Android代表不同计算方向
  5. 判断点在线的左边、右边
  6. 【2019/ICML】DAG-GNN: DAG Structure Learning with Graph Neural Networks
  7. 单台安装nodejs公共(离线包、矢量瓦片服务)
  8. linux里面uniq某一列,Linux之uniq 命令示例
  9. oracle tabe unlock_oracle数据库管理常用语句(不断更新中)
  10. v-if和v-for不能一起使用的原因以及解决办法