首页 > 代码库 > 机器学习技法(3)--Kernel Support Vector Machine

机器学习技法(3)--Kernel Support Vector Machine

根据上一次推导出来的问题:

技术分享

从计算的角度来说,如果维度太大,向量z的内积求解起来非常的耗时耗力。

我们可以把这个过程分拆成两个步骤,先是一个x空间到z空间的转换Φ,再在z空间里做内积。如果能把这两个步骤合起来算得快一点的话就可以避开这个大计算量。

x和x‘转换了再做内积:

技术分享

这样的方法可以算得比较快,因为直接在x空间内计算就好了,不用在z空间计算:

技术分享

而这样的转换叫做kernel function:

技术分享

这个kernel在SVM里怎样应用呢?

技术分享

可见,kernel trick是一个避免了在高纬度空间进行计算的方法。根据上图的替代,得出了kernel SVM:

技术分享

而且,kernel SVM在做prediction的时候只需要SV就可以了。

下面介绍更多的其他形式的二项式转换的kernel:

技术分享

上面的放缩可以提炼成更加通用的形式:

技术分享

技术分享

只要稍微改一下kernel,点对我们要找的线的距离也会随之改变(distance/margin),SV也会跟着改变。所以kernel也要仔细选择。

从2次项kernel,往高次项kernel推导:

技术分享

不管是什么样的维度,kernel的好处都是适用的:

技术分享

kernel做1维转换的时候:

技术分享

这样简单的转换用原来的方法解决就好了。

那如果这个维度是无限大呢?

技术分享

上图证明了无限多维的kernel也是可行的。所以引出了Gaussian kernel:

技术分享

把它代入到SVM里:

技术分享

得到了中心在SV上的线性函数。所以高斯kernel的本质是:

技术分享

下面比较一下不同kernel的优缺点:

linear kernel

技术分享

polynomial kernel

技术分享

Gaussian kernel

技术分享

其他kernel的介绍:

技术分享

kernel代表了向量的内积,也就是向量的相似性。kernel必须具备两个特质,一个是对称性,另一个是半正定。

总结:

技术分享

 

机器学习技法(3)--Kernel Support Vector Machine