我们在前文[1-5]中介绍了线性支持向量机的原理和推导,涉及到了软和硬的线性支持向量机,还有相关的广义拉格朗日乘数法和KKT条件等。然而,光靠着前面介绍的这些内容,只能够对近似于线性可分的数据进行分割,而不能对非线性的数据进行处理,这里我们简单介绍下支持向量机中使用的核技巧,使用了核技巧的支持向量机就具备了分割非线性数据的能力。本篇可能是我们这个系列的最后一篇了,如果有机会我们在SMO中再会吧。
前言
我们在前文[1-5]中介绍了线性支持向量机的原理和推导,涉及到了软和硬的线性支持向量机,还有相关的广义拉格朗日乘数法和KKT条件等。然而,光靠着前面介绍的这些内容,只能够对近似于线性可分的数据进行分割,而不能对非线性的数据进行处理,这里我们简单介绍下支持向量机中使用的核技巧,使用了核技巧的支持向量机就具备了分割非线性数据的能力。本篇可能是我们这个系列的最后一篇了,如果有机会我们在SMO中再会吧。
如有谬误,请联系指正。转载请注明出处。
e-mail: FesianXu@gmail.com
github: https://github.com/FesianXu
知乎专栏: 计算机视觉/计算机图形理论与应用
微信公众号:机器学习杂货铺3号店
1. 重回SVM
我们在前文[1-5]中就线性SVM做了比较系统的介绍和推导,我们这里做个简单的小回顾。支持向量机(Support Vector Machine,SVM),是一种基于最大间隔原则进行推导出来的线性分类器,如果引入松弛项,则可以处理近似线性可分的一些数据,其最终的对偶问题的数学表达形式为(1.1),之所以用对偶形式求解是因为可以轻松地引入所谓的核技巧,我们后面将会看到这个便利性。
从KKT条件[3]中我们知道,除了支持向量SV会影响到决策面之外,其他所有的样本都是不会对决策面产生影响的,因此只有支持向量对应的
2. 更进一步观察SVM
我们这里更进一步对SVM的对偶优化任务和决策面,也即是式子(1.1)(1.2)进行观察,我们会发现,有一个项是相同作用的,那就是
但是,我们注意到,我们是在原始的样本特征空间进行对比这个相似度的,这个很关键,因为在原始的样本特征空间里面,样本不一定是线性可分的,如果在这个空间里面,线性SVM将没法达到很好的效果。
3. 开始我们的非线性之路
那么,我们在回顾了之前的一些东西之后,我们便可以开始我们的非线性之路了,抓好扶手吧,我们要起飞了。
3.1 高维映射
对于非线性的数据,如下图所示,显然我们没法通过一个线性平面对其进行分割。 当然,那仅仅是在二维的情况下我们没法对齐进行线性分割,谁说我们不能在更高的维度进行“维度打击”呢?!我们不妨把整个数据上升一个维度,投射到三维空间,我们将红色数据“拉高”,而绿色数据“留在原地”,那么我们就有了: 发现没有,在二维线性不可分的数据,在三维空间就变得线性可分了。这个时候我们可以纪录下在三维情况下的决策面,然后在做个逆操作,将其投射到原先的二维空间中,那么我们就有了: 看来这种维度打击还真是有效!
别小看这个例子哦,这个是我们核技巧的一个关键的直观想法哦。没晕吧?让我们继续吧。
3.2 基函数
其实我们刚才举得例子中的
那么我们能不能把这种映射应用到,我们刚才的第二节提到的度量测试中的原始特征空间中的样本呢?答案自然是可以的,这样,我们就会有:
在给定了核函数的情况下,我们的对偶优化问题和决策面变成了:
但是,实际上我们是人工很难找到这个合适的映射
我们给定一个Mercer定理[10]:
如果函数
是 上的映射(也就是从两个n维向量映射到实数域,既是进行样本度量计算)。那么如果 是一个有效核函数(也称为Mercer核函数),那么当且仅当对于训练样例 ,其相应的核函数矩阵是对称半正定(positive semidefinite)的,并且有 。
嗯,定理很长,人生很短,这个定理说人话就是,如果这个核函数
诶,但是对称半正定不是矩阵才能判断吗?这里的核函数是个函数耶?嗯...也不尽然,休息下,我们下一节继续吧。
3.3 无限维向量与希尔伯特空间
先暂时忘记之前的东西吧,清清脑袋,轻装上阵。我们在以前学习过得向量和矩阵都是有限维度的,那么是否存在无限维的向量和矩阵呢?其实,函数正是可以看成无限维的向量,想法其实很简单,假如有一个数值函数
而核函数
既然是个矩阵,那么我们就可以对其进行特征分解对吧,只不过因为是无限维,我们需要使用积分,表达式类似于矩阵的特征值分解:
也就是任意两个特征函数之间是正交(Orthogonal)的,一个核函数对应着无限个特征值
回想到我们以前学习到的矩阵分解,我们知道我们的矩阵
回到我们的希尔伯特空间,我们会发现,这个空间中的任意一个函数(向量)都可以由正交基进行线性表出:
3.4 再生性(Reproduce)
前面3.3讨论了很多关于函数在希尔伯特空间上的表出形式,我们这里在仔细观察下核函数。我们发现,其实核函数可以拆分为:
我们更进一步吧,如果定义一个映射
这就是所谓的核技巧(Kernel trick)[12]。
PS:为了理解为什么是从原始的有限维的特征空间映射到无限维的希尔伯特空间,我们从式子(3.15)其实不难发现,
3.5 高斯核函数的无限维映射性质
有效的核函数,也就是对称半正定的核函数有很多,而且有一定的性质可以扩展组合这些核函数[6],这一块内容比较多,我们以后独立一篇文章继续讨论。这里我们主要看下使用最多的核函数,高斯核函数,也经常称之为径向基函数。
高斯核函数的数学表达形式如下所示:
4. 总结
我们前面对再生核希尔伯特空间进行了简单的介绍,同时了解了无限维映射的核函数,高斯核函数,事实上,我们原始的SVM对偶问题推导中的
Reference
[2]. 《SVM笔记系列之二》SVM的拉格朗日函数表示以及其对偶问题
[3]. 《SVM笔记系列之三》拉格朗日乘数法和KKT条件的直观解释
[6]. Bishop C M. Pattern recognition and machine learning (information science and statistics) springer-verlag new york[J]. Inc. Secaucus, NJ, USA, 2006.
[7]. Zhang T. An introduction to support vector machines and other kernel-based learning methods[J]. AI Magazine, 2001, 22(2): 103.
[8]. Everything You Wanted to Know about the Kernel Trick
[9]. 李航. 统计学习方法[J]. 2012.
[10]. 核函数(Kernels)
[11]. 机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用
[12]. A Story of Basis and Kernel – Part II: Reproducing Kernel Hilbert Space
[13]. Hilbert space
[14]. 函数的泰勒(Taylor)展开式