上一篇笔记中,讲述了SVM在处理线性可分样本集合的思路和优化模型的建立过程?那么对于非线性可分样本集合SVM该如何处理呢?举一个最简单的例子。
如图1所示,我们无法在示例的特征空间中直接画一条直线,将红色的样本和绿色的样本分开。是不是SVM就不适用了呢?答案是否定的。SVM最为精彩的思想很巧妙的解决了这个问题,即把这个特征空间映射到更高维的特征空间中,在高维特征空间中去寻找超平面将两类样本合理分开。
1 非线性可分样本优化问题
首先回顾一下上一篇中,对于线性可分样本集建立的优化问题模型:(问题一)
① 最小化:
② 限制条件:
先写出结论。
可以对上述优化问题做一些改动,添加一个正则项(Regulation Term,让原本不容易求解的目标函数变得更加容易求解;让原本求到的解向我们的目标解靠拢,就是添加正则项目之前求得的解不是我们想要的,通过添加正则项让这个解变成我们想要的),则优化问题可以变成(目标问题):
① 最小化:
② 限制条件:
这里的 称为松弛变量, 是一个正则项。
③ 找一个 ,使得 , 为原始低维的特征向量, 为高维的特征向量。
我们结合图1的“异或问题”来量化举例,我们来找一个 来将两类样本分开。
先写出样本集合:
由于原问题在二维的特征空间里是线性不可分的,所以我们定义一个 ,使得 将原来的二维特征映射成更高维度(5维),则有:
这样我们就把低维的原样本,经过 映射成了更高维的特征样本。
这里我们可以主管的构造一个 的线性模型。可以得到:
这样我们就可以根据线性模型结果的正负成功分开两类样本。由此可见,我们可以通过这种方式来将SVM应用至线性不可分的样本集合。那么如何选取这个 呢?
2 核函数
理论上,我们如果把特征空间的维度映射至无限,那么样本被线性模型分开的概率也是无限接近于1的。我们无法想象出来那样具象的特征空间,举个形象的例子,我们在桌面上撒上了红色和绿色的豆子,它们掺杂到一起了,在这个桌面上我们没有办法用一条线将两种颜色的豆子分开来。但是假如桌子有很好的弹力,我们的力气也足够大,空间中还有不定方向的风会吹动豆子,我们使用一个巧妙的力量拍桌子,将这两种颜色的豆子弹到空中,那么把这些豆子弹的越高(最上面的豆子离最下面的豆子越远),那么弹在空间里的这些豆子在某一个瞬间就可以找到一条线(超平面)刚好将这两种豆子分开。这里我们施加的力气、空间中的风以及桌子的弹力,就是接下来要介绍的核函数的角色。
如何真的把特征空间上升到无限维度,那么对于求解来说也是困难的。于是SVM引入一种手段,有限维度的手段:
可以不知道 的显式表达,只需要知道一个核函数 ,则可以求解上述(目标问题)。
这里的 满足如下条件:
① 交换性
② 半正定性
举一个核函数的例子:
(高斯核)
我们可以将(目标问题)中的 替换成 ,就可以实现将特征空间映射至更高维度。
3 原问题与对偶问题、KKT条件
见学习笔记(1)。