kernel trick的原始想法

来源:互联网 发布:上海华腾软件怎么样 编辑:程序博客网 时间:2024/05/01 07:01

对偶SVM中依然包含了对升维后的向量做内积的操作。而对原来的数据集做升维就要消耗大量的时间。能不能采用一种技巧来节约存储空间和减小运算复杂度呢?


以二次非线性变换为例,如下图:


两个做内积就是以下的式子:

也就是说,可以先对原始的数据做内积,再进行一些很简单的代数运算得到和之前一样的结果。受此启发,就可以定义一个kernel函数,这个函数的作用就是将原来的数据集映射到一个高维空间里,并对高维空间里的向量做内积。而定义好这个函数以后,就可以不用计算升维的过程,直接得到升维后的向量内积。那么,对于Q的计算就十分方便了。


那么,在定义好kernel函数后,如何用已经定义好的kernel函数求超平面函数和b呢?直接带入就好啦


至此,我们将所有先升维再做内积的动作变成了直接使用kernel函数,大大简化了运算。

如果我们选取多项式函数作为kernel函数的话,一般选(a+bx'x)^q这种形式来运算,目的是为了好算。



0 0
原创粉丝点击