您的位置:首页 > 其它

学习笔记——支持向量机svm(3)kernel trick(核函数)

2016-01-10 13:55 369 查看

回顾

上一篇讲到了svm的对偶问题:



将svm的算法维度(w维度)由vc维变成了跟数据量N,但是这样真的就完全简化了么?在我们求Q这个矩阵时,需要先将x转化为z,然后再做内积,复杂度是d^2。在这一篇我们就要介绍一种可以简化这个步骤的方法~传说中的核函数

核函数

引入概念

假设我们要做的x到z的转换是一个二次转换:



然后我们做一下内积:



化简化简,突然发现先转换为z空间再做内积的步骤可以直接转化为关于x的内积了。一下子将复杂度减少成了d~好神奇!

写成公式表示过程:


直接用一步来代替了原来的两步。

应用场景



在计算Q矩阵时,计算参数b时,还有进行test的时候都可以用到核函数来进行提速。

在这里我们也彻底摆脱了对于数据vc维的依赖,完全只是依赖输入数据的维度:


最后问题变成了这样:



核函数变形

我们可以把之前的二次核函数做一些变形:



这样变换之后会对应不一样的内积结果,同样的也对应了不同的几何性质:



这里可以看出用不同的γ,对应出不同的边界和支持向量

这个问题进一步扩展到更高次变换上:



Q对应了Q次的空间上的一种变换,当然Q越大,表述能力越强,但是也要小心更容易overfit。

所以这里可以想到最简单的核函数,线性核函数:



线性first是很好的习惯,有可能效果非常好:)

超级核函数

我们会想,有没有存在一种核函数,他可以表述无限大空间的变换呢?开心的告诉你~有的:



利用一个泰勒展开,就可以拆成一个无线维度的转换了,当然这个东西怎么被想出来的我也不知道~只能orz~

更概括的讲:



我们把这个种核函数叫做高斯核函数

当使用高斯核函数时:



预测结果是多个高斯函数的再支持向量上的线性组合。又被成为RBF kernel。

不同参数的高斯核函数:



当γ过大时会产生很强的overfit,所以就算无限维度核函数svm依然不能摆脱过拟合的大坑~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: