Kernel Tricks

  这里将介绍有关核函数的问题,将从SVM开始讲起,但是远远不会局限在SVM上面。任何学习算法的特征转换都可以使用这一方法。

特征转化(feature transformation

 

  特征转换就是说,在低维空间里找不到一个超平面将数据分开,于是将数据映射到高维空间上,以便找到一个超平面将数据分开。

  现在的问题是,直接将数据映射到高维空间,会导致计算量太大(维度灾难)。为了减小计算量,必须找一个好的方法避免直接计算高维数据。

 

  回忆我们要计算的牵涉到高维矩阵运算的式子:实际上,每个z就是对x进行变换,所以我们假设

  那么上面Z相乘就是:

  假设这是一个二阶变换:

  计算下来,可以得到:

  可以发现,我们只需要计算原始数据的d维的矩阵乘法就可以了!

   这样的话,就可以将原先的所有的z矩阵乘法全部变成x矩阵乘法了,大大简化了计算。

一般的多项式核函数

  一般二阶核函数:

      一般二阶核函数很常用!

  关于的选择对决策边界的影响,很难说,需要慎重选择。

  更一般的多阶核函数:

         Linear first!

 

  当的时候,称之为线性核函数。

  无穷维度的核函数——高斯核函数

  将该式泰勒展开,其实就是一个无穷维度的多项式核函数!有时,它又被称为径向基核函数(radius basis function)。

  到这里,我们通过特征转换,得到了有效率的方法(能保证不错的宽边界):

  容易计算的核函数与数量不多的支持向量

  但是,还是有要注意的地方,那就是的选择:

  当变大的时候,高斯函数变得很尖。通过式子,可以计算得到,最终核函数只会认出自己:

 

  最终发生了overfitting.所以,SVM依旧会发生overfitting(虽然有宽边界的保证)

关于线性核函数,多项式核函数,高斯核函数的比较:

  这里就不仔细比较了,反正线性肯定是最简单的,但有局限性。多项式可能能力强大,但是选择参数很困难。最后就是高斯核函数,物理意义丢失了(w),但是参数选择相对容易,同时可能发生overfitting,使用的时候要注意!

 

有关合法的核函数

  有一个叫做Mercer’s condition,来判断核函数的合法性:

  1.symetric

  2.必须是一个半正定的矩阵

  但其实这还是比较难判断(半正定),所以这里有一些其他方法。

半正定矩阵

定义

性质

构建合法的核函数

  第一部分

  第二部分

  更多内容,见MIT handout, Red above

  待补充:关于作业中的某个选项

 

posted @ 2015-01-12 00:11  jszhujun2010  阅读(328)  评论(0)    收藏  举报