Python · SVM(三)· 核方法

2017 年 8 月 8 日 机器学习研究会

Python.SVM(三)核方法



1
什么是核方法



往简单里说,核方法是将一个低维的线性不可分的数据映射到一个高维的空间、并期望映射后的数据在高维空间里是线性可分的。


我们以异或数据集为例:在二维空间中、异或数据集是线性不可分的;但是通过将其映射到三维空间、我们可以非常简单地让其在三维空间中变得线性可分。

比如定义映射:


该映射的效果如下图所示:

可以看到,虽然左图的数据集线性不可分、但显然右图的数据集是线性可分的,这就是核工作原理的一个不太严谨但仍然合理的解释

从直观上来说,确实容易想象、同一份数据在越高维的空间中越有可能线性可分,但从理论上是否确实如此呢?

1965 年提出的 Cover 定理从理论上解决了这个问题,我们会在文末附上相应的公式,这里暂时按下不表

至此,似乎问题就转化为了如何寻找合适的映射、使得数据集在被它映射到高维空间后变得线性可分。


不过可以想象的是,现实任务中的数据集要比上文我们拿来举例的异或数据集要复杂得多、直接构造一个恰当的的难度甚至可能高于解决问题本身。


而核方法的巧妙之处就在于,它能将构造映射这个过程再次进行转化、从而使得问题变得简易:它通过核函数来避免显式定义映射往简单里说,核方法会通过用能够表示成的核函数替换各算式中出现的内积来完成将数据从低维映射到高维的过程。


换句话说、核方法的思想如下:


  • 将算法表述成样本点内积的组合(这经常能通过算法的对偶形式实现)

  • 设法找到核函数它能返回样本点作用后的内积


  • 替换、完成低维到高维的映射(同时也完成了从线性算法到非线性算法的转换)


当然了,不难想象的是,并不是所有的函数都能够对应一个映射(亦即不是所有的都能拆成比如说,显然至少需要是一个对称函数)。


幸运的是,1909 年提出的 Mercer 定理解决了这个问题,它的具体叙述会在文末给出。


Mercer 定理为寻找核函数带来了极大的便利。可以证明如下两族函数都是核函数:

那么核方法的应用场景有哪些呢?在 2002 年由 Scholkopf 和 Smola 证明的表示定理告诉我们它的应用场景非常广泛。定理的具体内容同样会附在文末。


2
 核模型的表现



还是用 GIF 来说明问题最为形象。

当我们对感知机应用核方法后,它就能对非线性数据集(比如螺旋线数据集)进行分类了,训练过程将如下:


3
 
 怎么应用核方法



简单来说,就是把算法中涉及到样本的地方都通过某种变换、弄成样本的内积形式。以感知机为例,感知机的原始损失函数为:




转自:机器学习算法与自然语言处理

登录查看更多
7

相关内容

【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
266+阅读 · 2020年6月10日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
340+阅读 · 2020年3月17日
机器学习速查手册,135页pdf
专知会员服务
340+阅读 · 2020年3月15日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
356+阅读 · 2020年2月15日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
199+阅读 · 2020年2月11日
从零推导支持向量机 (SVM)
AI科技评论
10+阅读 · 2019年2月7日
【收藏】支持向量机原理详解+案例+代码!【点击阅读原文下载】
机器学习算法与Python学习
10+阅读 · 2018年9月13日
从示例中理解SVM算法(附代码)
论智
9+阅读 · 2018年5月10日
干货:10 种机器学习算法的要点(附 Python代码)
全球人工智能
4+阅读 · 2018年1月5日
动手写机器学习算法:SVM支持向量机(附代码)
七月在线实验室
12+阅读 · 2017年12月5日
【直观详解】支持向量机SVM
机器学习研究会
18+阅读 · 2017年11月8日
机器学习(18)之支持向量机原理(三)线性不可分支持向量机与核函数
机器学习算法与Python学习
3+阅读 · 2017年9月23日
机器学习(16)之支持向量机原理(二)软间隔最大化
机器学习算法与Python学习
6+阅读 · 2017年9月8日
机器学习(15)之支持向量机原理(一)线性支持向量机
机器学习算法与Python学习
6+阅读 · 2017年9月1日
机器学习(7)之感知机python实现
机器学习算法与Python学习
4+阅读 · 2017年7月23日
A Modern Introduction to Online Learning
Arxiv
20+阅读 · 2019年12月31日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
266+阅读 · 2020年6月10日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
340+阅读 · 2020年3月17日
机器学习速查手册,135页pdf
专知会员服务
340+阅读 · 2020年3月15日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
356+阅读 · 2020年2月15日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
199+阅读 · 2020年2月11日
相关资讯
从零推导支持向量机 (SVM)
AI科技评论
10+阅读 · 2019年2月7日
【收藏】支持向量机原理详解+案例+代码!【点击阅读原文下载】
机器学习算法与Python学习
10+阅读 · 2018年9月13日
从示例中理解SVM算法(附代码)
论智
9+阅读 · 2018年5月10日
干货:10 种机器学习算法的要点(附 Python代码)
全球人工智能
4+阅读 · 2018年1月5日
动手写机器学习算法:SVM支持向量机(附代码)
七月在线实验室
12+阅读 · 2017年12月5日
【直观详解】支持向量机SVM
机器学习研究会
18+阅读 · 2017年11月8日
机器学习(18)之支持向量机原理(三)线性不可分支持向量机与核函数
机器学习算法与Python学习
3+阅读 · 2017年9月23日
机器学习(16)之支持向量机原理(二)软间隔最大化
机器学习算法与Python学习
6+阅读 · 2017年9月8日
机器学习(15)之支持向量机原理(一)线性支持向量机
机器学习算法与Python学习
6+阅读 · 2017年9月1日
机器学习(7)之感知机python实现
机器学习算法与Python学习
4+阅读 · 2017年7月23日
Top
微信扫码咨询专知VIP会员