支持向量机SVM原理

news2025/1/10 22:39:39

目录

支持向量机SVM原理

SVM原理

从线性分类器说起

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

转化为对偶问题求解


支持向量机SVM原理

 

 

 

 

 

 

 

 

 

 

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

 

 

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

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

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

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

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

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

SVM原理

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

 

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

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

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

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

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

从线性分类器说起

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

 

 

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

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

 

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

 

 

上式即支持向量机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条件,就可以用拉格朗日乘子法把它转化为对偶问题求解了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/923394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win11录屏,自带录屏,无需下载第三方软件

1.按win键,输入“截图”,打开截图工具 2.选择录屏功能 3.新建录制 4.选择录制区域录制就可以了

nginx会话保持

ip_hash:通过IP保持会话 作用: nginx通过后端服务器地址将请求定向的转发到服务器上。 将客户端的IP地址通过哈希算法加密成一个数值 如果后端有多个服务器,第一次请求到服务器A, 并在务器登录成功,那么再登录B服务器就要重新…

java-红黑树

节点内部存储 红黑树规则 或者: 红黑树添加节点规则: 添加节点默认是红色的(效率高) 红黑树示例 注:红黑树增删改查性能都很好

【Vue框架】 router和route是什么关系

前言 之前没太注意,写着写着突然发现它们貌似不太一样,记录以下,回顾的看总结就好。 1、总结✨ route:当前激活路由的对象,用于访问和操作当前路由的信息 router:管理多个route的对象,整个应…

[HarekazeCTF2019]Easy Notes-代码审计

文章目录 [HarekazeCTF2019]Easy Notes-代码审计 [HarekazeCTF2019]Easy Notes-代码审计 登录之后有几个功能点,可以添加节点,然后使用Export导出 我们查看源码, 我们发现想要拿到flag的条件时$_SESSION[admin]true 如果我们能够控制sessio…

具备这7 个功能将让你的网站聊天机器人更加出色

对于您和您的客户来说,客户支持体验是最重要的。这里有 7个强大的功能可以完善和增强您的网站聊天机器人。 在网站上使用聊天机器人可能是您可以为客户支持团队做出的最佳决策之一。然而,在2023 年互联网发达的今天,您的网站聊天机器人可以实…

如何为开源项目做出贡献?

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

Pytorch学习:常见数据集torchvision.datasets及数据集的使用DataLoader

文章目录 1. Datasets常见数据集1.1 CIFAR101.2 Fashion-MNIST1.3 ImageNet 2. DataLoader2.1 shuffle2.2 drop_last 1. Datasets常见数据集 Torchvision在 torchvision.datasets 模块中提供了许多内置的数据集,以及用于构建自己的数据集的实用程序类。 官方文档&a…

基于象群算法优化的BP神经网络(预测应用) - 附代码

基于象群算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于象群算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.象群优化BP神经网络2.1 BP神经网络参数设置2.2 象群算法应用 4.测试结果:5.Matlab代码 摘要…

白酒行业半年报:舍得酒业营收净利碾压水井坊

次高端川酒下半场,谁是A股“川酒老三”? “川酒六朵金花”中的次高端白酒代表:水井坊(600779.SH)、舍得酒业(600702.SH)于近日公布了2023年半年报,其业绩呈现不同趋势。 「不二研究」据其半年报发现:今年上半年&…

基于函数计算一键部署 Stable Diffusion

一、资源方式介绍 本实验支持开通免费试用、个人账户资源两种实验资源方式。 建议首次开通函数计算用户选择开通免费试用。 函数计算老用户选择个人账户资源。 在实验开始前,请您选择其中一种实验资源,单击确认开启实验。 二、选择开通免费试用&…

迅为RK3568开发板GPIO之外接模块

在迅为RK3568开发板上有一组GPIO,可以用来外接各种外设模块,从面实现一系列好玩的功能,一起来看看各个模块合集吧 RFID模块: 工作电流:13—20mA/直流3.3V 空闲电流:10-13mA/直流3.3V 休眠电流:…

badgerdb中的logfile

logfile的作用 logfile是一种日志结构,用来记录日志,lsm tree是日志追加写的模式,在bagerdb中,vlog和sst在磁盘中的存放方式都是使用的logfile结构 // memTable structure stores a skiplist and a corresponding WAL. Writes t…

【MySQL】MySQL中MyIsAM和InnoDB存储引擎的区别(面试必考!!)

目录 MyIsAM和InnoDB的区别 区别主要在于: 事务支持: 并发控制: 外键支持: 数据缓存和索引: 这么说可能不太好理解,让我们展开聊聊 数据一致性和恢复: InnoDB肯定是比myIsam的功能强大的&#xff0…

GNU make系列之介绍Makefile

一.欢迎来到我的酒馆 在本章节介绍Makefile。 目录 一.欢迎来到我的酒馆二.GNU make 预览三.一个简单的Makefile四.make程序如何处理Makefile文件 二.GNU make 预览 2.1 GNU make工具会自动决定哪些程序需要被重新编译,并且执行相应的命令来重新编译程序。在本系列博…

面试官:策略模式有使用过吗?我:没有......

面试官:策略模式有使用过吗?我:没有… 何为策略模式? 比如在业务逻辑或程序设计中比如要实现某个功能,有多种方案可供我们选择。比如要压缩一个文件,我们既可以选择 ZIP 算法,也可以选择 GZIP…

[Makefile] 预宏定义的使用

main.c 文件如下&#xff1a; #include <stdio.h> int main() {printf("soft infomation\n");//以下信息均在gcc时已预定义printf("soft_ver:\t%s\n",__VER__);printf("author:\t\t%s\n",__AUTHOR__);printf("sn_num:\t\t%d\n"…

递归算法应用(Python版)

文章目录 递归递归定义递归调用的实现递归应用数列求和任意进制转换汉诺塔探索迷宫找零兑换-递归找零兑换-动态规划 递归可视化简单螺旋图分形树&#xff1a;自相似递归图像谢尔宾斯基三角 分治策略优化问题和贪心策略 递归 递归定义 递归是一种解决问题的方法&#xff0c;其精…

Java后端开发面试题——消息中间篇

RabbitMQ-如何保证消息不丢失 交换机持久化&#xff1a; Bean public DirectExchange simpleExchange(){// 三个参数&#xff1a;交换机名称、是否持久化、当没有queue与其绑定时是否自动删除 return new DirectExchange("simple.direct", true, false); }队列持久化…

九、pikachu之敏感信息泄露

文章目录 1、敏感信息泄露概述2、实战 1、敏感信息泄露概述 由于后台人员的疏忽或者不当的设计&#xff0c;导致不应该被前端用户看到的数据被轻易的访问到。 比如&#xff1a; 通过访问url下的目录&#xff0c;可以直接列出目录下的文件列表;输入错误的url参数后报错信息里面…