核函数的理解一


首先给出官方核函数的定义,其定义如下(可参考统计学习方法):


设X是输入空间(欧氏空间或离散集合),Η为特征空间(希尔伯特空间),如果存在一个从X到Η的映射 

φ(x): X→Η

使得对所有的x,y∈X,函数Κ(x,y)=φ(x)∙φ(y), 

则称Κ(x,y)为核函数,φ(x)为映射函数,φ(x)∙φ(y)为x,y映射到特征空间上的内积。

在该定义中,涉及到几个概念:输入空间、特征空间、以及Mercer's condition。那先从空间说起。简单来说,常见的空间有欧式空间,集合(离散),赋范空间,希尔伯特空间。常见的欧式空间,即平常我们见到1,2……n维且满足可度量条件的空间(注:也可查看欧式五大公理)。而赋范空间通俗的理解就是距离+线性结构+范数=赋范空间,而在赋范空间+内积运算+完备性=希尔伯特空间。关

而百度百科上的定义

支持向量机通过某非线性变换 φ( x) ,将输入空间映射到高维特征空间。特征空间的维数可能非常高。如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K(x, x′) ,它恰好等于在高维空间中这个内积,即K( x, x′) =<φ( x) ⋅φ( x′) > 。那么支持向量机就不用计算复杂的非线性变换,而由这个函数 K(x, x′) 直接得到非线性变换的内积,使大大简化了计算。这样的函数 K(x, x′) 称为核函数


举例,我们现在考虑核函数,即“内积平方”。
这里面是二维空间中的两个点。

这个核函数对应着一个二维空间到三维空间的映射,它的表达式是:

可以验证在三维空间下的两个点的内积公式,


如上面的例子所说,核函数的作用就是隐含着一个从低维空间到高维空间的映射,而这个映射可以把低维空间中线性不可分的两类点变成线性可分的。事实中使用的核函数往往比这个例子复杂得多。它们对应的映射并不一定能够显式地表达出来;它们映射到的高维空间的维数也比我举的例子(三维)高得多,甚至是无穷维的。这样,就可以期待原来并不线性可分的两类点变成线性可分的了。


在机器学习中常用的核函数,一般有这么几类,也就是LibSVM中自带的这几类:
1) 线性:
2) 多项式:
3) Radial basis function:
4) Sigmoid:








你可能感兴趣的:(机器学习,特征工程)