核 Kernels
在上一讲中,我们注意到对测试集分类的结果只受<xi,x>(即训练数据与测试数据的内积)的影响。显然在处理某些问题时我们不只需要x自身,还需要x^2、x^3等属性,此时我们可以定义函数φ表示由x到自身所需的属性的映射,如下
为了进一步扩展SVM的使用范围,我们可以将上一讲内容中的x以φ(x)代替,同时定义相应的核为此时我们便可用核函数K代替SVM算法之前使用的<x,z>。使用函数替换后,算法的时间复杂度可以大大减少,见下例,我们假设核模型为
因此我们可以将其变形为如下形式
假设n=3,则通过φ(x)计算的时间复杂度为O(n^2),而通过核模型计算的时间复杂度为O(n)。可以看出,当所需模型维数越高,核模型将节省更多的计算资源。
我们可以想到φ(x)和φ(z)的一种性质,当这两个向量比较接近时,其内积的计算结果越大,当这两个向量正交时,其内积的计算结果越小。因此我们可以将k函数看作对φ(x)和φ(z)或者x和z之间相似性的测量。因此,我们可以选择K函数为