十一、核函数初识
假设: 函数Ф是一个从低维特征空间到高维特征空间的一个映射,那么如果存在函数K(x,z), 对于任意的低维特征向量x和z,都有:
称函数K(x,z)为核函数(kernal function);
核函数在解决线性不可分问题的时候,采取的方式是:使用低维特征空间上的计算来避免在高维特征空间中向量内积的恐怖计算量;也就是说此时SVM模型可以应用在高维特征空间中数据可线性分割的优点,同时又避免了引入这个高维特征空间恐怖的内积计算量。
本质: 核函数是一个低纬的计算结果,并没有采用低纬到高维的映射。只不过核函数低纬运算的结果__等价于__映射到高维时向量点积的值。
公式演绎:
不妨还是从最开始的简单例子出发,设两个向量x1 = (μ1 + μ2)T 和x2 = (η1 + η2)T ,两个向量的点积是五维空间的映射,因此映射过后的内积为:
而同时我们可以发现有以下公式:
可以发现两者之间非常相似,所以我们只要乘上一个相关的系数,就可以让这两个式子的值相等,这样不就将五维空间的一个内积转换为两维空间的内积的运算。
举例:
现有有两个两维的向量,进行二阶多项式扩展,然后进行内积计算,这个时候映射高高维后计算的计算量为:11次乘法+4次加法;采用近似计算的计算量为:3次乘法+2次加法;采用加系数后的近似计算的计算量为:4次乘法+2次加法;
几种核函数:
线性核函数(Linear Kernel): 即原函数,不做映射。
多项式核函数(Polynomial Kernel):其中γ、r、d属于超参,需要调参定义;
类似上面的函数,上面的0.8476是调参出来的结果。
重点:
__高斯核函数(Gaussian Kernel):__其中γ属于超参,要求大于0,需要调参定义;
__高斯核在实际运用中特别多__,不仅仅是因为需要调的参数比较少。
__最重要的原因是:__$color{red}{高斯核函数等价于低维映射到无穷维后展开后的点积。}$
在sklearn中,核函数是rbf,即Radial basis functionfuntion 径向基;其中真正用到的核函数算法是高斯核。
PS:之前在讲加权线性回归中提过相似度的度量,其中用到的就是类似高斯核的函数。
Sigmoid核函数(Sigmoid Kernel):其中γ、r属于超参,需要调参定义;
了解即可,这个核函数别去用它,垃圾得一塌糊涂。
该算法大致上就是把Sigmoid函数变成了tan函数。
核函数的几何意义:
将原始数据映射到高维,然后找一个超曲面来分割它们。差不多就是我上一章一开始画的那个图。
十二、核函数总结
1、 核函数可以自定义;核函数必须是正定核函数,即Gram矩阵是半正定矩阵;
2、核函数的价值在于它虽然也是将特征进行从低维到高维的转换,但核函数它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算;
3、 通过核函数,可以将非线性可分的数据转换为线性可分数据;
十三、高斯核公式证明
令z=x;那么进行多维变换后,应该是同一个向量,从而可以得到以下公式:
了解核函数的构造方式,尤其是高斯核。