核方法kernel method

核方法kernel method

  核方法(kernel method)是将数据映射到更高维的空间实现线性可分,而Kernel Function(核函数)只是一个关于特征向量的函数,本质是变换后的空间中的内积,这个函数的构造和引入的初衷只是为了提高SVM在高维的计算效率。

  Kernel 是隐式地将两个向量转换到其他形式然后求内积, 相比显式的转换可以极大的减少计算复杂度, 甚至可以将有限维的 x 转换到无限维。
  有时f(·)会把n维空间映射到无限维空间去,对此我们常常束手无策,除非是用kernel,尤其是RBF kernel(K(x,y) = exp(-||x-y||^2) )。

定义

  核函数K(kernel function)就是指K(x, y) = <f(x), f(y)>,其中x和y是n维的输入值,f(·) 是从n维到m维的映射(通常而言,m>>n),<x, y>是x和y的内积,严格来说应该叫欧式空间的标准内积,也就是很多人常说的点积。
  直观上,要计算<f(x), f(y)>,我们要先分别计算f(x)和f(y),然后再求它们的内积。但经过映射后的x和y,维数大大增加,计算内积的成本可能会非常之大,而且在高位空间费力牛劲儿地计算内积,内积又是一个scalar,相当于说又把我们的计算从高维空间拉回到一维空间!所以我们特别想要一个“简便运算法”,帮助我们不需要奔向高维空间就能在家门口计算得到想要的内积,而kernel就能帮助我们做到这一点。
在这里插入图片描述

例子

  1)令 x = (x1, x2, x3, x4); y = (y1, y2, y3, y4);
  2)令 f(x) = (x1x1, x1x2, x1x3, x1x4, x2x1, x2x2, x2x3, x2x4, x3x1, x3x2, x3x3, x3x4, x4x1, x4x2, x4x3, x4x4); f(y)亦然;
  3)令核函数 K(x, y) = (<x, y>)^2

  带入一组xy数,x = (1, 2, 3, 4); y = (5, 6, 7, 8)
<f(x), f(y)> = 4900" 好累,因为这里f(·)把四维空间的数据映射到十六维空间里。

如果用核函数,K(x, y) = (5+12+21+32)^2 = 70^2 = 4900.

注意

低维空间中线性不可分的数据变换到高维空间找到一个线性可分的分类的过程, 并不能与kernel trick等价,更不能与kernel等价。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值