开发者学堂课程【机器学习算法 :核函数与松弛变量】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7268
核函数与松弛变量
内容介绍
一、线性不可分的情况
二、核函数
三、核函数例子
四、核函数的分类和选择
一、线性不可分的情况
线性不可分的情况不能再直接使用之前求出的线性可分的超平面,而是考虑把样本映射到一个更高维的空间中,希望在这个高维空间中线性可分,即可使用之前线性可分的思路,构造一个分类超平面。
例1:
在一维空间中,在一条线上,有好多点,红色的点和蓝色的点是不同的分类,事实上,在一维空间中,超平面是一个点,但找不到一个点可以将红颜色和蓝颜色分开,这就是典型的线性不可分的情况。
如何解决?将一维空间上的点映射到二位空间上去,在二维空间是线性可分的。
如上图所示,将一维空间上的点映射到二维空间的正弦函数上,并且可以构造分类超平面将其分开,这样就解决了最初的问题。
例2
将线性不可分的二维图映射成线性可分的三维立体图,用一个平面将其隔开,如果能将这些点找到映射关系,将其从二维空间映射到三维空间,就可以在三维空间中使用 SVM 原理。所以,如果原始空间是有限维,即属性数有限,一定存在一个高维特征空间使样本线性可分。
二、核函数
支持向量机通过某非线性变换 ф(x),将输入空间映射到高维特征空间。如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K(xx’),它恰好等于在高维空间中这个内积,即 K(x,x')=〈ф(x)·ф(x’)〉,则无需再计算复杂的非线性变换,而由函数 K(x,x’)直接得到非线性变换的内积,简化了计算。函数K(xx’)称为核函数 (Kernel Function)。
本来要到高维空间找一个函数,刚好存在一个映射关系,可以将低维空间映射过来,在高维空间中正好是线性可分的,但其实非常难找到 ф(x)。实际上,在找分类超平面时,最终分类超平面的表达式,就是 ф(x) 和 ф(x’) 的内积,所以只需要凑出ф(x)·ф(x’)就可以找到分类超平面即可,不需要具体关心如何映射。
普通处理方法:先把样本映射到高维特征空间,然后在高维空间使用线性学习器分类。
在原始特征空间中直接计算内积 (ф(x)ф(x’)就可以将两个步骤融合到一起建立一个非线性的学习器,这样直接计算法的方法称为核函数方法
三、核函数例子
二维平面中,构造两类样本,为线性不可分。将其映射到高维空间,找到超平面进行分隔。构造样本时是基于二次函数的曲线加上噪声得到的,二次函数的通用表达式为:
将其映射至五维空间Z=(X2,y2,xy,x,y)其表达式为:
其表达式为线性,能将其分隔的圆也为线性,即超平面。为了能通过图形显示(最多3维),构造样本函数为:
将其映射至一个三维空间Z=(x2,y2,x),其表达式为:
按照之前的知识,知道映射到高维后的分类超平面为:
当映射函数ф(.)不容易求的时候,可以尝试去找一个核函数 K(x,x')=〈ф(x)·ф(x’)〉
二维空间的二次曲线映射到五维空间:映射函数 ф(.)
另外根据 x1、x2 去拼凑类似的式子:
二者实际上一样,只需要对映射进行一些缩放即可:
所以最后得出 k
四、核函数的分类和选择
选择核函数:
无明确可行的指导原则
通过先验知识选择核函数
使用交叉验证法,尝试不同核函数,选择误差最小的
混合核函数法,将不同核函数混合起来使用
最常用的是 RBF,其次是线性核