SVM(二)对偶问题转化以及求解

news2025/1/24 14:01:45

上篇: SVM(支持向量机)(一)基本形式推导

凸优化

考虑如下优化问题:
在这里插入图片描述
应用拉格朗日乘子法:
在这里插入图片描述
定义拉格朗日对偶函数 G \mathcal{G} G,这里 i n f inf inf 是上确界(集合的最小上界)。为什么不写成 m i n min min ?因为 G \mathcal{G} G 是非凸的,存在 α , β \alpha,\beta αβ 使其趋于无穷小,不存在一个最小值,通过 i n f inf inf 表达将这种情况包含。
在这里插入图片描述

下界性质

α ≥ 0 \alpha\geq0 α0时, G \mathcal{G} G 是优化目标 f f f的下界,这也是构造拉格朗日对偶函数 G \mathcal{G} G的意义。
在这里插入图片描述

拉格朗日对偶问题

解决该问题可以找到原问题的一个下界,相比于解决具有 ( k + l ) (k+l) (k+l)个约束的问题,拉格朗日对偶问题仅有简单约束 α ≥ 0 \alpha\geq0 α0,求解难度大大降低。
在这里插入图片描述

那么是否存在两个问题等价的情形?或者它们的解十分相近。

p ∗ p^* p 是原问题的最优解, d ∗ d^* d 是对偶问题的最优解,首先满足弱对偶性: d ∗ ≤ p ∗ d^*\leq p^* dp,而且通过最优对偶间隔 p ∗ − d ∗ p^*-d^* pd 描述它们的接近程度。
在这里插入图片描述

强对偶成立的条件

在这里插入图片描述
Slater‘’s Constraint Qualifications
在这里插入图片描述

互补松弛性(Complementary Slackness)

在这里插入图片描述
Proof:
在这里插入图片描述

KTT条件

强对偶成立 p ∗ = d ∗ p^*=d^* p=d ⟹ \Longrightarrow 以上几个性质,统称KTT条件。

在这里插入图片描述
p ∗ = L ( ω ∗ , α ∗ , β ∗ ) = G ( α ∗ , β ∗ ) = d ∗ p^*=\mathcal{L}(\omega^*,\alpha^*,\beta^*)=\mathcal{G}(\alpha^*,\beta^*)=d^* p=L(ω,α,β)=G(α,β)=d

  1. Stationarity:极值点处 G \mathcal{G} G梯度为0;
  2. Primal feasibility:基本约束条件;
  3. Dual feasibility:满足该条件才能保证 G \mathcal{G} G f f f的下界,对偶转化才有意义;
  4. Complementary slackness:强对偶成立的必要条件, α > 0 \alpha>0 α>0时不等式 g i ( ω i ) g_i(\omega_i) gi(ωi)约束生效,极值点处取等。

SVM对偶问题转化

将上述凸优化方法应用至博客(一)我们推导出的 primal form 上,并通过 KTT 条件进行化简(SVM 中原问题和对偶问题是强对偶的关系):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

求解 The Solution

最后的 dual problem 为 QP 问题,可以用 SMO 算法求解。这里老师 PPT 直接说用求解器,可能 QP 问题是一个比较常见的优化问题。
而得到对偶问题的解,如何转化回原问题的解,还是通过 KTT 条件。
在这里插入图片描述
第一条是由互补松弛性质导出, α ∗ g ( ω ∗ ) = 0 \alpha^*g(\omega^*)=0 αg(ω)=0,而在SVM问题上 g ( ω ) = 1 − y ( i ) ( ω T x ( i ) + b ) g(\omega)=1-y^{(i)}(\omega^Tx^{(i)}+b) g(ω)=1y(i)(ωTx(i)+b).

下面标签 y ( i ) ∈ { − 1 , 1 } y^{(i)}\in\{-1,1\} y(i){1,1},可以推得 y ( i ) y^{(i)} y(i) ω T x ( i ) + b \omega^Tx^{(i)}+b ωTx(i)+b 同时为 + 1 +1 +1 或者 − 1 -1 1,即两者相等。
在这里插入图片描述

support vector

在上篇博客提到

对于SVM来说去掉一些不在 ω T x + b = ± γ ∣ ∣ ω ∣ ∣ \omega^Tx+b=\pm\gamma||\omega|| ωTx+b=±γ∣∣ω∣∣平面上的数据点并不影响模型,该平面称为支持平面,平面上的数据点称为支持向量(support vector).更准确地说,sv确定了支持平面,sv的margin γ ( i ) \gamma^{(i)} γ(i)是约束 s . t .   γ ( i ) ≥ γ s.t.\ \gamma^{(i)}\geq \gamma s.t. γ(i)γ取等时的 γ ( i ) \gamma^{(i)} γ(i),SVM(support vector machine)因此得名。为了简化表达,约定一组 ( ω T , b ) (\omega^T,b) (ωT,b),使得支持平面变为 ω T x + b = ± 1 \omega^Tx+b=\pm1 ωTx+b=±1.

在经过一系列转化之后,这种对模型没有影响的数据点对应到对偶问题解中是大多数 α i \alpha_i αi 均是0,而非0的 α i \alpha_i αi 对应的则是 sv,因为根据互补松弛性, α i ≠ 0 \alpha_i\neq0 αi=0时对应不等式 g ( ω i ) ≤ 0 g(\omega_i)\leq0 g(ωi)0生效,取等,可得 y ( i ) ( ω T x ( i ) + b ) = 1 y^{(i)}(\omega^Tx^{(i)}+b)=1 y(i)(ωTx(i)+b)=1 ,即 sv 在支撑平面上,或者说参与构建了该平面。

在这里插入图片描述
从 support vector 出发重新定义 ω ∗ \omega^* ω
在这里插入图片描述

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

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

相关文章

超标量处理器设计——第十章_提交

参考《超标量处理器》姚永斌著 文章目录超标量处理器设计——第十章_提交10.1 概述10.2 重排序缓存10.2.1 一般结构10.2.2 端口需求10.3 管理处理器的状态10.3.1 使用ROB管理指令集定义的状态10.3.2 使用物理寄存器管理指令集定义的状态10.4 特殊情况处理10.4.1 分支预测失败的…

【微服务】Nacos ⼀致性协议

目录 一、为什么 Nacos 需要⼀致性协议 二、为什么 Nacos 选择了 Raft 以及 Distro 1、从服务注册发现来看 2、从配置管理来看 3、为什么是 Raft 和 Distro 呢 三、早期的 Nacos ⼀致性协议 四、当前 Nacos 的⼀致性协议层 💖 Spring家族及微服务系列文章 …

【关于时间序列的ML】项目 2 :使用机器学习预测股票价格

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

5G无线技术基础自学系列 | RF优化流程

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 在介绍完了RF优化的思路和措施之后&…

【Linux 软件包管理器 yum】

While there is life there is hope. 目录 1 什么是软件包 2 关于 rzsz 3 注意事项 4 查看软件包 5 如何安装软件 6 如何卸载软件 总结 1 什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人…

[译] 来了解一下 Island Architecture 孤岛架构

建立一个网站有不同的方法,其中之一便是多页应用程序(MPA),它大约在十年前就过时了,现在又重新流行起来。MPA已经被Angular和React以及其他现代框架所普及的单页应用(SPA)方法所取代。 由于应用软件迭代趋势的运作方式,方法/工具…

异步任务如何测试?

总是能收到这样的问题: 异步任务如何测试?异步的接口如何测试?可以通过自动化来保证异步任务是否执行了吗?能否保证执行是否成功? 收到这样的问题,其实大家的问题都是通用的,那么正好整理下我…

毫无基础的人如何入门 Python ?

Python 我也是从零开始自学的,因为工作的原因,我需要 python 做很多数据抓取的工作。我把自己的学习的感想,做了一下总结,阅读到最后,一定会有惊喜。 首选,我不会一下子,给你推荐一堆视频课程&…

从git上新拉下来的vue项目,没有node_modules依赖,npm install报错,node-sass报错

因为没有node_modules依赖,我直接 1.npm install,但是报错: 2.npm install --force报错 3.npm audit fix --force报错 4.npm install --legacy-peer-deps报错 5.npm install --registry https://registry.npm.taobao.org 直接安装淘宝镜像也…

一名智能驾驶产品经理的自我修养

已剪辑自: https://mp.weixin.qq.com/s/fCSO7hmP3FP-Xat-NyFG0A 随着智能驾驶浪潮的兴起,市场上产生了对相关人才的大量需求,也诞生了一些传统汽车行业所没有的新兴岗位。其中,智驾产品经理,作为一个典型的、互联网与汽车行业深度…

应用反演工程对四层减反膜进行分析

有很多的过程可以被称之为反演工程,但在Essential Macleod中,该术语的意思是用来识别理想设计的和实际生产尝试之间的差异。该功能大致可以概括为“出了什么问题”。这一过程类似于优化,在优化过程中,将初始设计进行优化&#xff…

软饭硬吃,因为“测试能力单一”面试多次被拒,给跳槽的各位测试人员提个醒

最近公司有几位同事打算离职出去看看其他机会,几轮面试下来感觉很好,最终却没有收到几家offer。这几位同事都有好几年工作经验,测试经验丰富,也参与过大型项目的测试,在测试用例设计、测试流程把控、测试执行等方面做得…

汇富纳米冲刺创业板:拟募资6.25亿 王跃林堂叔侄控制近50%股权

雷递网 雷建平 12月20日湖北汇富纳米材料股份有限公司(简称:“汇富纳米”)日前递交招股书,准备在深交所创业板上市。汇富纳米计划募资6.25亿元,其中,3.5亿元用于2万吨/年气相法纳米粉体材料项目&#xff0c…

[前端攻坚]:如何优雅的用function实现一个class

使用function来写出一个class的类对于我们来说当然是简单的,但必须注意的是,要做好function实现一个class,那么就要必须实现达到高精准度的模仿,把该实现的细节都实现好,才能更好的对class进行深入的理解 废话少说&…

js逆向-无限debugger的原理与绕过

js逆向-无限debugger的原理与绕过 debugger是JavaScript中定义的一个专门用于断点调试的关键字,只要遇到他,JavaScritp的执行便会在此处中断,进入调试模式。 有了debugger这个关键字,我们就可以非常方便地对JavaScript代码进行调试,比如使用JavaScript Hook时,我们可以…

想用python拿大厂offer?那这个一定是你需要的

想用python拿大厂offer?那这个一定是你需要的 python,是一种解释型(高级)的,面向对象的,带有动态语义的高级程序设计的开源语言。1989年,Guido von Rossum(荷兰人)人称龟…

新华三推出人工智能模型训练平台,让智慧算力触手可及

随着AI技术不断完善升级,产业界的主要需求已经不再是基础算法的打磨,而是如何让AI技术与行业场景、企业需求相契合。不久之前,科技部等六部门联合印发了《关于加快场景创新以人工智能高水平应用促进经济高质量发展的指导意见》,明…

新浪l2接口如何获取某个记录类型对应的记录情况?

新浪l2接口获取某个记录类型对应的记录情况: 用法: get_result_records (recordtype, index, ContextInfo) 释义: 获取某个记录类型对应的某个时刻的记录情况。 *注:模型回测时有效,获取的为回测面板中的记录结果 …

Jmeter结果处理小心得

[内部资源] 想拿年薪30W的软件测试人员,这份资料必须领取~ Python自动化测试全栈性能测试全栈,挑战年薪40W 正文 工作中用jmeter请求一个接口对谈得上会jmeter的人似乎都是可以做出来的,但是实际难点是参数化,结果的断言&#…

谁会嫌钱多啊,最适合Python兼职攻略以及接私活经验!一定要看到最后!

想给大家谈谈一个非常热门的话题,就是如何在学习python的同时去赚钱。在这篇文章中,你会学习到如何通过学习python来赚取副业收入。 相信大家都对钱感兴趣吧,如果你和马云爸爸对钱不敢兴趣的话,那这篇文章就不适合你了。 如果你想…