最近看到很多关于SVM核函数的问题,下面讲一讲为什么核函数可以把地位不可分数据映射到高维线性可分。
首先我们要清楚,SVM中,对于维度的计算,我们可以用内积的形式,假设函数:
表示一个简单的从二维映射到三维。
则在SVM的计算中,可以表示为:
再来看exp(x)泰勒展开式:
所以这个无穷多项的式子正是对于exp(x)的近似,exp(x)所对应的映射:
再来看高斯核:
将泰勒展开式带入高斯核,我们得到了一个无穷维度的映射:
那么,对于x1和x2的内积形式符合在SVM中无穷维度下的内积计算,即高斯核将数据映射到无穷高的维度。
核函数的本质
上面说了这么一大堆,读者可能还是没明白核函数到底是个什么东西?我再简要概括下,即以下三点:
- 实际中,我们会经常遇到线性不可分的样例,此时,我们的常用做法是把样例特征映射到高维空间中去(如上文2.2节最开始的那幅图所示,映射到高维空间后,相关特征便被分开了,也就达到了分类的目的);
- 但进一步,如果凡是遇到线性不可分的样例,一律映射到高维空间,那么这个维度大小是会高到可怕的(如上文中19维乃至无穷维的例子)。那咋办呢?
- 此时,核函数就隆重登场了,核函数的价值在于它虽然也是将特征进行从低维到高维的转换,但核函数绝就绝在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算。
以高斯核函数为例,证明它可以将地位数据映射到无穷维:
閱讀更多 機器學習與數據挖掘 的文章