核函数的理解一

来源:互联网 发布:知乎 汽车金融风控 编辑:程序博客网 时间:2024/06/16 11:24


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


设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′) 称为核函数


举例,我们现在考虑核函数K(v_1,v_2) = <v_1,v_2>^2,即“内积平方”。
这里面v_1=(x_1,y_1), v_2=(x_2,y_2)是二维空间中的两个点。

这个核函数对应着一个二维空间到三维空间的映射,它的表达式是:
P(x,y)=(x^2,\sqrt{2}xy,y^2)
可以验证在三维空间下的两个点的内积公式,
<P(v_1),P(v_2)>&= &<(x_1^2,\sqrt{2}x_1y_1,y_1^2),(x_2^2,\sqrt{2}x_2y_2,y_2^2)> \\&= &x_1^2x_2^2 + 2x_1x_2y_1y_2+y_1^2y_2^2 \\&= &(x_1x_2 + y_1y_2)^2 \\&= &<v_1,v_2>^2 \\&= &K(v_1,v_2)


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


在机器学习中常用的核函数,一般有这么几类,也就是LibSVM中自带的这几类:
1) 线性:K(v_1,v_2)=<v_1,v_2>
2) 多项式:K(v_1,v_2)=(\gamma<v_1,v_2>+c)^n
3) Radial basis function:K(v_1,v_2)=\exp(-\gamma||v_1-v_2||^2)
4) Sigmoid:K(v_1,v_2)=\tanh(\gamma<v_1,v_2>+c)








0 1