支持向量机SVM原理

这篇具有很好参考价值的文章主要介绍了支持向量机SVM原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

支持向量机SVM原理

SVM原理

从线性分类器说起

SVM的目标是最大化分类间隔

转化为对偶问题求解


支持向量机SVM原理

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

【数之道】支持向量机SVM是什么,八分钟直觉理解其本质_哔哩哔哩_bilibili 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

 

SVM是由Vapnik等人于1995年提出的,在之后的20多年里它都是最具影响力的机器学习算法之一。SVM不仅可以用于分类问题,还可以用于回归问题。在深度学习出现之前,基于高斯核的SVM在很多问题上一度取得了最好的效果。

SVM也因为具有较好的泛化性能,适合小样本等优点,被广泛应用于各种实际问题。

为了更好地理解下文,我们首先由简至繁地梳理一下支持向量机学习方法:

  • 线性可分SVM:当训练数据线性可分时,通过硬间隔(hard margin,什么是硬、软间隔下面会讲)最大化得到一个线性分类器,即硬间隔SVM。

  • 线性SVM:当训练数据非线性可分,但是可以近似线性可分时,通过软间隔(soft margin)最大化也可以得到一个线性分类器,即软间隔SVM。

  • 非线性SVM:当训练数据线性不可分时,通过使用核技巧(kernel trick)和软间隔最大化,可以得到非线性SVM。

SVM原理

SVM原理的数学推导过程冗长而复杂,后文我们一一拆解,首先简要总结如下:

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习

 

  • 简单的SVM可以从线性分类器推导出来,根据最大化分类间隔的优化目标,线性可分问题中的SVM是可以求解的。

  • SVM优化问题是一个凸优化问题,并且满足Slater条件,因此强对偶成立,通过拉格朗日对偶可以将其转化成对偶问题求解。

  • 通过加入松弛变量和惩罚因子,可以将SVM推广到线性不可分的情况,具体做法是对违反约束条件的训练样本进行惩罚,得到线性不可分问题的SVM优化训练。

  • 通过核函数,可以将支持向量机转化成非线性模型,此时的对偶问题也是凸优化问题。

  • 支持向量机的求解,常用方法是SMO算法,它是一种分治法,每次选择两个变量进行优化。两变量优化问题是一个带等式和不等式约束条件的二次函数极值问题,可以求出解析解。并且这个问题也是凸优化问题,优化变量的选择通过KKT条件来确定。

从线性分类器说起

SVM起源于线性分类器,如果不使用非线性核函数,SVM就是线性分类器。线性分类器是维空间中的分类超平面,它将空间切分成两部分,分别对应于正样本和负样本所在的区域。对于二维空间,线性分类器是一条直线;对于三维空间,它是一个平面;超平面是在更高维空间的推广。

 支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

SVM的目标是最大化分类间隔

一般情况下,给定一组训练样本可以得到不止一个可行的线性分类器,如下图的例子。那么在所有可行的线性分类器中,什么样的分类器是好的呢?为了得到好的泛化性能,分类平面应该不偏向于任何一类,并且离两个类的样本都尽可能的远。这样,落在直线两边这个间隔内的样本都能被正确分类。这种最大化分类间隔的目标就是SVM的基本思想。SVM算法认为下图中的分类器A在性能上优于分类器B,其依据是A的分类间隔比B要大

 支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习

SVM的目标是寻找一个分类超平面,不仅能正确的分类每一个样本,且要使得每一类样本中距离超平面最近的样本到超平面的距离尽可能的远。根据解析几何中点到平面的距离公式,每个样本离分类超平面的距离为: 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

支持向量机SVM原理,2023 AI,支持向量机,算法,机器学习 

上式即支持向量机SVM的基本型,或者说是线性SVM最优化问题的数学描述。这是一个凸二次规划(convex quadratic programming)问题。

接下来,就要讨论如何利用最优化技术求解上述公式描述的问题。相信到这里的SVM并不难,不过接下来就会出现一些令人望而生畏的数学术语了,凸二次优化、拉格朗日对偶、KKT条件、Slater条件等等

 

转化为对偶问题求解

这里我们先复习一下求解最优化问题的方法,根据待优化问题是否有约束,以及约束的类型,可以把求解方式分为以下三种:

  1. 无约束优化问题:直接求导、最速下降法、共轭梯度法、牛顿法等;

  2. 等式约束优化问题:拉格朗日(Lagrange)乘子法;

  3. 不等式约束优化问题:KKT条件(Karush–Kuhn–Tucker这三个人名字的缩写)。

大家应该发现了,SVM的优化问题就是带有大量不等式约束的优化问题,属于最不容易求解的哪一类,那么如何求解呢?先说答案,可以用拉格朗日对偶将原问题(primal problem)转化成对偶问题(dual problem)来求解。之所以可以这么求解,还需要满足一些条件。

  1. 首先得是可以转化:因为SVM的优化问题问题是凸优化问题,且满足Slater条件,因此可以转为对偶问题。

  • 是凸优化问题,意味着可以用通行的数值优化算法得到全局最优解。

  • 凸规划指的是目标函数为凸函数,不等式约束函数也为凸函数,等式约束函数是仿射的(理解成是线性的也行)。

  • 满足Slater条件,意味着可以用拉格朗日对偶将其转化为对偶问题求解,对偶问题的求解难度远小于求解原问题(求解更高效)。

  • Slater条件告诉我们,在什么样的条件下凸优化问题与其Lagrange对偶问题是强对偶的,也就是什么条件下我们可以将原问题进行转化。所幸的是,这个条件告诉我们,一般情况下强对偶是成立的,因为该条件很弱。

  • Slater条件是指,如果满足原问题是凸优化问题,并且至少存在绝对一个绝对可行点,什么叫绝对可行点,就是一个可以让所有不等式约束都不取等号的可行点,那么就具有强对偶性。

  1. 其次是转化的条件:KKT条件是不等式约束的最优解的必要条件(对于凸规划,KKT条件就是充要条件了)。KKT条件将拉格朗日乘子法所处理的等式约束优化问题推广至不等式。在实际应用上,KKT条件(方程组)一般不存在解析解,有数值计算可供选用。

  2. 最后是转化的方法:拉格朗日乘子法的基本思想是把原始目标函数约束条件转化为新的目标函数的一部分,从而使有约束优化问题变成我们习惯的无约束优化问题。

总结一下,待解的SVM优化原问题是凸优化,且满足Slater条件,因此加上KKT条件,就可以用拉格朗日乘子法把它转化为对偶问题求解了。文章来源地址https://www.toymoban.com/news/detail-669409.html

到了这里,关于支持向量机SVM原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习——支持向量机SVM

    支持向量机(SVM)是一种二类分类模型,其基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大,间隔最大使它有别于感知机,支持向量机也可通过核技巧使它成为非线性分类器。支持向量机的学习策略是间隔最大化,可将其转化为一个求解凸二次

    2024年01月17日
    浏览(35)
  • SVM(支持向量机)-机器学习

    支持向量机(Support Vector Machine,SVM) 是一种用于分类和回归分析的监督学习算法 。它属于机器学习中的一类强大而灵活的模型,广泛应用于模式识别、图像分类、自然语言处理等领域。 基本原理: SVM的基本原理是通过找到能够有效分隔不同类别的超平面来进行分类。在二维

    2024年02月03日
    浏览(31)
  • 机器学习-支持向量机SVM

    在本练习中,我们将使用支持向量机(SVM)来构建垃圾邮件分类器。 我们将从一些简单的2D数据集开始使用SVM来查看它们的工作原理。 然后,我们将对一组原始电子邮件进行一些预处理工作,并使用SVM在处理的电子邮件上构建分类器,以确定它们是否为垃圾邮件。 我们要做

    2024年02月12日
    浏览(32)
  • 机器学习(六)支持向量机(SVM)

    目录 1.间隔与支持向量 1.1线性可分 1.2支持向量 1.3 最大间隔超平面 2.对偶问题 2.1拉格朗日乘子法 2.2 SMO算法 2.3SMO算法代码实现 3.核函数 4. SVM实例(手写体数字识别) 5.实验总结 支持向量机(SVM) 是有监督学习中最有影响力的机器学习算法之一,一般用于解决二分类问题(

    2024年02月09日
    浏览(28)
  • 【机器学习】SVM支持向量机模型

     本站原创文章,转载请说明来自 《老饼讲解-机器学习》 ml.bbbdata.com 目录 一. SVM的目标和思想    1.1 SVM硬间隔模型的原始目的 1.2 SVM的直接目标 1.3 什么是支持向量  二. SVM的支持平面的表示方式 2.1 支持面表示方式的初步思路 2.2 初步思路的缺陷与改进 2.3 支持面的最终表示

    2023年04月23日
    浏览(51)
  • 【机器学习】支持向量机SVM入门

    相较于之前学习的线性回归和神经网络,支持向量机(Supprot Vector Machine,简称SVM)在拟合复杂的非线性方程的时候拥有更出色的能力,该算法也是十分经典的算法之一。接下来我们需要学习这种算法 首先我们回顾逻辑回归中的经典假设函数,如下图: 对于任意一个实例 (

    2024年02月15日
    浏览(30)
  • 机器学习:基于支持向量机(SVM)进行人脸识别预测

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 专栏案例:

    2024年01月23日
    浏览(31)
  • 第29步 机器学习分类实战:支持向量机(SVM)建模

    支持向量机(SVM)建模。 先复习一下参数(传送门),需要调整的参数有: ① kernel:{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’},默认为’rbf’。使用的核函数,必须是“linear”,“poly”,“rbf”,“sigmoid”,“precomputed”或者“callable”中的一个。 ② c:浮点

    2024年02月02日
    浏览(42)
  • 机器学习实战:Python基于支持向量机SVM-RFE进行分类预测(三)

    1.1 支持向量机的介绍 支持向量机( Support Vector Machine,SVM )是一种监督学习的分类算法。它的基本思想是找到一个能够最好地将不同类别的数据分开的超平面,同时最大化分类器的边际(margin)。SVM的训练目标是最大化间隔(margin),即支持向量到超平面的距离。 具体地,

    2024年02月05日
    浏览(42)
  • 传统机器学习(七)支持向量机(1)超平面、SVM硬间隔、软间隔模型和损失函数

    1.1.1 超平面公式 我们对“平面”概念的理解,一般是定义在三维空间中的,如下: 假设M和M0为平面上的两点,n为该平面的法向量,那么,通过下图可以容易推导出三维空间中的平面方程: A x + B y + C z + D = 0 Ax + By+Cz+D=0 A x + B y + C z + D = 0 我们把A、B、C写作w,把x、y、z写作x,

    2023年04月27日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包