核函数核技巧(Kernel Trick)白话简介

techbrood 发表于 2019-03-28 13:04:43

标签: 机器学习, kernel trick, kernel function

- +

核函数是为了解决分类问题而引入的方法。

有些数据并不是那么容易线性分割,比如我们很容易用一根线条(红色)来分割下图中的黑白点:

image.png

但是无法用直线来分割下图中的蓝红数据点:

image.png

为了能用简单的直线(或者多维空间的超平面)来分割如上图中的数据集,我们需要“升维”来观察和思考问题。

比如通过一定的映射,把数据映射成如下三维空间这样的分布:

image.png

那么显然在新的维度空间中,蓝红色点可以被一个线性平面来分割。

核方法的主要思想是基于这样一个假设:

在低维空间中不能线性分割的点集,通过转化为高维空间中的点集时,很有可能变为线性可分的”。

然而,如果直接把低维度的数据转化到高维度的空间中,然后再去寻找线性分割平面,会导致计算复杂化。

怎么解决这些问题?答案是通过核技巧(Kernel Trick)。比如原始二维空间两个点P1_ori(x1,y1)和P2_ori(x2,y2),经过映射后变为了三维空间两个点P1(x1,y1,z1)和P2(x2,y2,z1),接下来需要进行相似度计算(也就是计算内积<P1,P2>,内积的几何意义是一个矢量在另外一个矢量上的投影,越相近取值越大),来进一步进行分类任务。为了偷懒(避免高维度空间的内积(点积)计算),我们投机取巧的寻找出一个核函数(Kernel Function)用来简便的计算映射到高维空间之后的内积,这就是所谓的核技巧。

最后放一个人话版在线视频,帮助理解核方法的基本思想。


possitive(19) views11212 comments2

发送私信

最新评论

iefreer 2019-11-16 20:11:05

@Hichens, 记不清了,应该是youtube上分享的。


Hichens 2019-11-16 18:14:10

你好, 请问你的视频那里找的??我觉得真的讲得很好, 感谢分享到QQ:1559576016 or email:hichens@qq.com


请先 登录 再评论.
相关文章
  • 微信公众号在线生成二维码带参数怎么搞?

    带参数二维码是微信公众号渠道二维码的一种实现
    微信的带参数二维码有两种,一种是临时二维码,一种是永久二维码,但是永久二维码的生成是有个数限制的,微...

  • WebGL场景中多相机拍摄的原理和意义

    一般而言,3D场景的渲染只需要一个相机,不过借助多相机可以获取一些单相机无法达到的特效。比如突显特定对象并模糊背景。
    3D相机渲染的基本原理是依靠颜色...

  • CSS3特性查询(Feature Query: @supports)功能简介

    这是2017年不能不了解和学习的一个CSS新特性,非常实用,考虑到现实世界浏览器的复杂性,该特性本应该先于其他新特性出来。我们已经知道使用媒体查询(Media Que...

  • JavaScript语言多编程范式简介

    和C++等语言类似,JS支持多范式(paradigms)编程。我们常常混合这些范式来完成一些大型Web项目。JS支持3种编程范式:命令式、面向对象和函数式。命令式(Imperative JavaScript)命令式就是简单的从上而下完成任务,流水账过程式编码风格:function

  • CSS3弹性布局内容对齐(justify-content)属性使用详解

    内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐。该操作发生在弹性长度以及自动边距被确定后。 它用来在存...

  • CSS3弹性布局弹性流(flex-flow)属性详解和实例

    弹性布局是CSS3引入的强大的布局方式,用来替代以前Web开发人员使用的一些复杂而易错hacks方法(如使用float进行类似流式布局)。其中flex-flow是flex-direction...

  • HTML5动画背后的数学2 - 仿生智能算法综述

    本文是前文

  • HTTP1.1协议现状、问题和解决方案

    HTTP的现状最早的HTTP协议非常简单,只能用来传送文本,方法也只有GET,后来逐步发展到1.1,能够支持多种MIME格式数据(如文本、文件),支持GET,POST,HEAD,OPTI...

  • 计算WebGL中的uniforms变量使用数

    在使用Three.js为人体模型加载皮肤材料时,启用了skinning:true的参数。有时候会导致GL编译错误,提示“too many uniforms”。下面的文章有助于理解错误原因和检...

  • 纹理基础知识和过滤模式详解

    1、 为什么在纹理采样时需要texture filter(纹理过滤)。
    我们的纹理是要贴到三维图形表面的,而三维图形上的pixel中心和纹理上的texel中心并不一至(pixe...

  • Three.js入门教程6 - 创建全景图和纹理

    全景图非常酷。使用Three.js做一个属于自己的全景图并不是那么困难。要做一个全景图,你需要一个软件用来做一张全景图片。我使用了iPhone上的Microsoft Photosyn...

  • Three.js入门教程5 - 10个必须知道的编程技巧

    作者为Google的Paul,关于如何写出好的WebGL代码的文章。和很多开发者一样,我通过实践学习,但同时我也向其他更有经验的开发者们学习。在过去的几个月中,我在c...

  • 浏览器控制台报JS脚本执行错误:Module is not defined

    现在JS分成了两个分支,一部分在服务器端发展如NodeJS,一部分是传统的浏览器运行环境。
    有些插件在编写JS代码时,是针对Node编写的,所以直接在浏览器中使...

  • Three.js 3D打印数据模型文件(.STL)加载

    3D打印是当下和未来10年产品技术主流方向之一,影响深远。对于电子商务类的3D打印网站,一个主要功能是把商品以3D的方式呈现出来,也就是3D数据可视化技术。HTML...

  • 在PHP网页程序中执行Sass/Compass命令

    我们需要在wow云开发平台支持sass/compass等预编译样式语言,为此我们首先尝试了scssphp扩展,但是在支持最新语法上,经常会出现异常。所以我们采用了代理的方式...

  • 更多...