SVM核技巧之终极分析
参考文献:
http://www.blogjava.net/zhenandaci/archive/2009/03/01/257237.html
http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988406.html
NG的SVM课件
台湾大学林轩田老师的视频课程
注意1:本文自然过渡并引出核函数的概念,比课件和其他教程上的说明更加让人理所当然地接受!
注意2:貌似对于SVM原问题求解,很多地方直接采用KKT条件求解。实际上,它也是通过求解对偶问题来得到KKT条件。如此,SVM原问题必须直接或者间接地经过对偶问题这一步的推导。
注意3:文中最后给出林轩田老师的课件截图,可以看到映射ψ和核K的参数个数对比。很了然:(1)ψ的参数是K的参数指数次方,更高维对比更加明显。(2)K好选,ψ不好选。
文中对核方法的表示K(x,z)其实x是常数,z是低维表示的,它和x同维,不要认为z是高维空间的变量,容易被一个例子:z=[z1,z2,z3]=[x,x2,x3]迷惑了双眼。参见NG的SVM中的14页。文中的下式也是如此:

在对偶空间上说明这个问题。
(i)首先,我们在对偶空间中得到:

这里,我们假设x(i),y(i),x是d维向量。内积Rd×Rd->R
(ii)对于非线性问题,如果先找到一个映射Φ(x):Rd->R(d×d)使非线性问题变成线性问题(这里只是一个映射的特例),通常需要变到很高的维数空间去,问题变成了(未必是Rd->R(d×d),可能是Rd->R(d×c)):
(1)
显然,算法复杂度的一个上界为:m×(d×d×2+d)+1,即O(m×d×d),注意到
和
的复杂度都为d×d,比如对于d=3时,x=[x1,x2,x3],其中的一种选择是:

注意到
是3×3=9维。
(iii)对于上面的映射
和
,其中,
有
将
和
的表达式代入(1)中,得到:

化简有:

更进一步地,

其中,令

于是,

考虑到
中,x和x(i)向量都是d维度,于是,总的计算复杂度为:m×(d+1)+1,即O(m×d)。
我们简化了两个工作:
(1)不用再去费劲去找
(2)O(m×d×d)复杂度将到O(m×d)。如何只就
这部分来说,O(d2)复杂度降到O(d)。这里不考虑矩阵相乘分成子矩阵以降低复杂度。只是一个上界的讨论。
既然有这两个如此强大的技巧,它被人们视为一种常用的东西,被称为核技巧,核函数,核方法。至于为啥叫这个奇葩的名字,我就不知道了。
附1:
(1)这只是一种核函数,还有许许多多其它形式的。
(2)这里中的实际上除了支持向量之外的αm都为零。
(3)如果实在因为K(x,z)中的z纠结,那么不用管它,直接视为K好了。K为多项式核函数时,代入
和
时,由于对称性(也因为对称性K为半正定矩阵),总能化简成(xTz+c)d这样简单的形式(或者是其它更一般的形式)。
(4)当用软间隔最大化时,约束条件变成了0≤αi≤C,这样直接用KKT就无法解决。使用SMO算法。参见NG的SVM。
(5)高斯核函数是局部模型。(参见机器学习导论)
(6)核函数的组合与多核学习。(不需要选定一个特定的核)
附2:
第二次快速看台湾大学SVM视频有感:
(1)认为低维指实例个数m(可能默认:特征的向量维数<实例个数);高维指非线性映射之后的向量维数,如上的O(d2)
(2)核技巧不能表达所有可能的
,确切地说,只能描述极其少一部分,只不过这一小部分就能解决很多问题。这些可以通过核函数K的参数空间可以看出:
多项式:


高斯核:

(3)L2正则化的logistics函数、ridge回归可以用高斯核
(4)SVM扩展到回归问题——SVR。这里首先引入tube regression;在这个基础上能提到margin问题,进而转到对偶空间等等。
SVM核技巧之终极分析的更多相关文章
- SVM核技巧的经典解释
支持向量机: Kernel by pluskid, on 2010-09-11, in Machine Learning 68 comments 本文是"支持向量机系列"的 ...
- SVM 核方法
在 SVM 中引入核方法便可使得 SVM 变为非线性分类器,给定非线性可分数据集 $\left \{ (x_i,y_i)\right\}_{i=1}^N$,如下图所示,此时找不到一个分类平面来将数据分 ...
- Android版数据结构与算法(五):LinkedHashMap核心源码彻底分析
版权声明:本文出自汪磊的博客,未经作者允许禁止转载. 上一篇基于哈希表实现HashMap核心源码彻底分析 分析了HashMap的源码,主要分析了扩容机制,如果感兴趣的可以去看看,扩容机制那几行最难懂的 ...
- SVM问题再理解与分析——我的角度
SVM问题再理解与分析--我的角度 欢迎关注我的博客:http://www.cnblogs.com/xujianqing/ 支持向量机问题 问题先按照几何间隔最大化的原则引出他的问题为 上面的约束条件 ...
- LoadRunner 技巧之协议分析
LoadRunner 技巧之协议分析 在做性能测试的时候,协议分析是困扰初学者的难题,选择错误的协议会导致Virtual User Generator 录制不到脚本:或录制的脚本不完整,有些应用可能需 ...
- google搜索运算符+101个Google技巧 - Google技巧的终极收集
下面内容整理自网络 搜索运算符 如果您使用我们的基本搜索技巧后,并未找到想要搜索的内容,可以尝试使用搜索运算符.您只需在 Google 搜索框中将这些符号或字词添加到搜索字词中,即可更好地掌控要显示的 ...
- cas sso单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析
转:http://blog.csdn.net/ae6623/article/details/8848107 1)PPT流程图:ppt下载:http://pan.baidu.com/s/1o7KIlom ...
- 更新几篇之前写在公众号上的文章:线性可分时SVM理论推导;关联分析做捆绑销售和推荐;分词、去停用词和画词云
适合阅读人群:有一定的数学基础. 这几篇文章是16年写的,之前发布在个人公众号上,公众号现已弃用.回过头来再看这几篇文章,发现写的过于稚嫩,思考也不全面,这说明我又进步了,但还是作为学习笔记记在这里了 ...
- KKT原理以及SVM数学的理论推导分析
一直很好奇机器学习实战中的SVM优化部分的数学运算式是如何得出的,如何转化成了含有内积的运算式,今天上了一节课有了让我很深的启发,也明白了数学表达式推导的全过程. 对于一个SVM问题,优化的关键在于 ...
随机推荐
- ORA-01940:无法删除当前已连接的用户
当时时间比较着急,直接采取了釜底抽薪的办法——拔网线,这招很管用,再次执行drop user就成功了.考虑到以后不一定所有场合都允许你采取这种简单粗暴的办法,就在虚拟机上重现了这个报错,寻求一种较为温 ...
- Cglib方法实现动态代理
除了使用JDK方式产生动态代理外,Java还给我们提供了另外一种产生动态代理的方法,那就是使用cglib. cglib是这样实现动态代理的: · ①.针对类来实现代理 · ②对指定目标类产生一个子类 ...
- 《剑指offer》第三十题(包含min函数的栈)
// 面试题30:包含min函数的栈 // 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min // 函数.在该栈中,调用min.push及pop的时间复杂度都是O(1). #i ...
- js 事件相关 事件处理 封装 事件封装 DOM 0 2 3 级事件
1.绑定 function(element, type, handler){ if (element.addEventListener) { element.add ...
- iOS Socket编程-C语言版(UDP)
. UDP Socket编程 先讲一讲UDP编程,因为比TCP要简单多了.首先,我们需要明白UDP是用户数据报协议,英文名为User Datagram Protocol,它是面向无连接的. 注意:So ...
- VS 2013 无法启动IIS Express Web 服务器
之前程序好好的没什么问题,可是今天一大早来到公司后打开VS2013运行Web程序,然后就弹出提示信息:无法启动IIS Express Web 服务器,思来想去昨天都好好的,今天怎么会出现如此问题呢? ...
- javascript变量声明及作用域总结
javascript变量声明及作用域总结 一.总结 一句话总结:还是得好好看书,光看视频是不得行的,浅学无用,要相互印证,要真正理解才有用,比如<Javascript权威指南> 书 1.j ...
- 20161212xlVBA工作表数据整理合并单元格
Sub NextSeven_CodeFrame() '应用程序设置 Application.ScreenUpdating = False Application.DisplayAlerts = Fal ...
- python-day6---流程控制
# if 条件:# 子代码1# 子代码2# 子代码3 # if True:# print('ok')# print('=====?>')# print('=====?>')# print( ...
- 牛客网——E求最值
链接:https://www.nowcoder.com/acm/contest/59/E来源:牛客网 题目描述 给你一个长为n的序列a 定义f(i,j)=(i-j)2+g(i,j)2 g是这样的一个函 ...