机器学习中的特征变换(核函数)

xiaoxiao2021-02-28  172

在机器学习中,我们提供的数据不一定都是完全线性可分的,很多情况下会存在线性不可分,可是我们需要处理成线性可分,所以我们可以采用特征变换或者核函数的形式,把数据投影到别的空间。数据在A空间不可分,投影到B空间就可能会线性可分,B空间的维度一般会高于A空间的维度。

1.一般情况下,我们考虑将数据投影到别的空间,比如采用多项式。假设x的维度d,如果投影到别的空间,维度会急剧增大,造成维度灾难。维度比较高,在求解过程中就会存在问题,比如你在求解SVM的时候,存在不同元素之间的内积,如果投影过去变成10000维,那么计算内积就要10000次,在继续增大的话可能导致无法计算。使得计算效率十分低下。很多情况下无法计算。

2.为了解决上面的这个问题,我们采用的思路不是先投影,而是把投影和内积和在一起计算,称为kernel function(核函数)。计算核函数来替代其他的计算。

以下是几种常用的核函数表示:

线性核(Linear Kernel)

多项式核(Polynomial Kernel)

径向基核函数(Radial Basis Function)

也叫高斯核(Gaussian Kernel),因为可以看成如下核函数的领一个种形式:

径向基函数是指取值仅仅依赖于特定点距离的实值函数,也就是 。任意一个满足 特性的函数 Φ都叫做径向量函数,标准的一般使用欧氏距离,尽管其他距离函数也是可以的。所以另外两个比较常用的核函数,幂指数核,拉普拉斯核也属于径向基核函数。此外不太常用的径向基核还有ANOVA核,二次有理核,多元二次核,逆多元二次核。 注意:高斯核函数的变换是无限维的,因为你用泰勒展开就可以知道。 幂指数核(Exponential Kernel)   拉普拉斯核(Laplacian Kernel)   ANOVA核(ANOVA Kernel)   二次有理核(Rational Quadratic Kernel)   多元二次核(Multiquadric Kernel)   逆多元二次核(Inverse Multiquadric Kernel)   另外一个简单实用的是 Sigmoid核(Sigmoid Kernel)   以上几种是比较常用的,大部分在SVM,SVM-light以及RankSVM中可用参数直接设置。还有其他一些不常用的,如小波核,贝叶斯核,可以需要通过代码自己指定。(引用:http://blog.csdn.net/qq_27231343/article/details/51817866) 不同kernel function的对比: 线性:简单,安全,首先尝试.求解速度快速.线性的好处很容易看出机器如何分类的,并且也知道权重,也可以轻易的计算出支持向量.不过是有限的. 多项式:比线性宽松,比线性的限制少,可以解决的问题更多一点,线性没法解决的这个可以解决.不过计算核函数的值比较难计算,一个数字的n次方会比较难计算,求解二次规划会有难度.还有就是超参数有点多,比较难选择.所以这个一般用的时候就是次方比较小的时候. 高斯核函数:就是限制更少,维度是无限维度,可以做出复杂的边界,数值计算的困难度低一点,超参数只有一个,也稍微简单点,无法计算出w,需要利用核函数计算结果.求解对偶问题时候比线性慢.参数没选好会有过拟合的可能性.小心使用,参数选择小心.
转载请注明原文地址: https://www.6miu.com/read-67106.html

最新回复(0)