您的位置:首页 > 其它

支持向量机SVM核函数的选择(七)

2016-04-04 10:05 197 查看
支持向量机是建立在统计学习理论基础之上的新一代机器学习算法,支持向量机的优势主要体现在解决线性不可分问题,它通过引入核函数,巧妙地解决了在高维空间中的内积运算,从而很好地解决了非线性分类问题。要构造出一个具有良好性能的SVM,核函数的选择是关键也是最重要的一步.通常来讲核函数的选择包括两部分工作:一是核函数类型的选择,二是确定核函数类型后相关参数的选择。如何根据具体的数据选择恰当的核函数是SVM应用领域遇到的一个重大难题,也成为科研工作者所关注的焦点,但是目前还没有具体的理论或方法来指导核函数的选取。下面我把我们常用的核函数列出来


1、经常使用的核函数

核函数的定义并不困难,根据泛函的有关理论,只要一种函数K(xi,xj)满足Mercer条件,它就对应某一变换空间的内积.对于判断哪些函数是核函数到目前为止也取得了重要的突破,得到Mercer定理和以下常用的核函数类型:

(1)线性核函数

K(x,xi)=x⋅xi

(2)多项式核

K(x,xi)=((x⋅xi)+1)d

(3)径向基核(RBF)

K(x,xi)=exp(−∥x−xi∥2σ2)

Gauss径向基函数则是局部性强的核函数,其外推能力随着参数σ的增大而减弱。多项式形式的核函数具有良好的全局性质。局部性较差。

(4)傅里叶核

K(x,xi)=1−q22(1−2qcos(x−xi)+q2)

(5)样条核

K(x,xi)=B2n+1(x−xi)

(6)Sigmoid核函数

K(x,xi)=tanh(κ(x,xi)−δ)

采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络,应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。而且支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部最小值,也保证了它对于未知样本的良好泛化能力而不会出现过学习现象。


2、核函数的选择

在选取核函数解决实际问题时,通常采用的方法有:一是利用专家的先验知识预先选定核函数;二是采用Cross-Validation方法,即在进行核函数选取时,分别试用不同的核函数,归纳误差最小的核函数就是最好的核函数.如针对傅立叶核、RBF核,结合信号处理问题中的函数回归问题,通过仿真实验,对比分析了在相同数据条件下,采用傅立叶核的SVM要比采用RBF核的SVM误差小很多。

在我的研究做实验过程中,最常用的是Linear核与RBF核。

1). Linear核:主要用于线性可分的情形。参数少,速度快,对于一般数据,分类效果已经很理想了。

2). RBF核:主要用于线性不可分的情形。参数多,分类结果非常依赖于参数。有很多人是通过训练数据的交叉验证来寻找合适的参数,不过这个过程比较耗时。我个人的体会是:使用libsvm,默认参数,RBF核比Linear核效果稍差。通过进行大量参数的尝试,一般能找到比linear核更好的效果。

但是应用最广的应该就是RBF核了,无论是小样本还是大样本,高维还是低维等情况,RBF核函数均适用,它相比其他的函数有一下优点:

1)RBF核函数可以将一个样本映射到一个更高维的空间,而且线性核函数是RBF的一个特例,也就是说如果考虑使用RBF,那么就没有必要考虑线性核函数了。

2)与多项式核函数相比,RBF需要确定的参数要少,核函数参数的多少直接影响函数的复杂程度。另外,当多项式的阶数比较高时,核矩阵的元素值将趋于无穷大或无穷小,而RBF则在上,会减少数值的计算困难。

3)对于某些参数,RBF和sigmoid具有相似的性能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: