机器学习算法之SVM(3)核函数

来源:互联网 发布:mac如何删除系统软件 编辑:程序博客网 时间:2024/05/16 16:44

1、映射
想象一下,一个三维空间的立方体,一个顶点与x、y平面接触,其余点z都大于0。现在,想要把立方体的上下各四个点分开,只需要沿着从边的中间画一个超平面即可。

但是如果,将这些点直接投影到x、y平面上,那么刚刚还可以分开的两组各四个点就有可能犬牙交错,完全非线性不可分了。

把刚刚的过程逆过来,就是非线性不可分情况下的分类方法了:
这里写图片描述

支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开。

2、核函数

由SVM(1):

L(w,b,α)w=wm1αi(yixi)=0

那么:

f(x)=WTX+b=(m1αi(yiXi))TX+b=m1αiyi<(Xi)T,X>+b

将x替换为H(x),那么:

f(x)=WTX+b=(m1αi(yiXi))TX+b=m1αiyi<(H(Xi)),H(X)>+b

此时,一旦维数过高,那么就会产生维数灾难,对于计算而已实在是难以想象。

于是,核函数应运而生:

它可以让x 不用通过H()映射到高维空间再计算内积,而是直接在低维空间里计算。

三、几个核函数

1、线性核:

K<x,y>=(<x,xi>)d

已知问题是线性可分的,就可以直接使用线性核。

2、多项式核:

K<x,y>=(<x,xi>+c)d

3、高斯核:

K<x,y>=exp(||xxi||2δ2)

指数函数的泰勒展开式本身就是可以扩展到n维,高斯核只是参数换成了||xxi||2δ2

如果δ选的很大的话,高次特征的权重衰减的很快,实际上就很接近低维的空间了;如果delta选的过小,虽然可以将任意的非线性数据都可以分了,但是维数的增加就会造成严重的过拟合。

4、sigmod核

K<x,y>=tanh(K(<x,xi>)δ)

与权重点积后再经过一个激活函数,与神经网络有点相似吧?

其实这两者都基于感知机理论,

但是神经网络是个“黑匣子”,优化目标是基于经验风险最小化,易陷入局部最优;

支持向量机有严格的理论和数学基础,基于结构风险最小化原则,结果具有全局最优性。

0 0
原创粉丝点击