机器学习(11)——非线性SVM

前言: 上一篇介绍了线性SVM还有一些尾巴没有处理,就是异常值的问题。

软间隔

线性可分SVM中要求数据必须是线性可分的,才可以找到分类的超平面,但是有的时候线性数据集中存在少量的异常点,由于这些异常点导致了数据集不能够线性划分;直白来讲就是:正常数据本身是线性可分的,但是由于存在异常点数据,导致数据集不能够线性可分。 我们需要对上一章的SVM算法模型就行改进,对于每个样本只需要引入松弛因子η,使得样本到超平面的函数距离放松了。当然松弛因子的引入是有成本的,可能会导致模型的分类错误。为此我们需要在松弛因子前面加入惩罚项系数,来约束松弛因子的过大行为。通常情况下,惩罚项系数需要调参得到。 异常值在模型中表示如图所示:

image.png

然后按照上一篇的公式进行计算就可以了,这里就不重新推导了,计算步骤分方法可以参见上一章 软间隔小结 (1)可以解决线性数据中携带异常点的分类模型构建的问题; (2).通过引入惩罚项系数(松弛因子),可以增加模型的泛化能力,即鲁棒性; (3)如果给定的惩罚项系数越小,表示在模型构建的时候,就允许存在越多的分类错误的样本,也就表示此时模型的准确率会比较低;如果惩罚项系数越大,表示在模型构建的时候,就越不允许存在分类错误的样本,也就表示此时模型的准确率会比较高。 不管是线性可分SⅥM还是加入惩罚系数后的软间隔线性可分SⅥM其实都要求数据本身是线性可分的,对于完全不可以线性可分的数据,这两种算法模型就没法解决这个问题了。类似于下面如图的数据:

多项式扩展

在线性回归中,我们可以通过多项式扩展将低维度的数据扩展成为高维度的数据,从而可以使用线性回归模型来解决问题。也就是说对于二维空间中不是线性可分的数据,将其映射到高维空间中后,变成了线性可分的数据。

例如:两维线性模型:

表现为一条直线,如下图所示:

对其进行多形式扩展为:

二维可以变为五维,函数可以写作为:

在图像上表示为:

多项式扩展主要的作用是把线性不可分的数据,通过向高维空间做一个映射,使得存在一个超平面对数据进行线性分割。

映射函数

结合多项式回归在处理非线性可分数据时候的作用,在SVM的线性不可分的数据上,如果将数据映射到高维空间中,那么数据就会变成线性可分的,从而就可以使用线性可分SVM模型或者软门隔线性可分SVM模型。

也就是说,对于线性不可分SVM模型来讲,重点在于低维特征数据到高维特征数据之间的映射。

问题:怎么找到这个映射呢?也就是按照什么规则进行映射呢?

例如:对于分布两个圆环上的二维空间向量,只需要加上半径为第三空间的值就可以把二维向量映射到三维空间了,如下图所示:

所以映射函数非常多,只要找到能把数据进行线性分开即可。

定义一个从低维特征空间到高维特征空间的映射函数Φ,非线性可分SVM的优化目标函数我们在前面已经给出:

可以看到的是,只需要将原来的低维空间中的两个向量的点积转换为高维空间中两个向量的点积即可。

思考如下:

这样一来问题就解决了吗?似乎是的:拿到非线性数据,就找一个映射,然后一股脑把原来的数据映射到新空间中,再做线性SVM即可。不过事实上没有这么简单!其实刚才的方法稍想一下就会发现有问题:在最初的例子里做了一个二阶多项式的转换,对一个二维空间做映射,选择的新空间是原始空间的所有一阶和二阶的组合,得到了5个维度;如果原始空间是三维,那么我们会得到9维的新空间;如果原始空间是n维,那么我们会得到一个n(n+3)/2维的新空间;这个数目是呈爆炸性增长的,这给计算带来了非常大的困难,而且如果遇到无穷维的情况,就根本无从计算空间恐怖的内积计算量。

能不能找到一个简单的方法解决上述的额问题呢?下面引出核函数

核函数

核函数在解决线性不可分问题的时候,采取的方式是:使用低维特征空间上的计算来避免在高维特征空间中向量內积的恐怖计算量;也就是说此时SVM模型可以应用在高维特征空间中数据可线性分割的优点,同时又避免了引入这个高维特征。

假设函数Φ是一个从低维特征空间到高维特征空间的一个映射,那么如果存在函数K(X,z),对于任意的低维特征向量X和z,都有

称函数K(x,z)为核函数( kernal function);

常用的核函数有线性核函数、多项式核函数和高斯核函数还有sigmoid核函数,比较常用的有多项式核函数和高斯核函数。其中多项式核函数公式如下:

其中γ 、r、d为超参

下面以一个简单的例子来介绍一下多项式核函数的思想,以便增加对核函数的理解:

设两个向量a,b:

映射到五维空间后得到:

image.png

则他们的内积:

我们发现原本的二维空间积也可以得到类似的式子:

可以发现两者之间非常相似,所以我们只要乘上一个相关的系数,就可以让这两个式子的值相等,这样不就将五维空间的一个内积转换为两维空间的内积的运算。也就是多项式函数中的系数。

高斯核函数公式如下:

image.png

由于高斯函数只有一个参数,且能处理包括多项核函数的空间映射,所以实际应用中还是高斯核函数用的比较多。

高斯核函数分割数据的效果如图所示:

image.png

关于高斯核函数的证明,具体思想就是证明出高斯函数可以表示为两个映射函数的乘积,具体证明可以参照:

https://blog.csdn.net/u010551462/article/details/41748807

核函数的总结:

(1)核函数可以自定义;核函数必须是正定核函数,即Gram矩阵是半正定矩阵;

(2)核函数的价值在于它虽然也是将特征进行从低维到高维的转换,但核函数它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算

(3).通过核函数,可以将非线性可分的数据转换为线性可分数据

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机视觉战队

线性分类原来是这么一回事,skr~

SVM是最常用的两个分类器之一,而另一个就是Softmax分类器,它的损失函数与SVM的损失函数不同。

1243
来自专栏奇点大数据

最新训练神经网络的五大算法

作者: Alberto Quesada 译者: KK4SBB 神经网络模型的每一类学习过程通常被归纳为一种训练算法。训练的算法有很多,它们的特点和性能各不相同...

4214
来自专栏红色石头的机器学习之路

Coursera吴恩达《神经网络与深度学习》课程笔记(5)-- 深层神经网络

上节课我们主要介绍了浅层神经网络。首先介绍神经网络的基本结构,包括输入层,隐藏层和输出层。然后以简单的2 layer NN为例,详细推导了其正向传播过程和反向传...

3000
来自专栏小小挖掘机

整理一份机器学习资料!

本系列主要根据吴恩达老师的课程、李航老师的统计学习方法以及自己平时的学习资料整理!在本文章中,有些地方写的十分简略,不过详细的介绍我都附上了相应的博客链接,大家...

1762
来自专栏新智元

【斯坦福CS229】一文横扫机器学习要点:监督学习、无监督学习、深度学习

给定一组与输出{y(1),...,y(m)}相关联的数据点{x(1),...,x(m)},我们希望构建一个能够根据x值预测y值的分类器。

781

调整渐变下降的学习率

在大多数监督性机器学习问题中,我们需要定义一个模型并基于训练数据集预估其参数。计算这些参数的广泛且容易使用的一个技术是通过梯度下降来最小化模型的误差。梯度下降通...

2538
来自专栏派树AI

机器学习笔记——Logistic回归算法

logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。

1640
来自专栏SIGAI学习与实践平台

深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读

从1989年LeCun提出第一个真正意义上的卷积神经网络到今天为止,它已经走过了29个年头。自2012年AlexNet网络出现之后,最近6年以来,卷积神经网络得...

1561
来自专栏机器之心

深度 | 像玩乐高一样拆解Faster R-CNN:详解目标检测的实现过程

45312
来自专栏老秦求学

Deep Learning Tutorial 李宏毅(一)深度学习介绍

大纲 深度学习介绍 深度学习训练的技巧 神经网络的变体 展望 深度学习介绍 深度学习介绍 深度学习属于机器学习的一种。介绍深度学习之前,我们先大致了解一下机器学...

46010

扫码关注云+社区

领取腾讯云代金券