支持向量机SVM-番外篇-核函数

ps:http://blog.csdn.net/heyijia0327/article/details/38090229

 

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

 

 注意核函数是一回事,径向基函数是另一回事。核函数表示的是高维空间里由于向量内积而计算出来的一个函数表达式(后面将见到)。而径向基函数是一类函数,径向基函数是一个它的值(y)只依赖于变量(x)距原点距离的函数,即 \phi(\mathbf{x}) = \phi(\|\mathbf{x}\|);也可以是距其他某个中心点的距离,即 \phi(\mathbf{x}, \mathbf{c}) = \phi(\|\mathbf{x}-\mathbf{c}\|) 引用自wiki . 也就是说,可以选定径向基函数来当核函数,譬如SVM里一般都用高斯径向基作为核函数,但是核函数不一定要选择径向基这一类函数。如果感觉这段话有点绕没关系,往下看就能慢慢体会了。

为什么要将核函数和RBF神经网络放在一起,是希望学习它们的时候即能看到它们的联系又能找到其差别。

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

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

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

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

                                         

如果设非线性映射为: 

                                         

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

                                 

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

                   

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

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

                        

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

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

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

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

                                     

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

                                    

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

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

                                  

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

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

                                    

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

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

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

                             k(x, y) = (x^Ty)^2其中x, y \in \mathbb{R}^2,并且  x = (x_1, x_2), y = (y_1, y_2).

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

                             k(x, y) = (x_1y_1 + x_2y_2)^2 = x_{1}^2y_{1}^2 + 2x_1x_2y_1y_2 + x_{2}^2y_{2}^2

现在回到之前的映射

                       k(x, y) = \Phi(x)^T\Phi(y)

并取  \Phi(x) = (x_1^2, \sqrt{2}x_1x_2, x_2^2),注意此时是3维空间了,那么有

                             \Phi(x)^T\Phi(y) = x_1^2y_1^2 + 2x_1x_2y_1y_2 + x_2^2y_2^2 .

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

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

                             k(x, y) = \exp(-\|x - y\|^2)
                                             = \exp(- (x_1 - y_1)^2 - (x_2 - y_2)^2)
                                             = \exp(- x_1^2 + 2x_1y_1 - y_1^2 - x_2^2 + 2x_2y_2 - y_2^2)
                                             = \exp(-\|x\|^2) \exp(-\|y\|^2) \exp(2x^Ty) 

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

                             k(x, y) = \exp(-\|x\|^2) \exp(-\|y\|^2) \sum_{n = 0}^{\infty} \frac{(2x^Ty)^n}{n!} 

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

posted on 2015-04-03 01:02  会敲键盘的猩猩  阅读(329)  评论(0)    收藏  举报