深入理解SVM,详解SMO算法

SVM及SMO 其中,$y_i$是第$i$个数据点的标签,$\textbf{x_i}$是第$i$个数据点的特征向量,$\textbf{w}$是SVM模型的权重向量,$b$是模型的偏置,$C$是一个超参数,用于控制分类器的误差和间隔大小之间的权衡。KKT条件是SVM求解过程中需要满足的条件,它们表明了SVM模型的一些性质,比如支持向量必须在边界上,同时不同类型的支持向量所对应的拉格朗日乘子具有不同的取值范围。可以发现,两个矩阵的乘积就是原始的矩阵A,因此分解是正确的。是等式和不等式约束,式子的意思是等式的左边。 阅读详情

今天是机器学习专题第35篇文章,我们继续SVM模型的原理,今天我们来讲解的是SMO算法。

公式回顾

在之前的文章当中我们对硬间隔以及软间隔问题都进行了分析和公式推导,我们发现软间隔和硬间隔的形式非常接近,只有少数几个参数不同。所以我们着重来看看软间隔的处理。

通过拉格朗日乘子法以及对原问题的对偶问题进行求解,我们得到了二次规划:

在这里插入图片描述

它应该满足的KTT条件如下:

在这里插入图片描述

也就是说我们要在这些条件下去求解(1)式的极值,在这个约束的情况下,虽然我们已经把式子化简成了只有一种参数 α \alpha α,但这个极值又应该怎么求呢?为了解决这个问题,我们需要引入一个新的算法,也是今天的文章的主要介绍的内容——SMO算法。

SMO算法简介

SMO的全写是Sequential Minimal Optimization,翻译过来是序列最小优化算法。算法的核心思想是由于我们需要寻找的是一系列的 α \alpha α值使得(1)取极值,但问题是这一系列的值我们很难同时优化。所以SMO算法想出了一个非常天才的办法,把这一系列的 α \alpha α中的两个看成是变量,其它的全部固定看成是常数。

这里有一个问题是为什么我们要选择两个 α \alpha α看成是变量而不选一个呢?选一个不是更加简单吗?因为我们的约束条件当中有一条是 ∑ y i α i = 0 \sum y_i\alpha_i=0 ∑yi​αi​=0,所以如果我们只选择一个 α \alpha α进行调整的话,那么显然会破坏这个约束。所以我们选择两个,其中一个变化,另外一个也随着变化,这样就可以保证不会破坏约束条件了。

为了方便叙述,我们默认选择的两个 α \alpha α分别是 α 1 , α 2 \alpha_1, \alpha_2 α1​,α2​。另外由于我们涉及 x i T x j x_i^Tx_j xiT​xj​的操作,我们令 K i j = x i T x j K_{ij}=x_i^Tx_j Kij​=xiT​xj​。这样上面的(1)式可以写成:

在这里插入图片描述

其中由于 y 1 = ± 1 y_1 = \pm 1 y1​=±1,所以 y i 2 = 1 y_i^2 = 1 yi2​=1,上面的Constant表示除了 α 1 , α 2 \alpha_1, \alpha_2 α1​,α2​以外的常数项。我们假设 α 1 y 1 + α 2 y 2 = k \alpha_1y_1 + \alpha_2y_2 = k α1​y1​+α2​y2​=k,其中 α 1 , α 2 ∈ [ 0 , C ] \alpha_1, \alpha_2 \in [0, C] α1​,α2​∈[0,C],由于 y i y_i yi​只有两个选项1或者-1,所以我们可以分情况讨论。

分情况讨论

首先我们讨论 y 1 y_1 y1​和 y 2 y_2 y2​不同号时,无非两种,第一种情况是 α 1 − α 2 = k \alpha_1 - \alpha_2 = k α1​−α2​=k,也就是 α 2 = α 1 − k \alpha_2 = \alpha_1 - k α2​=α1​−k,我们假设此时k > 0,第二种情况是 α 2 = α 1 + k \alpha_2 = \alpha_1 + k α2​=α1

支持向量机SVM与SMO算法的的详细推导过程 通俗来说,支持向量机就是一个二分类问题,根据所给的训练集数据集进行将数据的最佳划分,以达到测试集的最佳分类。支持向量机也叫做SVM,在实际工业的运用中,有着很强的可靠性和广泛的使用。接下来我们就来具体介绍一下这么好用的算法。所谓的二分类问题就是通过一条分割线来对数据进行分类,在二维情况下就是平面直角坐标系下的y=kx+b,当x的维度(对应与需要分类的条件,即属性增多的情况)大于等于2时,情况就上升的多维的情况,我们就引出了超平面的概念。 阅读详情

相关推荐

SVM支持向量机(SMO算法)的R实现

最近一段时间想好好把支持向量机学习下,并

u014543921的专栏 1919

深入理解SVM

SVM核心思想一最大间隔 SVM核心思想二决策公式 SVM核心思想三目标函数 SVM核心思想四优化理论 SVM核心思想五损失函数 SVM核心思想六核方法 SVM核心思想七SMO

ice_martin的博客 5248

从感知机(Perceptron)到支持向量机(SVM)

\quad 本文会介绍感知机和支持向量机的原理,着重阐述这两个算法中的一些逻辑推导思路。1.基础知识:函数距离(functional margins)和几何距离(geometrical margins)假设x∈Rnx\in\mathbb{R}^n,那么显然wTx+b=0w^Tx+b=0是一个超平面。通过推导,空间中的任意一点x(i)x^{(i)}到这个超平面的距离为L=wTx(i)+b||w||L=

sz464759898的专栏 1万+

机器学习算法(五):支持向量机(SVM)

支持向量机(Support Vector Machine,SVM)支持向量机是一种二分类模型。它的学习策略是间隔最大化,可以形式化为一个求解凸二次规划的问题,支持向量机的学习算法是求解凸二次规划的最优化问题。支持向量机的模型包括三种类型:线性可分支持向量机、线性支持向量机、非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器,也即线性可分支持向量机;当训练数据近似可分时,通过

tuqinag的专栏 2525

关于机器学习SVM中KKT条件的深入理解推导

本文面向在寻找KKT条件相关推到文章的读者,且默认前面关于svm的松弛下的模型和smo算法推到都已经了解。如果没有或者需要温习,请参看,文章虽然是本科时期所写比较粗糙,但在本文发表前已经重做修改(虽然界面比较丑),但耐心一定能看懂。若想要看视频的推导,也可以看我发现的宝藏up主,翻看里面的机器学习专栏。

吊车尾小队 1470

支持向量机(SVM)

SVM是有监督学习、属于判别模型(决策函数),非线性,有预测函数,有优化目标,有求解算法(SMO) 支持向量机(Support Vector Machine, SVM)的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。SVM是用来解决二分类问题的有监督学习算法,在引入了核方法之后SVM也可以用来解决非线性问题。 一般SVM有下面三种: 硬间隔支持向量机(线性可...

heda3的博客 1547

深入理解支持向量机(SVM)及SMO算法

本文还有配套的精品资源,点击获取 简介:支持向量机(SVM)是一种强大的监督学习方法,主要用于分类和回归分析。本课程将详细讲解SVM的构建、软间隔最大化、对偶问题转换、SMO算法实现、核函数选择等核心概念,以及如何进行训练与预测,并对关键参数进行调优。通过实际的MATLAB代码,学习者将深入理解SVM的工作原理及其在多领域的应用。 1. SVM基础知识与监督学习应...

weixin_35903223的博客 1535

SVM的SMO算法C语言实现与实战

支持向量机(Support Vector Machine,简称SVM)是一种强大的监督式学习方法,广泛应用于分类和回归任务。它基于统计学习理论的结构风险最小化原则,通过寻找一个最优的超平面来实现对数据的分类或回归预测。SVM在处理高维数据、小样本学习和非线性问题方面表现出色,已经成为机器学习领域的一个重要工具。在介绍SMO算法之前,必须先了解支持向量机(SVM)的基础。支持向量机是一种监督学习算法,主要用于解决分类和回归问题。

weixin_42499004的博客 1083

深入解析:SMO算法在MATLAB中的实现与应用

本文还有配套的精品资源,点击获取 简介:SMO算法是一种高效求解支持向量机(SVM)对偶问题的方法,通过降低求解复杂度提高训练速度。文章详细介绍了SVM的核心原理、SMO算法的步骤、MATLAB实现要点,以及如何结合SMA优化算法,为解决分类问题和参数优化提供技术支持。 1. SMO算法原理与优势 在机器学习领域,支持向量机(Support Vector M...

weixin_36289742的博客 1034

深入解析SMO算法及其在SVM中的应用

序列最小优化(SMO)算法是由John C. Platt在1998年提出的,用以高效地解决支持向量机(SVM)训练过程中的二次规划问题。SMO是第一个专为SVM训练设计的算法,由于其计算效率高,很快成为SVM应用中的主流训练方法。在此基础上,SMO算法也经过不断的改进与优化,以适应不同类型的数据集和处理更为复杂的问题。pudn.txt文件通常用于记录和指导SMO算法的具体实践操作。

weixin_36184718的博客 1077

支持向量机(SVM)算法详解与实战应用

支持向量是指那些距离最优分类超平面最近的训练样本点,它们恰好落在最大间隔的两条平行边界线上(即 $ w^T x + b = \pm 1 $)。正是这些点“支撑”起了整个分类器的几何结构,决定了法向量 $ w $ 和偏置项 $ b $ 的取值。其他远离边界的样本即使被移除也不会改变最终模型,这体现了SVM的高度选择性与鲁棒性。步骤内容意义1构建原始优化问题明确目标:最大间隔 + 正确分类2引入拉格朗日乘子将约束问题转为无约束增广函数3。

weixin_30995917的博客 1317

用Python可视化硅晶体生长:3D图解<100>/<110>/<111>晶向差异

本文通过Python 3D可视化技术,详细解析了硅晶体生长中<100>、<110>、<111>三种关键晶向的差异及其在半导体工业中的应用。从密勒指数转换到原子密度计算,结合交互式3D模型展示不同晶向的原子排列特性,帮助读者深入理解晶向对芯片性能的影响。

weixin_42567752的博客 563

双有源桥变换器(DAB)TPS控制:从理论建模到Simulink/PSIM仿真实践

本文深入探讨了双有源桥变换器(DAB)的三重移相(TPS)控制技术,从理论建模到仿真实现。文章详细分析了TPS相比SPS和DPS的优势,阐述了其12种工况的划分逻辑与电流应力最优调制策略,并提供了在Simulink和PSIM平台搭建仿真模型的详细步骤与实战经验,帮助工程师掌握这一高效控制方法。

white的博客 583

100kHz手持LCR表设计:高频阻抗测量与校准实战解析

阻抗测量是电子元件测试的基础,LCR表通过施加正弦激励并分析电压电流的幅值与相位,即可获取电容、电感、电阻的等效参数。在开关电源、无线充电等高频应用场景中,元件在100kHz下的ESR和阻抗特性尤为关键,传统10kHz手持仪表难以满足需求。本文从自动平衡桥原理出发,探讨如何将台式电桥的核心能力浓缩至手持设备,重点剖析高频寄生参数抑制、模拟链路设计、数字相敏检波算法及开路短路校准方法。通过实测数据验证,在100kHz频率下基本精度可达0.5%以内,为维修现场、产线抽检及硬件调试提供了可携带的精密测量方案。全文

weixin_33910191的博客 396

Exchange 2013/2016/2019修改附件大小限制

Exchange 2013/2016/2019邮件大小限制 可以在三个位置上配置Exchange上的默认邮件大小限制: 组织传输设置 发送/接收连接器设置 用户邮箱设置 1.打开Exchange Management Shell 使用命令查看默认限制 get-transportconfig | ft maxsendsize, maxreceivesize get-receiveconnector | ft name, maxmessagesize get-sendconnector | ft

高级基础架构专家-Hunter 6094

(付费请教,防遗忘记录)为什么EDEM bondV1 V2添加后还是没有胶结?????

最近用到了EDEM的胶结功能,在添加了bond V1和V2后,我发现无论颗粒半径设置为多少,接触半径设置为多少,胶结键的参数设置为多少,bond generated数量均为0!!!在后处理中bond中的力也通通为0!!我跟我的同门百思不得其解!!!!最终付费请教了一个大牛,解决了这个问题!!!!答案在文末

zheaa的博客 3099

【推荐100个unity插件】基于节点的程序化无限地图生成器 —— MapMagic 2

MapMagic 2是一款基于节点的程序化地形生成工具,可快速创建无限地图。主要功能包括:通过图形化节点编辑器构建地形逻辑;支持四个核心模块(对象、样条线、生物群落和笔刷);提供完整的操作指南,包括创建资产、使用编辑器窗口、节点操作等。工具具有直观的UI界面,支持节点连接、参数调整、图层管理等功能,并能实时生成地形。适合游戏开发者快速构建高质量的可玩地形环境。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3116

【腾讯小龙虾 WorkBuddy 专栏 03】技能(Skills)制作全教程!自定义技能编写、导出分享、导入使用一步到位

🔥腾讯AI智能体WorkBuddy自定义技能全攻略 本文为零基础用户提供WorkBuddy自定义技能的完整教程,涵盖技能概念、编写规范到实操全流程。核心内容包括: 技能本质:标准化任务指令模板,可固化重复操作流程 三大价值:一键执行重复任务/跨设备共享/降低使用门槛 实操演示:以"桌面文档自动分类"为例,分步讲解编写、测试、导出 共享方案:支持单技能/批量导出,通过任意渠道传输分享 导入指南:3秒完成他人技能加载,并提供常见问题解决方案 高阶优化:增加异常处理、版本管理等提升技能普适性

AI人人懂 2944

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 手把手教你配置git和git仓库
下一篇: 20行代码实现,使用Tarjan算法求解强连通分量
TechFlow
博客等级 码龄7年 347粉丝 276原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值