SVM核函数

感想

今天作了几道SVM的题目,发现本身还作错了,想当年我仍是手推过SVM公式的人,看来SVM的理论我仍是没有学全,变了样子以后我就不怎么会了,前几个月写过一些简单的关于SVM的最大间隔的博客,此次总结一下SVM的核函数。算法

problem

下列不是SVM核函数的是:
A 多项式核函数
B logistic核函数
C 径向基核函数

D Sigmoid核函数网络

正确答案是:B机器学习

analysis

支持向量机是创建在统计学习理论基础之上的新一代机器学习算法,支持向量机的优点主要体如今解决线性不可分问题,它经过引入核函数,巧妙地解决了在高维空间中的内积运算,从而很好地解决了非线性分类问题。函数


构造出一个具备良好性能的SVM,核函数的选择是关键.核函数的选择包括两部分工做:一是核函数类型的选择,二是肯定核函数类型后相关参数的选择.所以如何根据具体的数据选择恰当的核函数是SVM应用领域遇到的一个重大难题,也成为科研工做者所关注的焦点,即使如此,却依然没有获得具体的理论或方法来指导核函数的选取.性能

常用的核函数


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

  1.  线性核函数

线性核函数是最简单的核函数,是径向基核函数的一个特例,公式为:
spa

K(x,z)=<x,z>.net

主要用于线性可分的情形,对应线性可分支持向量机与线性支持向量机。它在原始空间中寻找最优线性分类器,具备参数少速度快的优点。code

2.  多项式核函数blog

多项式核适合于正交归一化(向量正交且模为1)数据,公式为:


多项式核函数属于全局核函数,容许相距很远的数据点对核函数的值有影响。参数d越大,映射的维度越高,计算量就会越大。当d过大时,因为学习复杂性也会太高,易出现“过拟合现象。

3.  径向基核函数( Radial basis function)&高斯核函数

径向基核函数属于局部核函数,当数据点距离中心点变远时,取值会变小。公式为:


高斯核函数能够看做是径向基核函数的另外一种形式:


高斯径向基核对数据中存在的噪声有着较好的抗干扰能力,因为其很强的局部性,其参数决定了函数做用范围,随着参数σ的增大而减弱。

4.  Sigmoid核函数 

Sigmoid核函数来源于神经网络,被普遍用于深度学习和机器学习中。公式为:


采用Sigmoid函数做为核函数时,支持向量机实现的就是一种多层感知器神经网络。支持向量机的理论基础(凸二次规划)决定了它最终求得的为全局最优值而不是局部最优值,也保证了它对未知样本的良好泛化能力。

5  字符串核函数

核函数不只能够定义在欧氏空间上,还能够定义在离散数据的集合上。字符串核函数是定义在字符串集合上的核函数,能够直观地理解为度量一对字符串的类似度,在文本分类、信息检索等方面都有应用。

参考答案里面还给出了傅立叶核和样条核,我查了一下,这两个核函数好像不多见,资料不多,我这里只列出其公式,

6  傅立叶核:

K ( x , x i ) = 1 − q 2 2 ( 1 − 2 q cos ( x − x i ) + q 2 )

7 样条核

K ( x , x i ) = B 2 n + 1 ( x − x i )


核函数的选择


在选取核函数解决实际问题时,一般采用的方法有:

一是利用专家的先验知识预先选定核函数;

二是采用Cross-Validation方法,即在进行核函数选取时,分别试用不一样的核函数,概括偏差最小的核函数就是最好的核函数.如针对傅立叶核、RBF核,结合信号处理问题中的函数回归问题,经过仿真实验,对比分析了在相同数据条件下,采用傅立叶核的SVM要比采用RBF核的SVM偏差小不少.

三是采用由Smits等人提出的混合核函数方法,该方法较以前二者是目前选取核函数的主流方法,也是关于如何构造核函数的又一开创性的工做.将不一样的核函数结合起来后会有更好的特性,这是混合核函数方法的基本思想

在吴恩达的课上,也曾经给出过一系列的选择核函数的方法:    
    若是特征的数量大到和样本数量差很少,则选用LR或者线性核的SVM;
    若是特征的数量小,样本的数量正常,则选用SVM+高斯核函数;
    若是特征的数量小,而样本的数量很大,则须要手工添加一些特征从而变成第一种状况。

参考文献

[1].理解支持向量机(二)核函数.http://blog.csdn.net/shijing_0214/article/details/51000845

[2].牛客网. https://www.nowcoder.com/questionTerminal/732300dcca8d49bca7183c5dc28d3236

[3].svm经常使用核函数.http://blog.csdn.net/batuwuhanpei/article/details/52354822