SVM支持向量机理解_KKT条件_拉格朗日对偶_SMO算法

news2024/12/22 9:38:41

目录

一、支持向量机基本型(线性可分)

1.1 问题描述

1.2 参考资料

二、KKT条件

2.1 KKT条件的几个部分

2.1.1 原始条件

2.1.2 梯度条件

2.1.3 松弛互补条件

2.2 参考资料

三、对偶形式

四、SMO算法

五、线性不可分情形

六、核函数


 

一、支持向量机基本型(线性可分)

1.1 问题描述

        在PLA感知机算法中我们求取超平面是保证所有目标分类正确即可,但是我们为了增加我们学习到的算法的鲁棒性,泛化能力更强,我们可以使超平面到样本的间隔距离最大,这里我们定义间隔为“样本到超平面的最近距离”,也就是说我们的超平面就是对应间隔最大的平面。下面我们用数学语言来描述。

        假设样本集gif.latex?%5Cleft%20%5C%7B%20x_%7B1%7D%2Cy_%7B1%7D%20%5Cright%20%5C%7D%2C%5Cleft%20%5C%7B%20x_%7B2%7D%2Cy_%7B2%7D%20%5Cright%20%5C%7D%2C...%2C%5Cleft%20%5C%7B%20x_%7Bn%7D%2Cy_%7Bn%7D%20%5Cright%20%5C%7D%2Cx_%7Bi%7D%5Cin%20R%5E%7Bn%7D%2C%20y_%7Bi%7D%5Cin%20%5Cleft%20%5C%7B%20+1%2C%20-1%20%5Cright%20%5C%7D,设超平面为gif.latex?wx+b%3D0,点到超平面的距离gif.latex?d%3D%5Cfrac%7B%28wx_%7Bi%7D+b%29y_%7Bi%7D%7D%7B%5Cleft%20%5C%7C%20w%20%5Cright%20%5C%7C%7D    gif.latex?i%3D1%2C2%2C3%2C...%2Cn,最小间隔则为gif.latex?d%5E%7B*%7D%3D%5Cunderset%7Bi%7D%7Bmin%7D%5Cfrac%7B%28wx_%7Bi%7D+b%29y_%7Bi%7D%7D%7B%5Cleft%20%5C%7C%20w%20%5Cright%20%5C%7C%7D,当gif.latex?d%5E%7B*%7D达到最大时的gif.latex?w%2Cb就对应我们的超平面。即:

gif.latex?w%2Cb%20%3D%20arg%5Cunderset%7Bw%2C%20b%7D%7Bmax%7D%5Cunderset%7Bi%7D%7Bmin%7D%5Cfrac%7B%28wx_%7Bi%7D+b%29y_%7Bi%7D%7D%7B%5Cleft%20%5C%7C%20w%20%5Cright%20%5C%7C%7D

现在的问题转变成了优化问题。

8c2ccda4db644fedb2d84df791e0c80a.png

对于这样确定的gif.latex?w%2Cb,必然存在gif.latex?%5Cvarepsilongif.latex?%5Cvarepsilon%20%3D%20%5Cunderset%7Bi%7D%7Bmin%7D%28wx_%7Bi%7D+b%29y_%7Bi%7D,即:

gif.latex?%28wx_%7Bi%7D+b%29y_%7Bi%7D%5Cgeqslant%20%5Cvarepsilon%2C%5Cvarepsilon%20%3E0

gif.latex?w进行缩放是不影响超平面的,所以可以必然存在这样的gif.latex?w%2Cb,使得:

gif.latex?%28wx_%7Bi%7D+b%29y_%7Bi%7D%5Cgeqslant%201     //这个式子隐含了gif.latex?%5Cvarepsilon%20%3E0这个条件了

所以:

gif.latex?d%5E%7B*%7D%3D%5Cunderset%7Bw%2Cb%7D%7Bmax%7D%5Cfrac%7B1%7D%7B%5Cleft%20%5C%7C%20w%20%5Cright%20%5C%7C%7D

要使gif.latex?d%5E%7B*%7D达到最大,则使gif.latex?%5Cleft%20%5C%7C%20w%20%5Cright%20%5C%7C最小即可。所以上述优化问题可以写成下列形式:

gif.latex?%5Cunderset%7Bw%2Cb%7D%7Bmin%7D%5Cfrac%7B1%7D%7B2%7D%5Cleft%20%5C%7C%20w%20%5Cright%20%5C%7C%5E%7B2%7D

gif.latex?s.t.   gif.latex?%28wx_%7Bi%7D%20+%20b%29y_%7Bi%7D%5Cgeqslant%201   gif.latex?i%3D1%2C2%2C...%2Cn

1.2 参考资料

        以上就是支持向量机的基本型。详细内容可参见李航《机器学习方法》第七章支持向量机。网上其他参考资料可参见:

文档资料:

机器学习:支持向量机(SVM)_燕双嘤的博客-CSDN博客_支持向量机

支持向量机通俗导论(理解SVM的三层境界)_v_JULY_v的博客-CSDN博客_支持向量机

视频资料:

推导SVM基本形式_哔哩哔哩_bilibili

【数之道25】机器学习必经之路-SVM支持向量机的数学精华_哔哩哔哩_bilibili

1. 支持向量机(线性模型)问题_哔哩哔哩_bilibili

svm原理推导:1-支持向量机要解决的问题_哔哩哔哩_bilibili

二、KKT条件

        我把KKT条件放到第二节来讲,我觉得更加符合我们的思维方式,在第一节中我们给出了SVM的基本型,那么接下来我们来试图求解这个优化问题,由此引出KKT条件,很多写法将KKT条件直接上来就构建拉格朗日辅助函数,然后就给读者说就是这么回事,这种逻辑其实不合理,应当直接从梯度角度来讲这个事情。

2.1 KKT条件的几个部分

上述优化问题:

gif.latex?%5Cunderset%7Bw%2Cb%7D%7Bmin%7D%5Cfrac%7B1%7D%7B2%7D%5Cleft%20%5C%7C%20w%20%5Cright%20%5C%7C%5E%7B2%7D

gif.latex?s.t.   gif.latex?%28wx_%7Bi%7D%20+%20b%29y_%7Bi%7D%5Cgeqslant%201   gif.latex?i%3D1%2C2%2C...%2Cn

2.1.1 原始条件

            gif.latex?%28wx_%7Bi%7D%20+%20b%29y_%7Bi%7D%5Cgeqslant%201   gif.latex?i%3D1%2C2%2C...%2Cn

2.1.2 梯度条件

        在求解带不等式约束的优化问题时,考虑两种情况一种是不等式约束有效,一种是不等式约束无效。我们把要优化的函数称为目标函数(这个地方只考虑凸函数的情况)。

        (1)当约束条件无效时,目标函数最优值为其梯度为0时的值。

        (2)当约束条件有效时(目标函数不在约束范围内),那么目标函数取得最优值是应当与约束条件“相切”,也就是梯度方向成平行关系,具体可分为以下4种情况,我们假设目标函数为gif.latex?f%28x%29,约束函数为gif.latex?g%28x%29

        1. gif.latex?minf%28x%29   gif.latex?s.t.   gif.latex?g%28x%29%5Cleqslant%200

83af67e0171c4cacaf7a1a4fb7155d53.png

                 此时有:gif.latex?%5Cbigtriangledown%20f%28x%29%20%3D%20%5Calpha%20%5Cbigtriangledown%20g%28x%29  gif.latex?%5Calpha%20%3C0

        2. gif.latex?minf%28x%29  gif.latex?s.t.  gif.latex?g%28x%29%5Cgeqslant%200

c27963064dea4240b0e57ad8624caf9e.png

                  此时有:gif.latex?%5Cbigtriangledown%20f%28x%29%20%3D%20%5Calpha%20%5Cbigtriangledown%20g%28x%29  gif.latex?%5Calpha%20%3E0

        3. gif.latex?maxf%28x%29  gif.latex?s.t.  gif.latex?g%28x%29%5Cleqslant%200

 8d5e21316c7e413eb24a53452270f461.png

                    此时有:gif.latex?%5Cbigtriangledown%20f%28x%29%20%3D%20%5Calpha%20%5Cbigtriangledown%20g%28x%29  gif.latex?%5Calpha%20%3E0

        4. gif.latex?maxf%28x%29  gif.latex?s.t.  gif.latex?g%28x%29%5Cgeqslant%200

d876439c81964533911df9d1bd909e4b.png

                  此时有:gif.latex?%5Cbigtriangledown%20f%28x%29%20%3D%20%5Calpha%20%5Cbigtriangledown%20g%28x%29  gif.latex?%5Calpha%20%3C0

        注意gif.latex?g%28x%29的梯度方向与gif.latex?g%28x%29具体函数相关,这里为了举例方便仅画出示意图默认了梯度方向。

         在SVM基本型的优化问题中,其情形属于第二种情况,即: gif.latex?%5Cbigtriangledown%20f%28x%29%20%3D%20%5Calpha%20%5Cbigtriangledown%20g%28x%29  gif.latex?%5Calpha%20%3E0

综上两种情况可知:

 gif.latex?%5Cbigtriangledown%20f%28x%29%20%3D%200或  gif.latex?%5Cbigtriangledown%20f%28x%29%20%3D%20%5Calpha%20%5Cbigtriangledown%20g%28x%29  gif.latex?%5Calpha%20%3E0

由于原优化问题是多约束条件,我们画出示意图如下:

5acc01877b474d05b9cca7e4e5dadc12.png

此时有:

gif.latex?%5Cbigtriangledown%20f%28x%29%20%3D%20%5Calpha_%7B1%7D%20%5Cbigtriangledown%20g_%7B1%7D%28x%29+%5Calpha_%7B2%7D%20%5Cbigtriangledown%20g_%7B2%7D%28x%29      gif.latex?%5Calpha%20_%7B1%7D%3E0%2C%5Calpha%20_%7B2%7D%3E0

综上所述,代入原式子,即:

gif.latex?w%20%3D%200gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20w%20%3D%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%5Calpha%20_%7Bi%7Dy_%7Bi%7Dx_%7Bi%7D%5C%5C%20%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%5Calpha%20_%7Bi%7Dy_%7Bi%7D%3D0%5C%5C%20%5Calpha%20_%7Bi%7D%3E0%5Cend%7Bmatrix%7D%5Cright.

为了将两种情况综合到一起,我们引入了互补松弛条件。

2.1.3 松弛互补条件

        我们把约束条件有效和约束条件无效两种情况综合打一起,实际上对于第二种情况,当约束条件无效时gif.latex?g_%7Bi%7D%28x%29%5Cneq%200,可令对应的乘子gif.latex?%5Calpha%20_%7Bi%7D=0,此时第二种情况也就变成了第一种情况,当约束条件有效时则约束条件gif.latex?g_%7Bi%7D%28x%29=0,所有始终有:

gif.latex?%5Calpha%20_%7Bi%7D*g_%7Bi%7D%28x%29%3D0

我们称之为互补松弛条件。

        综上所述我们引出了KKT条件,对于凸优化问题因为只存在唯一解KKT条件等价于原始优化问题,解KKT条件就是解原始优化问题,原始优化问题的解一定满足KKT条件。

gif.latex?%28wx_%7Bi%7D%20+%20b%29y_%7Bi%7D%5Cgeqslant%201   gif.latex?i%3D1%2C2%2C...%2Cn

gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20w%20%3D%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%5Calpha%20_%7Bi%7Dy_%7Bi%7Dx_%7Bi%7D%5C%5C%20%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%5Calpha%20_%7Bi%7Dy_%7Bi%7D%3D0%5C%5C%20%5Calpha%20_%7Bi%7D%5Cgeqslant%200%5Cend%7Bmatrix%7D%5Cright.

gif.latex?%5Calpha%20_%7Bi%7D*%28wx_%7Bi%7D+b%29y_%7Bi%7D-%5Calpha%20_%7Bi%7D%3D0   gif.latex?i%3D1%2C2%2C...%2Cn

        上述就是我们所说的KKT条件,KKT条件主要用来求解,但是实际上我们发现KKT条件中的参数还是很多,求解并不容易,为此我们又引入了拉格朗日对偶性,降低要求解的维度。

2.2 参考资料

文档资料:

Qoo-凸二次规划与KTT条件-支持向量机SVM(二) - 知乎

KKT条件,原来如此简单 | 理论+算例实践 - 知乎

Karush-Kuhn-Tucker (KKT)条件 - 知乎

视频资料:

“拉格朗日对偶问题”如何直观理解?“KKT条件” “Slater条件” “凸优化”打包理解_哔哩哔哩_bilibili

拉格朗日对偶性_哔哩哔哩_bilibili

三、对偶形式

 

四、SMO算法

 

五、线性不可分情形

 

六、核函数

 

 

 

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

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

相关文章

TimeWheel时间轮算法原理及实现(附源码)

时间轮算法原理及实现前言1.时间轮核心2.简单定时器3.任务队列4.优化任务队列5.简单时间轮6.多层时间轮前言 在各种业务场景中,我们总是会需要一些定时进行一些操作,这些操作可能是需要在指定的某个时间点操作,也可能是每过一个固定的时间间隔后进行操作,这就要求我们需要有一个…

【蓝桥OJ—C语言】高斯日记、马虎的算式、第39级台阶

文章目录高斯日记马虎的算式第39级台阶总结高斯日记 题目: 大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。 后来人们知道&am…

You Only Need 90K Parameters to Adapt Light 论文阅读笔记

这是BMVC2022的论文,提出了一个轻量化的局部全局双支路的低光照图像质量增强网络,有监督。 思路是先用encoder f(⋅)f(\cdot)f(⋅)转到raw-RGB域,再用decoder gt(⋅)g_t(\cdot)gt​(⋅)模拟ISP过程转到sRGB域。虽然文章好像没有明确指出&…

【蓝牙mesh】Network协议层介绍

【蓝牙mesh】Network协议层介绍 Network层简介 上一章节我们讲解了蓝牙Mesh中Lower层的功能和数据格式。 Lower层的数据往下传输就到了网络层(Network Layer)。网络层定义了收到Lower层的数据后,如何对其进行判断、封装、加密、认证&#xf…

学习(mianshi)必备-ClickHouse高性能查询/写入和常见注意事项(五)

目录 一、ClickHouse高性能查询原因-稀疏索引 二、ClickHouse高性能写入-LSM-Tree存储结构 什么是LSM-Tree 三、ClickHouse的常见注意事项和异常问题排查 一、ClickHouse高性能查询原因-稀疏索引 密集索引: 在密集索引中,数据库中的每个键值都有一个索引记录&…

Amazon S3 服务15岁生日快乐!

2021年3月14日,作为第一个发布的服务,Amazon S3 服务15周岁啦!在中国文化里,15岁是个临界点,是从“舞勺之年”到“舞象之年”的过渡。相信对于 Amazon S3 和其他的云服务15周岁也将是其迎接更加美好未来的全新起点。亚…

【论文解读】如何使用1B参数的小模型吊打GPT3.5

大型语言模型 (LLM) 通过利用思维链 (CoT) 提示生成中间推理链作为推断答案的基本原理,在复杂推理上表现出了令人印象深刻的性能。 然而现有的 CoT 研究主要集中在语言模态上。 我们提出 Multimodal-CoT(多模态思维链推理模型),它…

利用steam搬砖信息差赚钱,单账号200+,小白也能轻松上手!

现在很多人在做互联网而且也赚到钱了,但还是有很多人赚不到钱,这是为什么? 这里我不得不说一个词叫做赛道,也就是选择,选择大于努力,项目本身大于一切,90%的人都觉得直播带货赚钱,但…

VSCode配置(一)Remote SSH

插件安装 Remote-SSHRemote Explorer 可以完成下面任务 连接远程服务器(支持rsa key的认证登陆),并访问文件结构可以经过中转机(跳转机)访问内网机器,进行IP穿透可以建立tunnel,将本地端口映…

弱监督论文阅读:P2BNet算法笔记

标题:Point-to-Box Network for Accurate Object Detection via Single Point Supervision 会议:ECCV2022 论文地址:https://link.springer.com/10.1007/978-3-031-20077-9_4 官方代码:http://www.github.com/ucas-vg/P2BNet 作者…

2023年网络安全竞赛——Python渗透测试PortScan.py

端口扫描Python渗透测试:需求环境可私信博主获取 任务环境说明: 服务器场景:PYsystem0041服务器场景操作系统:未知服务器场景FTP用户名:anonymous 密码:空1. 从靶机服务器的FTP上下载PortScan.py,编辑Python程序PortScan.py,实现

操作系统核心知识点整理--内存篇

操作系统核心知识点整理--内存篇按段对内存进行管理内存分区内存分页为什么需要多级页表TLB解决了多级页表什么样的缺陷?TLB缓存命中率高的原理是什么?段页结合: 为什么需要虚拟内存?虚拟地址到物理地址的转换过程段页式管理下程序如何载入内存?页面置…

NCNN Conv量化详解1

1. NCNN的Conv量化计算流程 正常的fp32计算中,一个Conv的计算流程如下: 在NCNN Conv进行Int8计算时,计算流程如下: NCNN首先将输入(bottom_blob)和权重(weight_blob)量化成INT8,在INT8下计算卷积,然后反量化到fp32,再和未量化的bias相加,得到输出(top_blob) 输入和…

学了一年Java的我,想转嵌入式了

秋名山码民的主页 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 🙏作者水平有限,如发现错误,还请私信或者评论区留言! 目录前言为啥我想去转行?如果我现在选择转硬件,我…

【华为OD机试模拟题】用 C++ 实现 - 相同字符连续出现的最大次数(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

计算机网络——问答2023自用

1、高速缓冲存储器Cache的作用? 这种局部存储器介于CPU与主存储器DRAM之间,一般由高速SRAM构成,容量小但速度快,引入它是为了减小或消除CPU与内存之间的速度差异对系统性能带来的影响 (Cache可以保存CPU刚用过或循环使…

【react storybook】从零搭建react脚手架,并使用storybook发布组件库到npm,并生成可视化UI文档

storybook成品展示开发准备开发组件写MDX文档发布文档发布组件成品展示 可视化UI文档页面: 可视化UI文档地址: https://guozia007.gitee.io/storybook-ui/?path/docs/mdx-button--default-story组件库地址: https://www.npmjs.com/pac…

Vmware虚拟机无法联通主机解决方法二

昨天在遇到了VMware 虚拟机无法联通主机,导致我在CentOS-7 搭建的伪Hadoop3 服务,无法访问管理平台,使用将网络编辑器修改为“桥接”模式解决。今天在学习HBase 时,昨天的问题又重新了,我通过SSH 工具MobaXterm 都无法…

《第一行代码》 第八章:应用手机多媒体

一&#xff0c;使用通知 第一步&#xff0c;创建项目&#xff0c;书写布局 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"vertical"android:layout_width"match_parent"android:layout_he…

【数据结构趣味多】Map和Set

1.概念及场景 Map和set是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。 在此之前&#xff0c;我还接触过直接查询O(N)和二分查询O(logN)&#xff0c;这两个查询有很多不足之出&#xff0c;直接查询的速率太低&#xff0c;而二分查…