首页 > 编程知识 正文

svm具体实例,支持向量机的基本思想

时间:2023-05-05 12:07:49 阅读:39094 作者:2973

SVM-支持向量机原理详解与实践

前言去年,由于项目的需要,我们实际运用了SVM和ANN算法,即向量机和人工神经网络算法。 该功能主要实现项目实时拍摄图像(工业高速相机拍摄)的图像识别,虽然经历了曲折,但最终顺利完成了项目任务。 忙碌的一年里,利用休息时间好好整理总结了一下。 正文内容如下。 前面的部分是支持向量机原理的分析,然后

本文的原理部分讨论了支持向量机的原理,特别是拉格朗日对偶性、拉格朗日函数求解以及函数与核技术、软间隔与正则化等重要内容。

实践部分的目标是通过实践中遇到的问题、参与过程的讲解,让大家更深入地理解前半部分说明的SVM原理部分的内容。

SVM、机器学习、深度学习人工智能领域处于大数据,在人工智能时代,深度学习可谓火上浇油。 美国硅谷的大公司正在布局这一领域,而中国国内、腾讯、百度、阿里巴巴等知名企业也在这一领域领先。 2017年初,百度迎来了生动的小蚂蚁-原微软全球执行副总裁、人工智能领域的全球权威。 要知道百度有人工智能大牛Andrew Ng - tdst。 所有迹象都表明,人工智能是世界上继互联网之后的大公司,甚至是国家争夺的高地。

由于机器学习和深度学习具有很好的大数据预测能力,目前关于深度学习能否取代传统的机器学习算法,是否淘汰他们的争论不断,但另一方面,很多人认为深度学习是其他模式和算法在许多APP应用中,诸如逻辑回归、支持向量机表示等简单算法已经很好,深度学习会使问题变得复杂。

虽然深度学习可以应用于大部分领域,但正如我前面提到的,深度学习并不是所有问题的最佳方案。 如果你的工作中使用了机器学习算法,你可以试试传统的机器学习算法,也可以收到很好的效果。 目前有一些工作将不同领域的知识运用到深度学习中,但这并不能完全代替原来的东西。

上图显示了来自Eren Golge的机器学习算法的时间线。

像20世纪初的SVM一样,深度学习成为主流,但首先深度学习必须解决大数据的需求和复杂性问题。 那样的话,那会成为人们的第一选择。

SVM概述支持向量机(SVM )简单来说就是分类器,是两种分类器。

Vector :通俗地说就是点或数据。 Machine :即classifier,即分类器。 SVM是传统机器学习非常重要的分类算法之一,是一种通用的前馈网络类型,最初由Vladimir N.Vapnik和Alexey Ya.Chervonenkis于1963年提出,现版本(SVM 在Corinna Cortes和Vapnik深度学习(2012 )出现之前,SVM被认为是近十几年来性能最成功的算法。

SVM原理分析快速理解SVM的原理很多解释SVM的书籍都是从原理开始说明的,但是如果没有相关的知识基础的话很难理解。 以下示例可帮助您快速构建对SVM的认知:

给出训练样本,支持向量机建立超平面作为决策曲面,使正例和反例的隔离边界最大化。

对决策曲面的初步理解可以参考以下过程:

下图想象红色和蓝色的球是乒乓球台的桌球。 首先,目的是找出区分蓝色和红色球的曲线。 在那里,得到黑色的曲线。

图一。

2 )为了使黑色曲线与任意蓝色球体和红色球体的距离(即margin,如下所述)最大化,必须找到最佳曲线。 如下图所示,

图二。

3 )想象一下这些球不是扔在桌子上,而是扔在空中的情况。 我们需要把红球和蓝球分开。 那种情况下,需要曲面。 而且,该曲面还必须满足所有任意红色球和蓝色球之间的间隔最大化。 必须找到的这个曲面是我们稍后详细了解的最佳超平面。

4 )离这个曲面最近的红球和蓝球是支持向量。

线性可分离和线性不可分离线性可分离-线性可分离可以理解为在二维空间中可以用直线(一个函数)分离两种样本,分离的两种样本是线性可分离样本。 同样,在高维空间中,可以理解为可以由一个曲面(高维函数)分隔的两种样本。

如果不能线性分离,则可以理解为自变量和因变量的关系不是线性的。

/p>

实际上,线性可不分的情况更多,但是即使是非线性的样本通常也是通过高斯核函数将其映射到高维空间,在高维空间非线性的问题转化为线性可分的问题。

函数间隔和几何间隔 函数间隔 functional margin: 给定一个训练样本有:

函数间隔代表了特征是正例或是反例的确信度。

几何间隔 geometrical margin:

向量点到超平面的距离(其中后面详细介绍)

超平面分析与几何间隔详解

前面已经对SVM的原理有了一个大概的了解,并且简单介绍了函数间隔和几何间隔的概念,为了更好的理解线性可分模式下超平面,以下将进行深入的剖析推导过程,我们假设有训练样本集,期望的响应为,这里我们用类+1和类-1来代表,以表明样本是线性可分的。

决策曲面方程如下:

其中

x:输入向量,也就是样本集合中的向量;

w:是可调权值向量,每个向量可调权值;

T:转置,向量的转置;

b:偏置,超平面相对原点的偏移。

根据逻辑回归定义展开其实就是:

其中假设约定,于是将替换成b;则有:

而(T是转置)所以有:

 

这里假设模式线性可分:

线性可分模式下最优超平面的示意图如下:

如上图所示:

为分离边缘,即超平面和最近数据点的间隔。如果一个平面能使最大,则为最优超平面。灰色的方形点和原形点就是我们所说的支持向量。

假设和向量和偏置的最优解,则最优超平面的函数为:

相应的判别函数是:

以下是点x到最优超平面的二维示意图:

由上图可知r 为点x到最优超平面的距离:

那么代数距离是如何得到的呢?通过将带入

可以得到r,其中:

为x在最优超平面的正轴投影,因为在平面上

 

下面给出一种更为简单且直观的理解:

首先我们必须要知道Euclidean norm敏感的人生,即个性的蜜蜂敏感的人生(以下用w表示多维的向量):

再参考点到面的距离公式

也就是

类似的,扩展到多维的w向量也是一样,代数距离r类似于d,而

类似于 ,所以展开后也就是:

对比点平面的公式,以上的r也就多维度空间向量的到最优超平面的距离。

再看上图,如果x = 0 即原点则有

那么是如何得到的呢?很简单,如上面分析的

因为x = 0,它在原点,它与任意可调权值向量w相乘都等于0,于是有:

 

注意b为偏置,只是决定了决策曲面相对原点的偏离,结合上图我们可知道:

b > 0 则原点在最优超平面的正面;b < 0 则原点在最优超平面的负面;b = 0 则原点就在最优超平面上。

 

找到的这个最优超平面的参数和, 于是在样本向量集中, 有一对一定满足(因为是常数,它只是决定了决策曲面相对原点的偏离):

满足上式的点就是则为支持向量,这些点距离决策曲面也就时超平面最近,时最难区分的点。于是根据点到超平面的距离公式:

在超平面的正面和负面我们有任一支持向量满足代数距离:

如果让表示两个分离边缘的最优值,则根据上式有:

所以我们可以看出,如果要使得最大,则就必须使得最小,也就可以总结为:

最大化两个类之间的分离边缘等价于最小化权值向量w的hxdtk敏感的人生。

 

二次最优化

回头看我们前面提到的,给定一个训练集,我们的需求就是尝试找到一个决策边界使得几何间隔最大,回归到问题的本质那就是我们如何找到这个最大的几何间隔? 要想要最大化间隔(margin),正如上面提到的:

最大化两个类之间的分离边缘等价于最小化权值向量w的hxdtk敏感的人生

即:

其中: 也就是前面提到的函数间隔:,回顾几何间隔:,约束条件就是让函数间隔等于几何间隔。

或是将优化的问题转化为以下式子:

其中,就是将函数间隔和几何间隔联系起来。

我们发现以上两个式子都可以表示最大化间隔的优化问题,但是我们同时也发现无论上面哪个式子都是非凸的,并没有现成的可用的软件来解决这两种形式的优化问题。

于是一个行之有效的优化问题的形式被提出来,注意它是一个凸函数形式,如下:

以上的优化问题包含了一个凸二次优化对象并且线性可分,概括来说就是需找最优超平面的二次最优化,这个优化的问题可以用商业的凸二次规划代码来解。

凸函数:

在凸集中任取两个点连成一条直线,这条直线上的点仍然在这个集合内部,左边

凸函数局部最优就是全局最优,而右边的非凸函数的局部最优就不是全局最优了。

 

下面要具体介绍的拉格朗日对偶性,它可以引导我们到优化问题的对偶形式,因为对偶形式在高维空间有效的运用核(函数)来得到最优间隔分类器的方法中扮演了非常重要的角色。对偶形式让我们得到一个有效的算法来解决上述的优化问题并且相较通用的二次规划商业软件更好。

优化问题的对偶形式的方法简单来说就是通过Lagrange Duality变换到对偶变量 (dual variable)的优化问题之后,应用拉格朗日对偶性,通过求解对偶问题得到最优解,这就是线性可分条件下支持向量机的对偶算法,这样做的优点在于:

一是原问题的对偶问题往往更容易求解二者可以自然的引入核函数,进而推广到非线性分类问题。

接下篇SVM-支持向量机原理详解与实践之二


 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。