kernel trick的原始想法

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


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


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

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


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


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

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值