【SVM】为什么RBF核函数可以使任何二分类数据线性可分
RBF(Radial Basis Function)核函数
这个函数和高斯分布函数很像,只是少了前面那个系数项。这意味着RBF核函数只是高斯分布函数纵向等比放缩的结果,很多性质可以直接搬过来用,比如准则。
我们可以很容易地看出几个性质:
- 函数最大值为1
- 在直角坐标系中,它和高斯分布函数一样是钟形曲线,且sigma越小,图形越“痩”
##在运用SVM时,如何使用RBF核函数使任何二分类数据线性可分
从RBF的函数形式来看,这是一个关于两点距离的函数:距离越远,值越小;越小,函数值在远离中心点时下降地越快。如果我们让小至0(趋于0),这样,函数就变成了只有在两个x相等时取1,否则取0。
这样做有什么意义呢?让我慢慢道来。
先回忆一下SVM中核函数是做什么的。
如果原有数据不是线性可分的,则可以通过核函数将原有数据映射到高维空间,使其线性可分,就像下图:
但是,如果映射之后的维度过高,由现有空间下的向量映射到高维空间下的对应向量的计算非常耗时(如果映射之后为无穷维,则根本不能实现),是不可取的。然而我们要的只是高维空间下对应的內积结果,如果能从低维空间下的向量形式,外加一些计算量较小的函数可以间接计算出高维空间下的內积结果,岂不美哉。这就是核函数干的事情。一个核函数定义了一个空间映射。
那么核函数如何选择?
我们之所以要从低维度映射到高维度,就是为了使数据线性可分。但这个映射方法的选择很重要。我们根据经验认为,从低维度映射到高维度后,线性可分的可能性比较大,比如上面那副图。然而这只是经验而已,很多时候我们根本不知道映射后在高维下数据是什么样子的。一般来说我们是通过验证的方法来确定哪种映射比较好。
如果映射到高维后,仍然线性不可分怎么办?
答案是再向高维映射。但是就和上面说的一样,高维下数据形式几乎不可预测。这其实就是在看运气。
如果映射到无穷维度空间呢?
在无穷维度空间下,每一个维度体现了数据的一个特征。上哪找这么多特征呢?其实很简单,如果原有空间下点的可取值为无限的话(比如欧几里得空间),那么数据点到所有点的距离可以构成该点的无穷多个特征,也就是说,我们把数据映射到了无限维度的空间中了。这样映射的话,內积计算起来很麻烦,而且可能为无穷,于是考虑一种更为稀疏的映射方式:如果数据点到第i个点的距离为0(即该数据点本身),则第i维取1,否则取0。按照这个方式映射后,两个向量內积,当且仅当同一维特征取1时得到的是1,否则为0
也就是说,对应于映射前空间,两个向量如果相等,得到的高维空间下的內积结果为1,否则为0。这下你们应该发现了,这不正是**取0时的RBF函数**吗?换句话说,我们现在同时得到了核函数形式、映射方法,映射之后的形式。
#####下面我来证明无论什么数据,用这个方法映射后都是线性可分的。(这里没用什么深奥的数学方法,非数学系的我也表示不会什么深奥的方法。。。。)
首先,如果他是线性可分的,那么必定存在一个超平面可以数据集分开,我们只要证明无论什么样的数据,在应映射之后都可以找相应的到和使两类分开。如果用感知机来表示,的值和(为数据的标签,值为1或-1,分别代表两类)同号。其实只要取,取0就行了,如下所示:
既然求出了和,则证明了一定线性可分。
当然上面只是一种极限的情况,实际使用时,如果要使任何数据线性可分,只要把RBF函数的改的足够小就行了。这或许也是RBF核函数在SVM中这么常用的原因了。
##弊端
虽然用上面的确实可以使任何数据变得线性可分,但是却也导致了严重的过拟合。所以一般来说,不能过小。