3.1 核技巧解决非线性SVM
3.1.1 非线性SVM解决思路
对于非线性分类问题,显然无法用一个线性分离超平面来把不同的类别的数据点分开,那么可以用以下思路解决这个问题:
首先使用一个变换 将非线性特征空间x映射到新的线性特征空间z
在新的z特征空间里使用线性SVM学习分类的方法从训练数据中学习分类模型
基于这个想法,SVM模型可以表示成:
但是,这里有一个问题: 计算起来要分两步,先映射x到z空间,然后在z空间(一般是较高维度)作高维度的內积 。
为了简化这个运算过程,如果我们找到一个核函数 , 即K是关于x的函数,其运算在低维空间上进行,然后使得 ,那么只需要计算一个比较好计算的核函数 ,就可以避免先映射,再在高维空间內积的复杂运算。
3.1.2 核技巧下SVM
基于核技巧,非线性SVM模型可以表示成:
其中, , 是关于原始低维特征空间 x 的函数,其运算在低维空间上进行。因此,降低了计算的复杂度。
在实际中,对一个非线性可分数据,我们不是先去定义转换函数数 ,再找出其对应的核函数K,而是直接用一些常用核函数代入上面(2)中的非线性可分支持向量机,然后查看分类效果,再调整核函数的类型,这样就隐式地实现了低维到高维的映射,而不用显式地定义映射函数 和特征空间,这种方法叫核技巧。
比如,现在为了解决非线性可分数据问题,现在直接用 放进(2),那么就可以解决一些非线性问题了,至于效果怎么样,还需要看实际的数据情况,在做调整。
而且需要理解的是:
-
背后的映射
不是唯一的。
可以是不同维数的映射方式,而即使是同一维度的映射,
的具体形式也可以不同。
(统计学习P117例7.3)
3.2 Mercer核
上面提到,在实际应用中,我们直接将使用某种核函数直接带入到非线性可分支持向量(2)式中去,用来解决非线性分类问题。但是,并不是任何一种关于x的函数都可以成为核函数,只有满足以下条件时才能充当核函数:
- 核函数 是对称函数
- 对任意属于样本集X中的
, 核函数
对应的Gram矩阵是半正定矩阵
- Gram矩阵定义为:
,其实就是把不同样本点放到核函数中去计算,因此G的shape和样本数量m相关,为mm。
- Gram矩阵定义为:
我们把上面两个条件称Mercer条件。
例题 判断 是不是核函数?
可以假设x为一维数据,两个样本 及 ,则可以得到Gram矩阵为:
则
并不能得到总是大于等于0,因此不是半正定,不能作为核函数。
3.3 常用的核函数
3.3.1 二次多项式核
其对应的映射函数可以是:
3.3.2 高斯核
形式:
特点:
可以做无限多维的映射,其保护是large margin,只有一个参数r,当r很大时,很容易就过拟合。
更多查阅:几种核函数的对比