还记得上篇末提到的对于优化问题:

SVM学习——核函数

                                                                                                          SVM学习——核函数

                                                                                                                     SVM学习——核函数

的求解需要计算SVM学习——核函数这个内积,而如果输入样本线性不可分的话,我们采取的方法是通过SVM学习——核函数函数映射将输入样本映射到另外一个高维空间并使其线性可分。

         以库克定律为例(http://zh.wikipedia.org/zh-cn/%E9%9D%99%E7%94%B5%E5%8A%9B):

一个电量为 SVM学习——核函数 的点电荷作用于另一个电量为 SVM学习——核函数 的点电荷,其静电力 SVM学习——核函数 的大小,可以用方程表达为:

                            SVM学习——核函数其中,SVM学习——核函数 是两个点电荷之间的距离,SVM学习——核函数库仑常数

         显然这个定律无法用线性学习器来表达,看到乘积想到ln函数,对原始形式两边取ln,得到:

SVM学习——核函数,令SVM学习——核函数SVM学习——核函数SVM学习——核函数SVM学习——核函数SVM学习——核函数,那么就得到一个线性学习器:

                                     SVM学习——核函数

这个过程可以用下图说明:

SVM学习——核函数

这样就将内积SVM学习——核函数就变成了SVM学习——核函数

SVM学习——核函数可以有两种方法:

         1、先找到这种映射,然后将输入空间中的样本映射到新的空间中,最后在新空间中去求内积SVM学习——核函数

         2、或者是找到某种方法,它不需要显式的将输入空间中的样本映射到新的空间中而能够在输入空间中直接计算出内积SVM学习——核函数

         先看第一种方法,以多项式SVM学习——核函数 为例,对其进行变换,SVM学习——核函数SVM学习——核函数SVM学习——核函数SVM学习——核函数,得到:

SVM学习——核函数,也就是说通过把输入空间从二维向四维映射后,样本由线性不可分变成了线性可分,但是这种转化带来的直接问题是维度变高了,这意味着,首先可能导致后续计算变复杂,其次可能出现维度之咒,对于学习器而言就是:特征空间维数可能最终无法计算,而它的泛化能力(学习器对训练样本以外数据的适应性)会随着维度的增长而大大降低,这也违反了“奥坎姆的剃刀”,最终可能会使得内积SVM学习——核函数无法求出,于是也就失去了这种转化的优势了;

         再看第二种方法,它其实是对输入空间向高维空间的一种隐式映射,它不需要显式的给出那个映射,在输入空间就可以计算SVM学习——核函数,这就是传说中的核函数方法:

定义1:核是一个函数SVM学习——核函数,对于所有的SVM学习——核函数满足,SVM学习——核函数,这里的SVM学习——核函数为从SVM学习——核函数到内积特征空间SVM学习——核函数的映射。

于是输入空间的标准内积就被推广了。

        

         SVM学习——核函数什么时候才是核函数呢?

         假设有输入空间SVM学习——核函数SVM学习——核函数为对称函数,那么对于所有样本得到下面矩阵:SVM学习——核函数,显然,这个是个对称矩阵,那么对于对称矩阵一定存在一个正交矩阵,使得SVM学习——核函数,这里SVM学习——核函数是包含k的特征值SVM学习——核函数的对角矩阵,特征值SVM学习——核函数对应的特征向量为SVM学习——核函数,其中n为样本数,对输入空间做如下映射SVM学习——核函数:     

          SVM学习——核函数

          于是有SVM学习——核函数,(其中SVM学习——核函数为特征向量组成的矩阵,SVM学习——核函数为相应特征值组成的三角矩阵),也就是说K是对应于映射SVM学习——核函数的核函数。

例子:有SVM学习——核函数,由SVM学习——核函数解得特征值:SVM学习——核函数SVM学习——核函数,对2重特征根4求SVM学习——核函数的基础解系、正交化、单位化后得到特征向量:SVM学习——核函数SVM学习——核函数,对SVM学习——核函数的特征向量单位化后得到SVM学习——核函数,于是有SVM学习——核函数,满足SVM学习——核函数,对所有输入样本做映射得:

SVM学习——核函数

SVM学习——核函数;

SVM学习——核函数

随便选两个做内积,如SVM学习——核函数

由此可见:SVM学习——核函数就是对应于特征映射SVM学习——核函数的核函数,也就得到下面的结论:

定理1存在有限输入空间SVM学习——核函数SVM学习——核函数SVM学习——核函数上的对称函数,那么SVM学习——核函数是核函数的充要条件是矩阵SVM学习——核函数半正定,此时相当于对输入空间向特征空间进行了隐式SVM学习——核函数映射。对于上面的映射SVM学习——核函数,令SVM学习——核函数,于是SVM学习——核函数,进而SVM学习——核函数

定理3:设SVM学习——核函数SVM学习——核函数的一个紧子集(闭合且有界子集),SVM学习——核函数SVM学习——核函数上的对称函数,如果它在希尔伯特空间上的积分算子SVM学习——核函数满足:

                                                                                                          SVM学习——核函数

这里SVM学习——核函数指的是由满足条件SVM学习——核函数的所有函数SVM学习——核函数组成的空间。

SVM学习——核函数上扩展SVM学习——核函数到一个一致收敛的序列,该序列由SVM学习——核函数的特征函数SVM学习——核函数构成,归一化使得SVM学习——核函数,且所有特征值SVM学习——核函数 ,则核函数SVM学习——核函数可以被特征分解为:

                                                                                     SVM学习——核函数

        

         在核方法中有一个相当重要的、不得不说的概念(先打个标记):

定义2SVM学习——核函数是希尔伯特函数空间,其元素是某个抽象集合SVM学习——核函数上的实值或复值函数,如果对于任何SVM学习——核函数SVM学习——核函数作为SVM学习——核函数的函数都是SVM学习——核函数中的元素,而且对于任何SVM学习——核函数SVM学习——核函数取内积有: 
                                                                                     SVM学习——核函数

SVM学习——核函数称为为再生核希尔伯特空间(Reproducing Kernel Hilbert Space,RKHS);称SVM学习——核函数为再生核空间SVM学习——核函数再生核(简称RK)。

定理4:对于定义在域SVM学习——核函数上的每一个SVM学习——核函数SVM学习——核函数,存在一个定义在SVM学习——核函数上的函数的再生希尔伯特空间SVM学习——核函数,其中SVM学习——核函数是再生核。反过来,对于线性有界函数的任意希尔伯特空间,存在再生核这个命题也成立。

         当然也可以利用核函数来构造核函数,有时候这种构造会很有效的解决问题:

条件:设SVM学习——核函数SVM学习——核函数SVM学习——核函数上的核,SVM学习——核函数SVM学习——核函数SVM学习——核函数上的实值函数,SVM学习——核函数SVM学习——核函数SVM学习——核函数上的核,SVM学习——核函数是一个对称半正定矩阵,则下面的函数都是核:

         1、SVM学习——核函数;

         2、SVM学习——核函数;

         3、SVM学习——核函数;

         4、SVM学习——核函数;

         5、SVM学习——核函数;

         6、SVM学习——核函数

         核的选择对于支持向量机至关重要,选定核SVM学习——核函数后,原问题就变成了:

                                                                                                                  SVM学习——核函数

                                                                                                                 SVM学习——核函数

                                                                                                                            SVM学习——核函数

这个优化问题有最优解么?记得核要满足Mercer条件,即矩阵SVM学习——核函数在所有训练集上半正定,这说明这个优化是凸优化,于是这个条件保证了最大化间隔优化问题有唯一解,简直是天作之合啊,配合的天衣无缝;最后求的SVM学习——核函数SVM学习——核函数,那么从输入空间向特征空间隐式映射后得到的最大间隔超平面也就出来了:SVM学习——核函数,且有几何间隔SVM学习——核函数

         常用核函数总结如下:

         线性核函数:SVM学习——核函数

         多项式核函数:SVM学习——核函数

         高斯核函数:SVM学习——核函数

         SVM学习——核函数核函数:SVM学习——核函数

         下面这个链接收集了若干核函数:

             http://www.shamoxia.com/html/y2010/2292.html

        

          关于核方法的理论部分涉及到泛函分析、微积分等等,水比较深,我推荐一本书:《Kernel Methods for Pattern Analysis》(模式分析的核方法),作者是:John Shawe-Taylor和Nello Cristianini 。

 

相关文章: