核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)…

三、非线性支持向量机与核函数

终于到了第3重境界的修炼了~

通过前面的学习,我们知道,对解线性分类问题(线性可分与线性不可分),线性分类支持向量机是一种非常有效的方法。但是有时分类问题是非线性的,这时就需要我们掌握第3重境界的功法——非线性支持向量机。

非线性支持向量机的主要内容是利用核技巧(kernel trick)。核技巧不仅应用于SVM,还应用于其他统计学习问题中。

1.核技巧

(1)非线性分类问题

学习核技巧前,我们要明白什么是非线性分类问题

前两重境界是线性分类问题,即能用“直线(线性模型)”将正负实例正确分开,如下图:

非线性问题则表示无法用直线正确分类的问题(如下图左),但是可以用“曲线(非线性模型)”将它们正确分开(如下图右)。

上图右就是典型的非线性分类问题。无论你用什么样的直线,都不能将正负实例正确分开,但我们直观上可以看出其实它是可以被分为两类的(一类在圆外,一类在圆内)。此时这个分界面就不叫”分离超平面”了,而叫“分离超曲面”(在二维空间上是曲线,在三维空间是曲面,如果对这个概念不熟悉,可以看看前面写的第七章的第一节内容,里面有“超平面”的理解。)

非线性问题的那个分离超曲面往往不好直接求解,我们求解线性问题的方法已经很成熟,我们希望能利用求解线性问题的方法来求解非线性问题就好了。

实际上我们就是这么做的:先进行一个非线性变换,将非线性问题变换为线性问题,再通过解变换后的线性问题的方法来求解原来的非线性问题。

如上图,通过某种映射关系将左图中的样本点变换成右图中的样本点,这样对于的分界面就从原来的曲线(椭圆)变换成了直线,就将非线性分类问题变换成了线性分类问题。

我们来解释一下这种映射关系:设原空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...新空间核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

,定义从原空间到新空间的变换
(映射)

为:

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

(即将各个特征都取平方)

上面的这个例子说明,用线性分类方法求解非线性分类问题分为两步:第一步,使用一个变换将原空间的数据映射到新空间;第二步,在新空间里用线性分类学习方法从训练数据中学习分类模型。

所谓的核技巧就属于这样的方法。

核技巧应用到支持向量机,其基本想法就是通过一个非线性变换将输入空间(欧氏空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

或离散集合)对应于一个
特征空间

(希尔伯特空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

),使得在输入空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

中的
超曲面模型

对应于特征空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

中的
超平面模型(支持向量机)

。这样,分类问题的学习任务通过
在特征空间中求解线性支持向量机

就可以完成。

(2)核函数的定义

(看这部分需要花点时间理解,不能走马观花~此时先不用管核函数的应用,先搞清楚核函数是如何定义的~)

定义(核函数):

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

是输入空间(欧氏空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

的子集或离散集合),又设

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

为特征空间(希尔伯特空间,
维度一般远大于输入空间

),如果存在一个从

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

的映射(即
从低维到高维的映射,

后面会举例说明):

使得对所有
(此处的”z”就是一个实例点,不要和(1)中的”z”混合~)

,函数

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

满足条件

则称

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...核函数核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...映射函数

,式中

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...内积。

一句话概述上面的内容:什么是核函数?核函数就是两个输入空间实例点通过某种映射后的内积形式。

接下来好好解释一下”如何定义核函数(即找到核函数的表达式)?”,这一块实在是太重要了~

实际应用中,核函数往往是依赖领域知识直接选取的~你没有听错,是靠经验选取的,至于选取的核函数是否有效需要通过实验来验证

这里可能就会有点懵了~不是说好的核函数是两个映射的内积吗?你现在说靠经验选取?Are you xx kidding me?别急,哎呀,不好表达,举个例子吧~

先按书上的举个例子:

假设输入空间是

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

(二维),且我们按照经验正确选择了其核函数为

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

,试找出其相关的特征空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

和映射函数:

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

解:假如我们取特征空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

(三维),记

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

,假如我们
走dog shit运

找到了一个映射:

咱们来验证一下:

这就是核函数和映射函数的关系~

这里需要声明的是:这种映射不是唯一的,比如下面的映射同样能得到

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

仍取

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

或取

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

我们用了中500万的运气找到了这个映射,还要经过如上面验证过程的复杂计算,最终结果和我凭经验找到的一样。这个样本的维度较小,如果对高维的样本,你要找这种映射,恐怕拿连中10次1亿彩票的运气也找不到,因为特征空间一般都是高维甚至无穷维的。

所以这个时候你应该大致明白了,核技巧的想法是:在学习与预测中直接定义核函数

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

,而
不显式地定义映射函数

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

。通常,直接计算

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

比较容易,而通过

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

计算

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

并不容易。

注意:

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

是输入空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

到特征空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

的映射,特征空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

一般是高维的,甚至是无穷维的。而且从上面的例子可以看到,对于给定的核

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

,特征空间

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

和映射函数

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

的取法并不唯一,可以取不同的特征空间,即便是在同一特征空间里也可以取不同的映射。

对应于书中的例子,我们在举一个实际例子:

已知

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

,假设映射函数为

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

,则:

计算两个映射的内积:

(表示3维就已经算得很烦了,如果是十几维更高维,出现“维度爆炸”,我可能会直接原地崩溃)

这时如果我们直接计算

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

有:

看~多么简单舒服~

(3)核技巧在支持向量机中的应用

(前面论述了核技巧的定义,现在我们就要来说说,为什么要用到核技巧,怎么用。)

通过前几节知识的学习,我们知道:在线性支持向量机的对偶问题中,无论是目标函数还是分类决策函数,都仅涉及输入实例训练实例之间的内积(建议往回翻几篇看看~);在对偶问题的目标函数中的内积

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

,可用核函数

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

来代替。

此时对偶问题的目标函数变成:

同样,分类决策函数中的内积也可以用核函数代替,而分类决策函数式变成:

式中的

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

代表的是所有的
支持向量

。这个式子等价于经过
映射函数

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

将原来的输入空间
变换到

一个新的特征空间,将输入空间中的内积

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

变换为特征空间中的内积

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

,然后就在新的特征空间里从训练样本中学习
线性支持向量机

。当映射函数是非线性函数时,学习到的含有核函数的支持向量机就是
非线性分类模型。

也就是说,现在我直接给定了核函数

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...替换掉

线性分类问题决策函数中的

核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)...

,就可以利用
解线性分类问题

的方法
求解非线性分类问题

,得到
非线性支持向量机模型

。整个过程
不需要显式地

定义特征空间和映射函数,学习是
隐式地

在特征空间中进行的。这样的技巧就是——
核技巧

。它是巧妙地利用线性分类学习方法与核函数解决非线性问题的技术。

再次说明:实际应用中,核函数(等价于两个映射的内积)往往是依赖领域知识直接选取的,是靠经验选取的,至于选取的核函数是否有效需要通过实验来验证。

这篇关于核函数的内容到这里就写完了,以前我觉得自己已经懂了,但是知道今天我才真正弄懂核函数的意义~我再来叙述一遍吧:之前学的线性SVM能很好地对线性数据集进行分类,这一点毋庸置疑了;现在我想利用成熟的线性SVM分类方法来对非线性数据集进行分类,怎么办呢?我们可以想办法通过一个映射函数,将原空间中的非线性数据集变换到高维特征空间中成为线性数据集;而我们通过经验选取的核函数等价于两个映射的内积,所以就把核函数替换到线性SVM分类决策函数中的内积位置,得到高维特征空间中的分类决策函数;该高维特征空间中的分类决策函数就能对高维特征空间中的线性数据集进行正确划分。真的是很有意思~美妙~

其实到这里可以这样说,只要我们选择的核函数足够好,非线性数据集的分类问题就解决了,就能得到非线性分类SVM模型。所以接下来重点就在这个——核。

Original: https://blog.csdn.net/weixin_36410141/article/details/113332545
Author: 咕噜咕噜吨
Title: 核函数支持向量回归机的预测 matlab_第七章 支持向量机(第3节 非线性支持向量机与核函数 第1小节 核技巧)…

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/634373/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球