什么是核函数?如何理解?

个人理解,核函数的功能就是从低维度的空间向高维度空间转换的函数, 因为在低维空间不可以线性分类的问题到高维度空间就可以线性分类的。 其求法为   低维空间的点映射到高维空间的点后,两个点的内积 就是核函数。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以下为转帖(转至:https://www.jianshu.com/p/e07932472257?utm_campaign)

对于线性分类问题,线性分类向量机是一种非常有效的方法。但是,当分类变得不线性,线性分类向量机就会失效,我们就需要新的方法去解决,那就是非线性向量机,而在非线性向量机中,一种非常重要的方法就必须要知道,那就是核函数。

核函数运用广泛,不仅应用于支持向量机,而且在很多统计学问题上都扮演重要作用。

对于我本人来说,因为之前也涉猎过核函数,因此,在理解上可能相对快一点。
网上有很多对核函数的介绍,知乎上的介绍我印象很深,有兴趣的可以搜一下。
核函数的入门理解还是要从,将二维非线性问题转化为三维线性问题。

 

示例1.png

 

原本线性不可分的问题瞬间变成了线性分割面可以分类的问题。很神奇!
具体实现的手段就是增加维度。

举个简单例子

示例2.png

 

上图中,我们发现x1,x2是非线性分类,于是我们通过变化,z=phi(x),我们发现,z1,z2是线性分类问题。

 

![](http://latex.codecogs.com/svg.latex?w^T*z+b=0)
![](http://latex.codecogs.com/svg.latex?z=\phi(x))

 

 

这里的phi(x)便是映射函数。

讲到这里,会有一个基础想法就是,如果我们求出映射,那么我们就可以轻而易举将非线性分类问题转化为线性分类问题。

引入核函数

  • 核函数的定义

定义1.png

 

其实白话理解就是,假设存在映射函数phi(x),对初始空间所有的x,z,存在

 

![](http://latex.codecogs.com/svg.latex?K(x,z)=\phi(x)\cdot\,\phi(z))

 

那么,K(x,z)便是核函数。

  • 为什么要引入核函数

示例2.png

 

从上例可以看出,核函数一定,映射函数是不唯一的,而且当维度是无线大的时候,我们几乎无法求得映射函数,那么核函数的作用就在于此,核函数避免了映射函数的求解,叫做核技巧。

  • 核函数的特征

核函数是半正定矩阵。

  • 常用的核函数

1. 多项式核函数

 

![](http://latex.codecogs.com/svg.latex?K(x,z)=(x\cdot\,z+1)^p)

 

分类决策函数为

 

![](http://latex.codecogs.com/svg.latex?f(x)=sign(\sum_{i=1}^N\alpha_iy_i(x_i\cdot\,x+1)^p+b)

2. 高斯核函数

 

![](http://latex.codecogs.com/svg.latex?K(x,z)=exp(-\frac{||x-z||^2}{2\sigma^2}))

 

分类决策函数为:

 

![](http://latex.codecogs.com/svg.latex?f(x)=sign(\sum_{i=1}^N\alpha_iy_iexp(-\frac{||x-z||^2}{2\sigma^2})+b))

3. 字符串核函数

...太复杂,没看懂,有时间再看。

4. 线性核

我们的线性问题也可以用线性核来解决。
Linear kernel

 

![](http://latex.codecogs.com/svg.latex?K(xi,xj)=xi\cdot\,xj)

 

因此,我们得到的对偶问题就可以切换,

 

![](http://latex.codecogs.com/svg.latex?\min_{w,b}\iota=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot\,x_j)+\sum_{i-1}^N\alpha_i)

 

切换为

 

![](http://latex.codecogs.com/svg.latex?\min_{w,b}\iota=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)+\sum_{i-1}^N\alpha_i)

注:书中的SMO算法也是用线性核的凸二次规划对偶方程求解。

截至到此,SVM算法就算告一段落,关于SMO算法,接下来还需要手动撸代码,需要更深的理解,最近两周的努力没有白费,让我对支持向量机有了全新的认识,希望未来能有机会实践于具体项目。



作者:在做算法的巨巨
链接:https://www.jianshu.com/p/e07932472257
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值