博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习技法--学习笔记03--Kernel技巧
阅读量:6234 次
发布时间:2019-06-22

本文共 887 字,大约阅读时间需要 2 分钟。

背景

上一讲从对偶问题的角度描述了SVM问题,但是始终需要计算原始数据feature转换后的数据。这一讲,通过一个kernel(核函数)技巧,可以省去feature转换计算,但是仍然可以利用feature转换的特性。

 

什么是kernel

Kernel的其实就是将向量feature转换与点积运算合并后的运算,如下,

概念上很简单,但是并不是所有的feature转换函数都有kernel的特性。

 

Kernel化的SVM

在对偶化的SVM解中,有三个地方会使用到kernel

  • 计算截距b
  • 计算QP中的Q矩阵
  • 预测分类

使用了kernel,w的具体值都无需计算,因为没有地方会直接使用w。这也是为什么上一讲花了那么大的精力描述对偶化的SVM解。

 

常见kernel

常见kernel有多项式,高斯和线性,各有利弊。

 

线性kernel

不做feature转换,直接使用。不需要使用对偶技巧,直接使用linear hard SVM解。

优点:计算效率高;结果解释性好。

缺点:需要数据线性可分

 

多项kernel

对x进行多项式展开,一般的形式为

其中a,b,Q为常量。

优点:相比线性kernel,对数据要求没有那么严格

缺点:需要选择的系数较多;Q太大会超出一些计算机的精度,一般Q<=3。

 

高斯Kernel

有些资料也称为RBF(Radial Base Function),一般形式为

其中a(>0)是常量。高斯kernel厉害的地方是可以将原始数据x映射到无线维度空间中,x下面取a=1的例子

上面的变化采用了Taylor展开,接着

其中特征转化为

这样,就完成了向无线维度转换,RBF是不是很厉害!

优点:调试的系数较少;比线性和多项式更强大,几乎可以适应所有数据;不容易出现计算精度问题

缺点:无线维度无法解释;太强大,容易过拟合;计算开销大。

 

总结

个人感觉,核函数是SVM画龙点睛之笔,真的很佩服发现kernel的科学家。在实际使用SVM的过程中,很大一部分精力可能就是选择kernel和相关系数。Kernel还可以自定义,但是需要满足一些条件,具体可以参考讲义相关部分。

转载地址:http://jgwia.baihongyu.com/

你可能感兴趣的文章
Drools 文档(KIE概述)
查看>>
Python进程专题2:multiprocessing创建进程
查看>>
聊聊rocketmq的NettyEncoder及NettyDecoder
查看>>
从0开始用python写一个命令行小游戏(三)
查看>>
ubuntu-desktop安装
查看>>
学会这15点,让你分分钟拿下 Redis 数据库
查看>>
再读Generator和Co源码
查看>>
「案例」让房东在 Airbnb 上展示他们的热情好客
查看>>
vue-cli的项目结构
查看>>
利用 WeakMap 对 Vue 新建数组中的对象赋予 :key
查看>>
CSS3中display属性的Flex布局-圣杯布局实例
查看>>
Javascript 基本概念(操作符)
查看>>
在阿里云Kubernetes容器服务上打造TensorFlow实验室
查看>>
外观模式(Facade)
查看>>
《程序员的自我修养》读书笔记——静态链接
查看>>
数据科学指南
查看>>
让多个元素贴边平分布局
查看>>
基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能
查看>>
单点手势库简单思考实现
查看>>
浏览器内核、JS 引擎、页面呈现原理及其优化
查看>>