美文网首页工作生活
09-支持向量机(四)线性不可分支持向量机与核函数

09-支持向量机(四)线性不可分支持向量机与核函数

作者: kang_james | 来源:发表于2019-06-30 18:24 被阅读0次

1、核函数的引入

上一节我们讲到线性不可分的低维特征数据,我们可以将其映射到高维,就能线性可分。现在我们将它运用到我们的SVM的算法上。回顾线性可分SVM的优化目标函数:

注意到上式低维特征仅仅以内积xi∙xj的形式出现,如果我们定义一个低维特征空间到高维特征空间的映射ϕ(比如上一节2维到5维的映射),将所有特征映射到一个更高的维度,让数据线性可分,我们就可以继续按前两篇的方法来优化目标函数,求出分离超平面和分类决策函数了。也就是说现在的SVM的优化目标函数变成: 可以看到,和线性可分SVM的优化目标函数的区别仅仅是将内积xi∙xj替换为ϕ(xi)∙ϕ(xj)。
看起来似乎这样我们就已经完美解决了线性不可分SVM的问题了,但是事实是不是这样呢?我们看看,假如是一个2维特征的数据,我们可以将其映射到5维来做特征的内积,如果原始空间是三维,可以映射到到19维空间,似乎还可以处理。但是如果我们的低维特征是100个维度,1000个维度呢?那么我们要将其映射到超级高的维度来计算特征的内积。这时候映射成的高维维度是爆炸性增长的,这个计算量实在是太大了,而且如果遇到无穷维的情况,就根本无从计算了。
怎么办?似乎我们刚提出了一种好的解决线性不可分的办法,接着就把自己否决了。

好吧,核函数该隆重出场了!

假设ϕ是一个从低维的输入空间χ(欧式空间的子集或者离散集合)到高维的希尔伯特空间的H映射。那么如果存在函数K(x,z),对于任意x,z∈χ,都有: 那么我们就称K(x,z)为核函数。

从上面的式子乍一看还是不明白核函数怎么帮我们解决线性不可分的问题的。仔细观察上式可以发现,K(x,z)的计算是在低维特征空间来计算的,它避免了在刚才我们提到了在高维维度空间计算内积的恐怖计算量。也就是说,我们可以好好享受在高维特征空间线性可分的红利,却避免了高维特征空间恐怖的内积计算量。
至此,我们总结下线性不可分时核函数的引入过程:

我们遇到线性不可分的样例时,常用做法是把样例特征映射到高维空间中去(如上一节的多项式回归)但是遇到线性不可分的样例,一律映射到高维空间,那么这个维度大小是会高到令人恐怖的。此时,核函数就体现出它的价值了,核函数的价值在于它虽然也是将特征进行从低维到高维的转换,但核函数好在它在低维上进行计算,而将实质上的分类效果(利用了内积)表现在了高维上,这样避免了直接在高维空间中的复杂计算,真正解决了SVM线性不可分的问题。

2、核函数

2.1线性核函数

线性核函数(Linear Kernel)其实就是我们前几篇的线性可分SVM,表达式为:



线性可分SVM我们可以和线性不可分SVM归为一类,区别仅仅在于线性可分SVM用的是线性核函数。

2.2多项式核函数

多项式核函数(Polynomial Kernel)是线性不可分SVM常用的核函数之一,表达式为:



其中,γ,r,d都需要自己调参定义。

2.3高斯核函数

高斯核函数(Gaussian Kernel),在SVM中也称为径向基核函数(Radial Basis Function,RBF),它是非线性分类SVM最主流的核函数。libsvm默认的核函数就是它,表达式为:

其中,γ大于0,需要自己调参定义。

2.4sigmoid核函数

Sigmoid核函数(Sigmoid Kernel)也是线性不可分SVM常用的核函数之一,表达式为:

K(x,z) = sigmoid(λx•z + r)

其中,λ,r都需要自己调参定义。

3. 分类SVM的算法小结

引入了核函数后,我们的SVM算法才算是比较完整了。现在我们对分类SVM的算法过程做一个总结。不再区别是否线性可分。输入是m个样本(x1,y1),(x2,y2),...,(xm,ym),,其中x为n维特征向量。y为二元输出,值为1,或者-1.

输出是分离超平面的参数w∗和b∗和分类决策函数。

算法过程如下:

1)选择适当的核函数K(x,z)和一个惩罚系数C>0, 构造约束优化问题

2)用SMO算法求出上式最小时对应的α向量的值α*向量

  1. 得到

    此处可以不直接显式的计算w*。

  2. 找出所有的S个支持向量,即满足0<αs<C对应的样本(xs,ys),通过 计算出每个支持向量(xs,ys)对应的bs,计算出这些 所有的bs对应的平均值即为最终的

    这样最终的分类超平面为: 最终的分类决策函数为:

    至此,我们的分类SVM算是总结完毕,唯一的漏网之鱼是SMO算法,这个算法关系到,我们如何求出优化函数极小化时候的α∗,进而求出w,b,我们将在下一篇讨论这个问题

相关文章

  • 支持向量机

    支持向量机 线性可分支持向量机与硬间隔最大化 线性支持向量机与软间隔最大化 非线性支持向量机与核函数 序列最小最优...

  • SVM支持向量机(三)

    非线性支持向量机与核函数 对解线性分类问题,线性分类支持向量机是一种非常有效的方法。但是有些分类问题的非线性的。其...

  • 09-支持向量机(四)线性不可分支持向量机与核函数

    1、核函数的引入 上一节我们讲到线性不可分的低维特征数据,我们可以将其映射到高维,就能线性可分。现在我们将它运用到...

  • 核函数与支持向量机入门

    原文传送门:核函数与支持向量机入门 理解支持向量机(Support Vector Machine, SVM)的角度...

  • 支持向量机-QA

    Q1:SVM的类型有哪些? 三类:线性可分支持向量机、线性支持向量机、非线性支持向量机线性可分支持向量机:当训练数...

  • SVM支持向量机

    线性支持向量机# 径向支持向量机# 最优参数##

  • “核函数”的理解

    01 支持向量机核函数的思想 支持向量机通过某非线性变换 φ( x) ,将输入空间映射到高维特征空间。特征空间的维...

  • 支持向量机(SVM)--3

    上次说到支持向量机处理线性可分的情况,这次让我们一起学习一下支持向量机处理非线性的情况,通过引进核函数将输入空间映...

  • 支持向量机SVM(3)核函数、非线性支持向量机

    前面已经分别介绍了基于硬间隔最大化的线性可分支持向量机、基于软间隔最大化的线性支持向量机,这次来总结下使用核函数来...

  • 支持向量机—从推导到python手写

    笔者比较懒能截图的地方都截图了。 1 支持向量机分类 支持向量机分为三类:(1)线性可分支持向量机,样本线性可分,...

网友评论

    本文标题:09-支持向量机(四)线性不可分支持向量机与核函数

    本文链接:https://www.haomeiwen.com/subject/uirbcctx.html