您的位置:首页 > 其它

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

2017-06-08 09:43 176 查看
在机器学习中,我们提供的数据不一定都是完全线性可分的,很多情况下会存在线性不可分,可是我们需要处理成线性可分,所以我们可以采用特征变换或者核函数的形式,把数据投影到别的空间。数据在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,需要利用核函数计算结果.求解对偶问题时候比线性慢.参数没选好会有过拟合的可能性.小心使用,参数选择小心.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: