简述SVM

概述

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.rhkb.cn/news/184329.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么将pdf转换成word?

怎么将pdf转换成word&#xff1f;将pdf文件转换成word是一件非常重要的转换技能&#xff0c;将pdf转换成word可以解决非常多的问题&#xff0c;总结起来主要有以下这些&#xff1a;编辑文本&#xff1a;① PDF文件通常是不可编辑的&#xff0c;而将其转换为Word格式后&#xff…

微服务使用指南

微服务使用指南 1.初识微服务 微服务可以认为是一种分布式架构的解决方案&#xff0c;提供服务的独立性和完整性&#xff0c;做到服务的高内聚、低耦合。 目前服务架构主要包含&#xff1a;单体架构和分布式架构。 1.1 单体架构 单体架构&#xff1a;把所有业务功能模块都…

小程序day04

目标 自定义组件 创建组件 引用组件 局部引用 全局引用 组件的函数定义到metods节点中&#xff0c;梦回vue2. 样式 数据&#xff0c;方法&#xff0c;属性 下划线开头的称为自定义方法&#xff0c;非下划线开头的都是事件处理函数。 神特么&#xff0c;this.datathis.pro…

Databend 开源周报第 118 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 MERGE INTO 现已…

Elasticsearch内存分析

文章目录 Elasticsearch JVM内存由哪些部分组成Indexing BufferNode Query CacheShard Request CacheField Data CacheSegments Cache查询 非堆内存内存压力mat分析es的jvm缓存监控 Elasticsearch JVM内存由哪些部分组成 官方建议Elasticsearch设置堆内存为32G&#xff0c;因为…

Chrome 插件开发 V3版本 跨域处理

插件构成 chrome 插件通常由以下几部分组成&#xff1a; manifest.json&#xff1a;相当于插件的 meta 信息&#xff0c;包含插件的名称、版本号、图标、脚本文件名称等&#xff0c;这个文件是每个插件都必须提供的&#xff0c;其他几部分都是可选的。 background script&…

【大数据】NiFi 中的重要术语

NiFi 中的重要术语 1.Flow Controller2.Processor3.Connection4.Controller Service5.Process Group6.FlowFile 那些一个个黑匣子称为 Processor&#xff0c;它们通过称为 Connection 的队列交换名为 FlowFile 的信息块。最后&#xff0c;FlowFile Controller 负责管理这些组件…

服务器代码上云过程

一、前置要求 1.1 服务器端代码 需要有服务器端的代码&#xff0c;不然在云服务器&#xff08;云主机&#xff09;上运行啥嘞 1.2 云服务器&#xff08;云主机&#xff09; 需要有云服务器&#xff0c;因为云服务器会有公网IP&#xff0c;可以在任意地方进行访问。云服务器…

Visual Studio Code将中文写入变量时,中文老是乱码问题

对于这个问题&#xff0c;我也是弄了很久才知道&#xff0c;编码格式的问题 在此之前我们要先下载个插件 照这以上步骤&#xff0c;最后按F6运行即可&#xff0c;按F6是利用我们刚刚下载的插件进行编译&#xff0c;唯一有一点不好就是&#xff0c;用这种插件运行的话&#xff…

App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法

根据近日工业和信息化部发布的《工业和信息化部关于开展移动互联网应用程序备案工作的通知》&#xff0c;相信不少要进行IOS平台App备案的朋友遇到了一个问题&#xff0c;就是apple不提供云管理式证书的下载&#xff0c;也就无法获取公钥及证书SHA-1指纹。 已经上架的应用不想重…

java项目之个人健康信息管理(ssm+jsp)

项目简介 个人健康信息管理实现了以下功能&#xff1a; 管理员&#xff1a;首页、个人中心、用户管理、医师管理、饮食记录管理、运动记录管理、健康信息管理、健康评估管理、健康知识管理、系统管理。用户&#xff1a;首页、个人中心、饮食记录管理、运动记录管理、健康信息…

京东数据分析(京东销量):2023年9月京东投影机行业品牌销售排行榜

鲸参谋监测的京东平台9月份投影机市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台的相关数据数据显示&#xff0c;9月份&#xff0c;京东平台投影机的销量为13万&#xff0c;环比下滑约17%&#xff0c;同比下滑约25%&#xff1b;销售额将近2.6亿&#xff0c;环比下…

助力工业数字化!TDengine 与恩菲 MIM+ 工业互联网平台实现兼容性互认

在云计算、物联网、5G等新兴技术快速发展的当下&#xff0c;制造企业想要运用新兴技术实现数字化转型&#xff0c;工业互联网平台的应用和打造是非常关键的转型要素。在工业互联网平台的发展中&#xff0c;数据处理上存在的问题一直都是令企业所头疼的&#xff0c;越来越多的案…

Vue3:自定义图标选择器(包含 SVG 图标封装)

文章目录 一、准备工作&#xff08;在 Vue3 中使用 SVG&#xff09;二、封装 SVG三、封装图标选择器四、Demo 效果预览&#xff1a; 一、准备工作&#xff08;在 Vue3 中使用 SVG&#xff09; 本文参考&#xff1a;https://blog.csdn.net/houtengyang/article/details/1290431…

后端工程化 | SpringBoot 知识点

文章目录 [SpringBoot] 后端工程化1 需求2 开发流程3 RequestController 类&#xff08;操作类&#xff09;3.1 简单参数&#xff08;形参名和请求参数名一致&#xff09;3.2 简单参数&#xff08;形参名和请求参数名不一致&#xff09;3.3 复杂实体参数3.4 数组参数3.5 集合参…

chrome安装vue devtools

不能访问应用商店 如果可以访问应用商店可以往下看 插件源代码 选择shell-chrome&#xff0c;这是官方的插件源码 下载源代码打包 参考教程 点击扩展按钮->管理扩展程序->打开开发者模式->把crx文件拖拽进去即可 可以访问chrome应用商店 插件地址 官方文档地址 选…

PolarDB 卷来卷去 云原生低延迟强一致性读 1 (SCC READ 译 )

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友…

python使用pysqlcipher3对sqlite数据库进行加密

python对很多项目都需要对sqlite数据库的数据进行加密&#xff0c;最流行的加密方式是使用pysqlcipher3&#xff0c;当前使用的python版本为3.7&#xff0c;本博文是直接使用pysqlcipher3在项目上的应用&#xff0c;使用的是已编译好的pysqlcipher3包&#xff0c;如果你需要pys…

很多个pdf怎么合并在一起?

很多个pdf怎么合并在一起&#xff1f;作为一个办公室的伙伴&#xff0c;对于PDF格式肯定不会陌生。它强大的功能为我们的工作提供了许多便利。由于PDF文件格式的稳定性和安全性较高&#xff0c;我们通常在工作或学习中使用它来传输文件&#xff0c;很多人都喜欢将办公文件都做成…

【electron】【附排查清单】记录一次逆向过程中,fetch无法请求http的疑难杂症(net::ERR_BLOCKED_BY_CLIENT)

▒ 目录 ▒ &#x1f6eb; 导读需求开发环境 1️⃣ Adblock等插件拦截2️⃣ 【失败】Content-Security-Policy启动服务器json-serverhtml中的meta字段 3️⃣ 【失败】https vs httpwebPreferences & allowRunningInsecureContent disable-features 4️⃣ 【失败】检测fetch…