机器学习 径向基(Radial basis function)与RBF核函数 浅析

径向基函数(RBF)在神经网络领域扮演着重要的角色,如 RBF神经网络具有唯一最佳逼近的特性,径向基作为核函数在SVM中能将输入样本映射到高维特征空间,解决一些原本线性不可分的问题。

      本文主要讨论:

       1. 先讨论核函数是如何把数据映射到高维空间的,然后引入径向基函数作核函数,并特别说明高斯径向基函数的几何意义,以及它作为核函数时为什么能把数据映射到无限维空间。

       2.提到了径向基函数,就继续讨论下径向基函数神经网络为什么能用来逼近。

       注:核函数是一回事,径向基函数是另一回事。

核函数表示的是高维空间里由于向量内积而计算出来的一个函数表达式(后面将见到)。

径向基函数是一类函数,径向基函数是一个它的值(y)只依赖于变量(x)距原点距离的函数,即 \phi(\mathbf{x}) = \phi(\|\mathbf{x}\|);也可以是距其他某个中心点的距离,即 \phi(\mathbf{x}, \mathbf{c}) = \phi(\|\mathbf{x}-\mathbf{c}\|)。也就是说,可以选定径向基函数来当核函数,譬如SVM里一般都用高斯径向基作为核函数,但是核函数不一定要选择径向基这一类函数。


    一.由非线性映射引入核函数概念,之后介绍高斯径向基及其几何意义。

    预先规定是一个非线性映射函数,能够把空间  中任一点,映射到空间  中  。

    下面先用一个例子说明这种映射的好处。

     例:假设二维平面上有一些系列样本点  ,他们的分布近似是一个围绕着原点的圆(见图1)。那么在这个二维的样本空间里,这些样本点满足的曲线方程为:

                                         

如果设非线性映射为: 

                                         

那么在映射后的的空间里,曲线方程变成了:   

                                 

这意味着在新空间里,样本点是分布在一条近似直线上的,而不是之前的圆,很明显这利于线性可分。

                   

                                                     图1.左图为原来的x所在的二维空间,右图为映射后的新的y空间

继续这个例子,我们已经知道了映射关系,那么在 y 空间中的向量内积会是什么样子的呢?

                        

注意公式里的各种括号。[x]代表样本 x ,圆括号 (,) 表示样本的坐标,尖括号 <,> 代表代表向量内积。

由此我们知道 空间里两向量  的内积,在 空间里确实一个关于的函数,这个 函数就称为核函数

      所以总结一下核函数就是:在原样本空间中非线性问题,我们希望通过一种映射把他映射到高维空间里使问题变得线性。然后在高维空间里使用我们的算法就能解决问题。而此时不用映射到高维只需非线性投影即可得到相同的效果。当然这里按照前面的推导我们在高维空间里的运算是以向量内积为基础的。

      回顾SVM里的应用得到的分类器表达式为:

                                     

x经过映射后得到的表达式为:

                                    

由此就可以看到这里有高维空间里的内积,就能够用核函数代替这种内积了,而往往把高斯径向基函数作为核函数。

高斯径向基函数公式如下:

                                  

那么它有什么几何意义呢。

先看看x经过映射以后,在高维空间里这个点到原点的距离公式:

                                    

这表明样本x映射到高维空间后,存在于一个超球面上.

        接下来将讨论核函数为什么能替代映射到高维空间,径向基核又为什么能够映射到无限维空间。

先考虑普通的多项式核函数:

                             其中,并且 .

因此这个多项式核函数能够写成:

                             . 

现在回到之前的映射

                             

并取  ,注意此时是3维空间了,那么有

                              .

这就是前面的 k(x,y),因此,该核函数就将2维映射到了3维空间。

看完了普通核函数由2维向3维的映射,再来看看高斯径向基函数会把2维平面上一点映射到多少维。

                             
                                           
                                           
                                            

呃,看看它的泰勒展开式你就会恍然大悟:

                              

这个时候 (x)就是一个无限维的了。


二、RBF神经网络

       最基本的径向基函数(RBF)神经网络的构成包括三层,其中每一层都有着完全不同的作用。输入层由一些感知单元组成,它们将网络与外界环境连接起来;第二层是网络中仅有的一个隐层,它的作用是从输入空间到隐层空间之间进行非线性变换,在大多数情况下,隐层空间有较高的维数;输出层是线性的,它为作用于输入层的激活模式提供响应。

        

函数逼近的形式:

                        y(\mathbf{x}) = \sum_{i=1}^N w_i \, \phi(\|\mathbf{x} - \mathbf{x}_i\|),

     个人觉得,隐含层的每个节点就是就是空间中的一个基底,经过线性组合加权以后就变成了输出。这种理解是通过逼近理论来理解的。

这里的多项式P就是由基底组成。隐含层每个节点对应的响应输出就像这些基底的相应一样,训练权值就是找到每个基底前面的系数。

      第二角度理解:

      不知大家是否熟悉混合高斯模型,这里的逼近有点像混合高斯模型。也就是每个高斯函数在自己的中心附近作出突出贡献。

                         

详见:《径向基网络(RBF network)之BP监督训练》。

      当年径向基函数的诞生主要是为了解决多变量插值的问题。可以看下面的图。具体的话是先在每个样本上面放一个基函数,图中每个蓝色的点是一个样本,然后中间那个图中绿色虚线对应的,就表示的是每个训练样本对应一个高斯函数(高斯函数中心就是样本点)。然后假设真实的拟合这些训练数据的曲线是蓝色的那根(最右边的图),如果我们有一个新的数据x1,我们想知道它对应的f(x1)是多少,也就是a点的纵坐标是多少。那么由图可以看到,a点的纵坐标等于b点的纵坐标加上c点的纵坐标。而b的纵坐标是第一个样本点的高斯函数的值乘以一个大点权值得到的,c的纵坐标是第二个样本点的高斯函数的值乘以另一个小点的权值得到。而其他样本点的权值全是0,因为我们要插值的点x1在第一和第二个样本点之间,远离其他的样本点,那么插值影响最大的就是离得近的点,离的远的就没什么贡献了。所以x1点的函数值由附近的b和c两个点就可以确定了。拓展到任意的新的x,这些红色的高斯函数乘以一个权值后再在对应的x地方加起来,就可以完美的拟合真实的函数曲线了。

                     

     


Reference:

1.Michael Eigensatz《Insights into the Geometry of the Gaussian Kernel and an Application in Geometric Modeling》

2.Quora 上的问题 Why does the RBF (radial basis function) kernel map into infinite dimensional space?

3.zouxy09 博文《径向基网络(RBF network)之BP监督训练

4.如果想学SVM, JerryLead 的 《支持向量机》系列 当然不能漏掉.

5.男神 Andrew Ng 的讲义是师祖.


你可能感兴趣的:(机器学习算法,SVM,RBF,神经网络,核函数)