简述SVM

news2024/11/18 1:29:58

概述

SVM,即支持向量机(Support Vector Machine),是一种常见的监督学习算法,用于分类和回归问题。它是一种基于统计学习理论和结构风险最小化原则的机器学习方法。

SVM的主要思想是在特征空间中找到一个最优的超平面,将不同类别的样本点分隔开来。这个超平面可以被视为一个决策边界,用于对新的样本进行分类。SVM的目标是找到具有最大间隔(下图中margin的一半)的超平面,以实现更好的泛化性能。

                                

超平面公式怎么推导

假设x0为超平面上的一点,w为超平面的法向量,对于超平面上任意的一点x都存在

                                                        w·(x-x0) = w·x - w·x0 = 0

令-w·x0 = b,则变为

                                                                w·x + b = 0

函数距离和几何距离

在超平面w·x + b = 0确定的情况下,|w·x + b|可以相对地表示点x距离超平面的远近,对于二分类问题,如果w·x + b > 0,则x的类别被判定为1,否则判定为-1。如果y(w·x + b) > 0,则x的分类正确,并且y(w·x + b)的值越大,分类结果的确信度越大。

所以样本点(xi,yi)与超平面(w,b)之间的函数距离定义为d = yi(w·xi + b)

但是该定义存在问题,即w和b同时缩放k倍后,超平面没有变化(比如w·x + b = 0和2w·x + 2b = 0是同一个超平面),但是函数距离却变化了,于是我们需要求几何距离。

几何距离可以通过面与面的距离公式来算,因为离超平面最近的样本点其实可以看作是处在一个和超平面平行的面上,所以我们要求的其实是面w·x + b = 1和面w·x + b = 0的距离,由距离公式可得d = 1/||w||。

于是我们得到

\left\{\begin{matrix}max \frac{1}{||w||} & \\s.t. y_{i}(w^{T}x_{i} + b) - 1 >= 0,i = 1,2,...,n & \end{matrix}\right.

拉格朗日乘子法

再进行下一步之前,我们先来了解一下拉格朗日乘子法。

拉格朗日乘子法是一种在最优化的问题中寻找多元函数在其变量受到一个或多个条件的约束时的求局部极值的方法。这种方法可以将一个有n个变量和k个约束条件的最优化问题转换为一个解有n + k个变量的方程组的解的问题。

举个例子:求双曲线xy = 3上离原点最近的点。

首先根据问题得出min f(x,y) = x^2 + y^2        s.t. xy = 3

如下图

                                        

可以看出,xy = 3和f(x,y) = x^2 + y^2的曲线簇的切点,就是我们要求的距离原点最近的点。

又有如果两个曲线相切,那么它们的切线相同,即法向量是相互平行的,于是由▽f//▽g可得▽f = λ*▽g。

这时,就将原有的约束优化问题转化为了一种对偶的无约束优化问题

原问题:

对偶问题:

min f(x,y) = x2 + y2

s.t.  xy = 3

由▽f = λ*▽g得:

  fx = λ*gx        (1)

  xy = 3

约束优化问题

无约束方程组问题

接着对上面的(1)式分别对x和y求偏导,得到2x = λ*y,        2y = λ*x,        xy = 3

通过求解方程得λ = ±2,当λ = 2时,x = sqrt(3),y = sqrt(3)或者x = sqrt(3),y = sqrt(3);当λ = -2时无解。

从等式约束到非等式约束

现在回到之前的问题,我们发现,在上面的例子中,约束条件是一个等式,而在我们的问题中约束条件s.t. yi(w·xi + b) - 1 >= 0,i=1,2,...,n是一个不等式,那么非等式约束又该怎么处理呢?

下图展示了拉格朗日乘子法的几何含义:红色曲线表示等式约束g(x) = 0,红色曲线围成的曲面内表示非等式约束g(x) <= 0

                        

非等式约束g(x) <= 0的情形中,最优点x要么出现在边界g(x) = 0上,要么出现在区域g(x) < 0中,

        对于g(x) < 0的情况,因为▽f(x)方向向里,因此约束条件g(x) <= 0不起作用,我们只需要通过条件▽f(x) = 0求得可能的极值即可

        对于g(x) = 0的情况,类似于之前提到的等式约束,但是▽f(x)的方向和▽g(x)的方向必须相反,即存在常数λ > 0使得▽f(x) + λ*▽g(x) = 0

当最优值落在g(x) < 0区域时,约束条件g(x) <= 0不起作用,因此我们令约束条件的乘子λ = 0,当最优值落在g(x) = 0边界上时,λg(x)自然等于0。综合这两种情况,可以推出λg(x) = 0。

因此,拉格朗日乘子法可以写成如下的等价形式,括号中的条件也叫做KKT条件。

L(x,λ) = f(x) + λ*g(x)

\left\{\begin{matrix}g(x) <= 0 \\ \lambda >= 0 \\ \lambda *g(x) = 0 \end{matrix}\right.

从原函数到对偶问题

接着考虑之前得到的目标函数

\left\{\begin{matrix}max \frac{1}{||w||} & \\s.t. y_{i}(w^{T}x_{i} + b) - 1 >= 0,i = 1,2,...,n & \end{matrix}\right.

由于求\frac{1}{||w||}的最大值相当于求\frac{1}{2}\left \| w \right \|^{2}的最小值,所以上述目标函数等价于

\left\{\begin{matrix}min \frac{1}{2}\left \| w \right \|^{2} & \\s.t. y_{i}(w^{T}x_{i} + b) - 1 >= 0,i = 1,2,...,n & \end{matrix}\right.

因为现在的目标函数是二次的,约束条件是线性的,所以它是一个凸二次规划问题(之所以等价于\frac{1}{2}\left \| w \right \|^{2}而不是等价于\left \| w \right \|就是为了将它转化为一个凸二次规划问题)

此外,由于这个问题的特殊结构,还可以通过拉格朗日对偶性变换到对偶变量的优化问题,即通过求解与原问题等价的对偶问题得到原始问题的最优解,这就是线性可分条件下支持向量机的对偶算法,这样做的优点在于:一者对偶问题往往更容易求解;二者可以自然的引入核函数,进而推广到非线性分类问题。

那什么是拉格朗日对偶性呢?简单来讲,通过给每一个约束条件加上一个拉格朗日乘子α,定义拉格朗日函数如下

                

然后令

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

容易验证,当某个约束条件不满足时,例如y_{i}(w^{T}x_{i} + b) < 1,那么显然有\theta (x) = \infty(只要令\alpha _{i} = \infty即可)。而当所有约束条件都满足时,则最优值为​​​​​​​\theta (x) = \frac{1}{2}\left \| w \right \|^{2},亦即最初要最小化的量。

因此,在要求约束条件得到满足的情况下最小化​​​​​​​\frac{1}{2}\left \| w \right \|^{2},实际上等价于直接最小化​​​​​​​\theta (x)(当然,这里也有约束条件,就是≥0,i=1,…,n),因为如果约束条件没有得到满足,​​​​​​​\theta (x)会等于无穷大,自然不会是我们所要求的最小值。

        具体写出来,目标函数变成了:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

这里用p^{*}表示这个问题的最优值,且和最初的问题是等价的。如果直接求解,那么一上来便得面对w和b两个参数,而\alpha _{i}又是不等式约束,这个求解过程不好做。不妨把最小和最大的位置交换一下,变成:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

交换以后的新问题是原始问题的对偶问题,这个新问题的最优值用d^{*}来表示。而且有d^{*}p^{*},在满足某些条件的情况下(这个条件指的是强对偶,Slater条件是强对偶的充分条件),这两者相等,即d^{*}=p^{*},这个时候就可以通过求解对偶问题来间接地求解原始问题。

        换言之,之所以从minmax的原始问题p^{*},转化为maxmin的对偶问题d^{*},一者因为d^{*}p^{*}的近似解,二者,转化为对偶问题后,更容易求解。

        所谓Slater 条件,即指:凸优化问题,如果存在一个点x,使得所有等式约束都成立,并且所有不等式约束都严格成立(即取严格不等号,而非等号),则满足Slater 条件。对于此处,Slater条件成立,所以d^{*}p^{*}可以取等号,即d^{*}=p^{*},所以我们对对偶问题的求解等价于对原问题的求解。

下面可以先求L 对w、b的极小,再求L 对的极大。

对偶问题的求解

先让拉格朗日函数分别对w和b求偏导

将以上结果代入

求对\alpha的极大,即是关于对偶问题的最优化问题。经过上面第一个步骤的求w和b,得到的拉格朗日函数式子已经没有了变量w,b,只有\alpha。从上面的式子得到:

这样,求出了\alpha _{i},根据\omega = \sum_{i=1}^{m}\alpha _{i}y^{i}x^{i},即可求出w,然后通过,即可求出b,最终得出分离超平面和分类决策函数。

在求得L(w, b, a) 关于 w 和 b 最小化,以及对\alpha的极大之后,最后一步则可以利用SMO算法求解对偶问题中的拉格朗日乘子\alpha​​​​​​​。

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

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

相关文章

智慧农业:农林牧数据可视化监控平台

数字农业是一种现代农业方式&#xff0c;它将信息作为农业生产的重要元素&#xff0c;并利用现代信息技术进行农业生产过程的实时可视化、数字化设计和信息化管理。能将信息技术与农业生产的各个环节有机融合&#xff0c;对于改造传统农业和改变农业生产方式具有重要意义。 图扑…

AVL平衡树的插入

//AVL搜索树 //对数据的搜索&#xff1a; 1&#xff1a;暴力查找遍历 // 2:二叉树 有序&#xff0c;但是伴随着插入删除&#xff0c;维护成本很高 // 3&#xff1a;二叉搜索树 问题&#xff1a;在极端情况下&#xff0c;会退化成最开始的链表 // …

inne所属公司抢注“童年时光”商标仍被冻结

根据中国商标网查询&#xff0c;国家知识产权局已于2023年3月10日裁定&#xff0c;被告inne所属的南京童年时光生物技术有限公司注册的“童年时光”商标无效。随着这起保健品行业品牌资产争夺事件的发酵&#xff0c;更多的细节得到披露&#xff0c;至此&#xff0c;一个从“代理…

低代码+RPA,会发生什么?

据相关研究表明&#xff0c;每个企业员工每天至少花1-2个小时完成文件归档、数据输入等工作&#xff0c;而这些工作都是可以通过自动化的方式完成的。 如今&#xff0c;不少企业正专注于工作流程自动化&#xff0c;希望能花最少的时间完成重复性工作&#xff0c;机器人流程自动…

Python基础入门(17)----Python虚拟环境:为何要用虚拟环境、如何使用virtualenv

文章目录 在Python开发中,虚拟环境是一个独立的目录树,可以在其中安装Python模块。每个虚拟环境都有自己的Python二进制文件和一组安装的库。使用虚拟环境的主要原因是为了避免项目间的依赖冲突,允许每个项目有其特定的依赖,而不影响全局安装的模块。 为何要用虚拟环境 依…

Vue 最简单路由 页面路由 配置路由

路由安装 Vue3使用 vue-router4 Vue2使用 vue-router3 npm i vue-router3创建路由文件 配置路由规则 import Vue from vue import VueRouter from vue-router //导入路由器 Vue.use(VueRouter)import Login from ../components/Login import User from ../components/User //…

17、Python虚拟环境:为何要用虚拟环境、如何使用virtualenv

文章目录 在Python开发中,虚拟环境是一个独立的目录树,可以在其中安装Python模块。每个虚拟环境都有自己的Python二进制文件和一组安装的库。使用虚拟环境的主要原因是为了避免项目间的依赖冲突,允许每个项目有其特定的依赖,而不影响全局安装的模块。 为何要用虚拟环境 依…

Linux 进程的管道通信

文章目录 无名管道pipe有名管道 进程之间的通信&#xff1a;Linux环境下&#xff0c;进程地址空间相互独立&#xff0c;每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另外一个进程中都看不到&#xff0c;所以进程之间不能相互访问&#xff0c;要交换数据必须通过…

分享68个毕业答辩PPT,总有一款适合您

分享68个毕业答辩PPT&#xff0c;总有一款适合您 链接&#xff1a;https://pan.baidu.com/s/1trwZ8T2I2rFh59LVxTSXTw?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易。知识付费甚欢…

开源DB-GPT实现连接数据库详细步骤

官方文档&#xff1a;欢迎来到DB-GPT中文文档 — DB-GPT &#x1f44f;&#x1f44f; 0.4.1 第一步&#xff1a;安装Minicoda https://docs.conda.io/en/latest/miniconda.html 第二步&#xff1a;安装Git Git - Downloading Package 第三步&#xff1a;安装embedding 模型到…

TFTP协议详解

1.简介 TFTP&#xff08;Trivial File Transfer Protocol,简单文件传输协议&#xff09;是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议&#xff0c;提供不复杂、开销不大的文件传输服务。端口号为69。 FTP是一个传输文件的简单协议&#xff0c;它基…

亚马逊怎么下单更真实

亚马逊是一个知名的在线购物平台&#xff0c;为了下单更真实&#xff0c;可以采取以下步骤&#xff1a; 1、查看商品信息&#xff1a;在浏览亚马逊的商品时&#xff0c;仔细查看商品描述、照片和客户评价。这些信息可以帮助你了解产品的真实情况。 2、对比价格&#xff1a;比…

Android Studio(项目打包成APK)

打包流程 直接上图即可 按照上面操作后&#xff0c;即可以开始打包&#xff0c;一般第一次打包都需要几分钟&#xff08;我第一次打包花了七八分钟&#xff09;&#xff0c;如果打包错误了也别担心&#xff0c;可以查看错误分析一下原因&#xff0c;实在不行可以把错误放到网站…

macos端串口调试推荐 serial直装激活 for mac

serial for mac版软件特色 1.准备好macOS High Sierra 最近的升级是否会让您的设备落后&#xff1f;Serial将使其恢复正常工作&#xff0c;同时保持Mac的安全功能完好无损。 2.完美无瑕的仿真 Serial是一个全功能的终端仿真器&#xff0c;支持Xterm&#xff0c;VT102和ANSI…

软件测试/测试开发丨PyCharm安装指南与技巧分享

点此获取更多相关资料 PyCharm 简介 工欲善其事&#xff0c;必先利其器。为了良好的学习体验&#xff0c;我们需要一款功能全面&#xff0c;并且容易上手的代码编辑器&#xff0c;那么首选大名鼎鼎的 PyCharm。 PyCharm 是一款功能强大的 Python 集成化开发工具&#xff0c;…

Linux系统CH347应用—GPIO输出输入与中断功能

Linux/安卓系统可使用CH347转接GPIO功能&#xff0c;所有GPIO均为双向IO口&#xff0c;支持输出与输入切换&#xff0c;输出时为推挽输出结构&#xff0c;具有较强驱动能力&#xff0c;输入时内部为弱上拉输入&#xff0c;上拉能力较弱。此外&#xff0c;用作输入的GPIO还支持G…

C# TCP Server服务端多线程监听RFID读卡器客户端上传的读卡数据

本示例使用设备介绍&#xff1a;液显WIFI无线网络HTTP协议RFID云读卡器可编程实时可控开关TTS语-淘宝网 (taobao.com) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using Sy…

【Sql】sql server数据库提示:执行Transact-SQL语句或批处理时发生了异常。 无法打开数据库msdb,错误:926。

【问题描述】 打开sql server2008r2数据库的时候&#xff0c; 系统提示执行Transact-SQL语句或批处理时发生了异常。 无法打开数据库msdb&#xff0c;错误&#xff1a;926。 【概念理解】 首先MSDB数据库是的作用&#xff1a; 用于给SQL Server代理提供必要的信息来运行调度警…

89㎡现代风格,年轻人都向往的家!福州中宅装饰,福州装修

对于美好家的向往&#xff0c;是每位业主的需求。 大到每一个工艺&#xff0c;小到每一道装修程序&#xff0c;我们都以认真的态度&#xff0c;用专业的服务品质将家装的理念深入到每户业主的内心,赢得了上万千业主的支持和肯定。 怀着最初的一颗匠心,对于每一项工艺都认真钻研…

宽带服务预约小程序的内容

宽带有很高的需求度&#xff0c;无论是企业办公楼还是家庭场景&#xff0c;对网络的需求度都比较高&#xff0c;而宽带安装服务商也往往有不少生意&#xff0c;但在实际发展中也面对着一些痛点&#xff1a; 1、服务传播套餐展示难 宽带业务的需求度不低&#xff0c;但依然有很…