深入浅出SVM(PART II)

Wv-SVM参数选择的自适应嵌入式混沌粒子群算法 立即下载

点击上方“AI派”,选择“星标”公众号

第一时间获取价值内容

导读

今天是该系列第八篇文章,介绍支持向量机原理(PART II)。

    支持向量机(Support Vector Machine)是由Vapnik等人于1995年提出来的,之后随着统计理论的发展,支持向量机SVM也逐渐受到了各领域研究者的关注,在很短的时间就得到了很广泛的应用。支持向量机是被公认的比较优秀的分类模型,同时,在支持向量机的发展过程中,其理论方面的研究得到了同步的发展,为支持向量机的研究提供了强有力的理论支撑。

    本文为第二部分,介绍SVM原理第二章。

支持向量机的训练

对偶算法的引入

     通过前一章文章"深入浅出SVM (PART I)"中可以看到,在SVM中,对分隔超平面的求解转化为对如下带约束的最小优化问题的求解:

    拉格朗日乘数法是一种比较合适的求解带约束的优化问题的方法,可将其转化为无约束优化问题的求解。对于上述的带约束的优化问题,可以转换成如下的拉格朗日函数:

    其中α和β为拉格朗日乘子向量,维度均为样本数量,每一维的值均不小于0。那么最小优化问题可变为:

    由于拉格朗日的对偶性可得到原始问题的对偶问题,如下:

    

    具体求解时先求解后半部分也就是minL,即对拉格朗日函数L(W,b,ξ ,α,β)中的W,b和ξ求偏导,并使偏导为0:

    化简之后可得:

    将化简之后的公式带入minL中,可得:

    再对上式求关于α的极大值,最终可得到对偶问题的表达式:

    由以上可得:

  

    同时,将求解最大化问题转换为求解最小化问题,则上述的优化问题转换成:


    其中αi满足上式的要求,假设α*为对偶问题最优解,根据上式可得原始问题的最优解为:

    对于b的最优解,取α*的其中一个分量,代入可得:

线性向非线性的拓展

     在该系列的“因子分解机算法原理及实现”一文中曾讲到为了使线性模型可以处理更加复杂的非线性问题,方法有两种:一是利用核函数的方法对特征进行处理,二是对模型本身进行扩展。本文选用第一种方法,介绍在支持向量机中如何引入核函数将非线性问题转变为近似线性问题,所用的核函数为高斯核函数:

     同此时非线性支持向量机的优化目标为:

SMO算法

    在第一小节由于对偶算法的引入使得带约束的原始问题转变为带约束的对偶问题。一般可以用二次规划的方法求解带约束的优化问题,但是如何更高效地求解此类优化问题是值得研究的问题,尤其在数据量很大的时候。SMO算法是一种序列最小最优化算法,比较适合快速求解此类优化问题。它的思想是将一个大问题划分为一系列小的子问题(这些子问题均只有两个变量),通过对这些子问题的求解从而达到求解对偶问题的目的。
     每次划分中取两个变量a1和a2,使其它的变量为固定的值,如果此时a2被确定了,那么由约束条件可得a1的表达式。那么接下来就需要解决两个关键问题:一是如何选择这两个变量,二是如何去更新这两个变量。

1.两个变量的更新

    对于选择的两个变量,优化问题改写为:

    其中Kij的表达式为:

    M1和M2为常数项,使优化函数为:

    此时优化函数可改写为:

    由约束条件可得:

    由于标签值的平方为1,上式可转换为:

     将上式代入优化函数中可得:

     此时优化函数变为只关于a2的优化函数,为了求minW(a2),需要对a2求导,并使其为0,可得:

     在这里假设:

     可得:

    根据迭代次数为第i次的约束条件,则上式在第i+1次可变为:

    可得:

    其中:

    而每次迭代a1和a2所满足的约束条件都可用下图来形象地描述:

    其中当y(1)和y(2)不相等时,满足:

    相等时,则满足:

    因此在第i+1次求解出的a2为:

    而由约束条件可得a1:

2.两个变量的选择    

    由于带约束条件的优化问题一般在所有变量均满足KKT条件时,那么这个时候的解便是最优解。那么我们可以选择那么不满足KKT条件的变量为第一个变量。当a1满足该条件时可得:

    由前面的g和E1假设可得:

    因此可得不满足该条件的所有情况为:

    这样通过遍历所有样本点,选出不满足该条件的第一个变量a1。那么选出第二个变量的原则是可使其有足够大的变化。由a2的更新公式可得,其在第i+1次的值依赖于E1-E2,所以当更新完a1和a2后,需要重新计算阈值b,根据:

    可得第i+1次的b1和E1为:

    而此时的b2也可表示为:

    误差在重新计算后为:

    

     到这里主要的求解过程基本就结束了~

文末福利

各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。

这个是一份Python代码速查表

下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图

怎样获取呢?可以添加我们的AI派团队的程序媛姐姐

一定要备注【高清图】哦

????????????????????

➕我们的程序媛小姐姐微信要记得备注【高清图】哦

来都来了,喜欢的话就请分享、点赞、在看三连再走吧~~~

KBS投稿全流程拆解:从模板准备到条件接收的实战指南 本文详细拆解了KBS期刊投稿的全流程,从模板准备、投稿系统操作到返修策略和条件接收。重点介绍了Cover Letter撰写技巧、Latex模板选择、审稿周期管理以及返修文件的系统准备方法,帮助研究者高效完成KBS投稿并提升接收概率。 阅读详情

相关推荐

从勒索软件攻击到数据重生:SQL Server MDF文件修复的实战生存指南

本文详细介绍了SQL Server MDF文件在遭遇勒索软件攻击后的修复策略,重点解析了Recovery Toolbox工具链的应用流程。从灾难评估到数据验证,提供分阶段修复操作、高级修复技术及防御加固方案,帮助企业快速恢复数据库并提升安全防护能力。

weixin_28327051的博客 715

SVM系列之初识SVM(一)

前言 支持向量机 SVM 是一种可以进行二分类、多分类以及回归分析的强大工具,并且 SVM 可以称得上表现较出色的监督学习算法,因此,我们一定得好好分析其原理,为啥它能够表现出色呢? 可视化的二分类问题 我们来看看下面这张图: 假设红色的圈表示样本正例,绿色的圈表示样本反例。此时我们需要找到一条直线将这两类样本划分开(先忽略新样本点)。从图中可以看出我们可以有很多条直线可以划分...

Rongxuan的博客 3168

【Windows】 解决联想为主的所有自带摄像头(integrate camera)打不开的毛病(特别点名小新、thinkbook、thinkpad、y7000...)

解决联想系列电脑打不开自带摄像头的问题

Iamruzi的csdn博客 3万+

svm算法原理_深入浅出SVM(PART II)

点击上方“海边的拾遗者”,选择“星标”公众号第一时间获取价值内容导读今天是该系列第八篇文章,介绍支持向量机原理(PART II)。 支持向量机(Support Vector Machine)是由Vapnik等人于1995年提出来的,之后随着统计理论的发展,支持向量机SVM也逐渐受到了各领域研究者的关注,在很短的时间就得到了很广泛的应用。支持向量机是被公认的比较优秀的分类模型,同时,...

weixin_39984105的博客 244

【COMSOL】修改内置物理场方程 模拟水沸腾的蒸汽泡运动

在COMSOL中通过弱贡献(weak contribution)节点,可以向任何内置模型方程中添加约束。这里,以模拟水沸腾的蒸汽泡运动为例,来讲一讲当我们研究的方程与模块方程不一样时,应该怎么增加新的贡献项。

u012161192的博客 9013

模拟ic入门——设计一个单极运放(一)单级运算放大器设计基础

主要介绍了单级运放的基本理论和使用场景

qq_64956710的博客 3750

深入浅出SVM(PART III)

点击上方“AI派”,选择“星标”公众号第一时间获取价值内容导读今天是该系列第九篇文章,介绍支持向量机原理(PART III)。 支持向量机(Support Vector Machi...

Oner.wv的专栏 236

CCF编程培训师资认证(PTA)标准(教学能力T)

随着计算机科学的不断发展,计算机相关技术应用到社会各个行业,越来越多的青少年参加到了计算机程序设计的学习中,这对编程培训教师提出了更高的专业要求和职业要求。CCF开展编程培训师资认证项目(Programming Trainer Accreditation,PTA),旨在建立一个规范的、科学的、权威且有公信力的三方认证。认证考试分编程专业能力(P)和教学能力(T)两部分。本标准根据《CCF编程培训师资认证条例》第十条制定,旨在明确教学能力(T)的测试标准。

lan_in的博客 1714

svm核函数_深入浅出SVM(PART III)

点击上方“AI派”,选择“星标”公众号第一时间获取价值内容导读今天是该系列第九篇文章,介绍支持向量机原理(PART III)。 支持向量机(Support Vector Machine)是由Vapnik等人于1995年提出来的,之后随着统计理论的发展,支持向量机SVM也逐渐受到了各领域研究者的关注,在很短的时间就得到了很广泛的应用。支持向量机是被公认的比较优秀的分类模型,同时,在支...

weixin_39948111的博客 151

Open3D 使用RANSAC分割平面【2026最新版】

使用RANSAC从点云中分割平面,用segement_plane函数。博客长期更新,本文最新更新时间为:2026年2月28日。

点云侠的博客 37万+

DRV8311HRRWR直流无刷(BLDC)电机驱动原理图设计

DRV8311HRRWR集成三个MOSFET 半H桥,用于驱动三相无刷直流电机(BLDC),适用于5V、9V、12V或18V直流电源轨或1S至4S电池供电应用。内部集成三个具有集成电流感测功能的电流感测放大器(CSA),可感测BLDC电机的三相电流,从而实现FOC和电流控制系统设计方案。集成保护特性:VM 欠压锁定 (UVLO)、 电荷泵欠压 (CPUV)、过流保护 (OCP)、热警告和热关断 (OTW/OTSD)、故障条件指示引脚 (nFAULT)支持 1.8V、3.3V 和 5V 逻辑输入。

zhusl6688的博客 1229

从Image Caption Generation理解深度学习(part III)

本系列文章面向程序员,希望通过Image Caption Generation,一个有意思的具体任务,深入浅出地介绍深度学习的知识,涉及到很多深度学习流行的模型,如CNN,RNN/LSTM,Attention等。本文为第三篇。 作者:李理,目前就职于环信,即时通讯云平台和全媒体智能客服平台,在环信从事智能客服和智能机器人相关工作,致力于用深度学习来提高智能机器人的性能。 相关...

lispython的专栏 1129

真随机数与伪随机数

前面我们学习了LFSR,这个玩意落地到具体的应用是什么呢?没错是寄存器,这里在网络找到了几个回答,这里做个记录,下面一起来学习一下吧。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1062

介绍我的一位计算机非科班好友以及他的干货文章

归辰是我的好朋友,他之前在C9高校获取了硕士学位,现在是一名大厂的算法工程师。他也是一名热爱生活的修行者,喜欢和朋友们聊生活心得。他的经历颇为传奇,从本科开始就参加各类科技以及创业比赛,...

weixin_40920183的博客 242

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 352

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘

长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。

helloagent的博客 312

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 333

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 606

优选算法:分治-归并排序

交易逆序对的总数

Wangshijie1015的博客 148

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 24

408 算法 06|堆与 Top-K:最小的 10 个数,到底该用数组还是堆

2022(42) 找 100 万个数里最小的 10 个,官方给了"10 元素有序数组"和"大根堆"两种答案。我把两种都实现并数了比较次数:k=10 时两者几乎打平,k=10000 时堆少 111 倍。另附 2021(42) 计数排序的比较次数与稳定性实测。

m0_56226131的博客 440

408 算法 04|主元素与三元组最小距离:两种“扫描时做决定“的思路

2013(41) 的主元素用摩尔投票一遍选出候选,但真正的考点是"选完必须验票";2020(41) 的三元组最小距离,三指针每次只挪最小的那个,靠的是 D=2×(max−min) 这个恒等式。两套完整 C 代码加真实输出,附官方评分档位表。

m0_56226131的博客 426

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 174

算法64,字母异位词分组

代码核心思路是:互为字母异位词的字符串,在对其字符进行排序后,一定会得到相同的字符串。因此,可以将排序后的字符串作为哈希表的键(Key)来进行分组。

sheshibenniaodan的博客 203

【MPC 算法】Python 实战:模型预测控制(MPC)算法原理与代码实现

本文介绍模型预测控制(MPC)原理与Python实现。MPC通过滚动优化预测未来状态,结合系统模型、目标函数与约束条件,动态生成最优控制序列。以一阶温度系统为例,使用CVXPY构建凸优化问题,实现加热功率的智能调控。代码包含模型预测、目标函数设计(含温度跟踪与控制平滑惩罚)、输入约束及滚动更新机制。仿真结果表明,MPC能快速稳定温度至目标值60℃,且控制动作平滑合理,体现其在复杂系统中的优越性。

赖德发的博客 51

算法61,判定是否为字符重排

两字符串能互为重排 ⇔。

sheshibenniaodan的博客 223
上一篇: 微软 VS Code 重大更新!Jupyter 插件不再是 Python 专属
下一篇: 学会 Python yield 关键词,此文就够了
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值