SVM 和最优化

最优化建模算法理论之Armjio准则(数学原理及MATLAB实现) 本文采用MATLAB代码解决了采用非精确线搜索Armjio准则求出函数在迭代点处的下降方向。 阅读详情

1 前言

讲解支持向量机(SVM)的文章数不胜数,不过大多缺乏中间很多推导细节。

相比其他经典机器学习算法,SVM里面有更多的数学推导,用到拉格朗日乘子法,KKT条件,线性和非线性的核函数,这些都对非数学专业的入门者造成一定门槛。

不过挑战意味着机遇,完全打通这些知识,可能会助你提升一个台阶,尽管当下SVM用的可能没有之前火爆,但SVM作为在深度学习模型之前应用最广泛的模型之一,仍然有必要研究推导,尤其是如果想继续深造,读博、做科研的。

这篇文章是我之前写的SVM数学推导部分,用的方法比较直白,自信这个推导方法大家都能看明白。

SVM 直接从目标函数和约束部分开始。

2 拉格朗日乘子法

SVM经过拉格朗日乘子法,引入了 m 个系数,目标函数的形式如下:

变量含义和相关假设如下:

  • 设 w 向量维度是 m,

  • a 的维度是 m (特征个数),

  • 样本(X,Y)的第一维度代表样本个数,设为n; 第二维度是特征维度m,如第 i 个样本的向量表示为:

  • b是标量

因此,下式可以化简为:

为了更好地理解,先对w向量的第一个分量w1求偏导,和w1无关的分量全部消除,式子立即化简为如下:

这些只涉及到最简单的求导公式,求出偏导:

这样对w1的求导完毕,然后对整个的 w 向量求导:

已经求得L对w1的偏导,w1,w2,…,wn的地位是相同的,所以依次带入即可,上式可以化简为如下:

下面再利用一些基本的线性代数中行列式的一些知识,就可以转化为向量的表达,具体操作如下:

回到文章开始对w向量和xi向量的定义,得到如下向量表达:

因此,对w向量的偏导求解完毕,结果如下:

下面再对b求导,b是标量,直接一步可以得到结果:

根据拉格朗日乘子法的理论,令L对w偏导等于0,得到关系式:

同理,令L对b偏导等于0,得到关系式:

3 化简L

接下来,将得到2个关系式代入到L中,化简L.

为了更好理解,仍然采用更直观地表达方式,将向量完全展开,

将上面关系式代入到L之前,我们先展开这个式子,

仍然还是先抽出w的第一个分量w1,因为L完全展开中涉及到其平方,

所以,先化简w1的平方这一步。因为w1可以进一步展开成如下形式:

w1的平方,因此可以展成如下形式:

上面这个式子就是基本的多项式求和,w1的平方进一步浓缩下:

至此,w1的平法化简完毕,再整合所有其他w分量并求和,如下,整个推导过程依然相清晰,如下:

再对上式拆分成两个向量,如下:

再写成浓缩式子:

至此,代入w后化简中的第一项已经完毕。

再化简第二块:

对上式展开,并利用条件:,化简如下:

代入w满足的等式后,

提取出公因子后变为如下:

将上式写为向量形式:

因为都是向量,所以转置相等,故,

至此,第一二项求解完毕,整理后得到:

目标函数终于变为系数的函数,接下来使用KKT求解上式的最优解。关于 KKT 的理解,可以先尝试理解拉格朗日乘子法,而它的推导可借助下面这些图更加容易理解

4 拉格朗日乘子法

机器学习是一个目标函数优化问题,给定目标函数f,约束条件会有一般包括以下三类:

  1. 仅含等式约束

  2. 仅含不等式约束

  3. 等式和不等式约束混合型

当然还有一类没有任何约束条件的最优化问题

关于最优化问题,大都令人比较头疼,首先大多教材讲解通篇都是公式,各种符号表达,各种梯度,叫人看的云里雾里。

有没有结合几何图形阐述以上问题的?很庆幸,还真有这么好的讲解材料,图文并茂,逻辑推导严谨,更容易叫我们理解拉格朗日乘数法、KKT条件为什么就能求出极值。

1 仅含等式约束

假定目标函数是连续可导函数,问题定义如下:

然后,

通过以上方法求解此类问题,但是为什么它能求出极值呢?

下面解释为什么这种方法就能求出极值。

2 找找 sense

大家时间都有限,只列出最核心的逻辑,找找sense, 如有兴趣可回去下载PPT仔细体会。

此解释中对此类问题的定义:

为了更好的阐述,给定一个具体例子,锁定:

所以,f(x)的一系列取值包括0,1,100,10000等任意实数:

但是,约束条件h(x)注定会约束f(x)不会等于100,不会等于10000...

一个可行点:

3 梯度下降

我们想要寻找一个移动x的规则,使得移动后f(x+delta_x)变小,当然必须满足约束h(x+delta_x)=0

使得f(x)减小最快的方向就是它的梯度反方向,即


因此,要想f(x+delta_x) 变小,通过图形可以看出,只要保持和梯度反方向夹角小于90,也就是保持大概一个方向,f(x+delta_x)就会变小,转化为公式就是:

如下所示的一个delta_x就是一个会使得f(x)减小的方向,但是这种移动将会破坏等式约束: h(x)=0,关于准确的移动方向下面第四小节会讲到

4 约束面的法向

约束面的外法向:

约束面的内法向:

绿圈表示法向的正交方向

x沿着绿圈内的方向移动,将会使得f(x)减小,同时满足等式约束h(x) = 0

5 提出猜想

我们不妨大胆假设,如果满足下面的条件:


根据第四小节讲述,delta_x必须正交于h(x),所以:

所以:

至此,我们就找到f(x)偏导数等于0的点,就是下图所示的两个关键点(它们也是f(x)与h(x)的临界点)。且必须满足以下条件,也就是两个向量必须是平行的:

6 完全解码拉格朗日乘数法

至此,已经完全解码拉格朗日乘数法,拉格朗日巧妙的构造出下面这个式子:

还有取得极值的的三个条件,都是对以上五个小节中涉及到的条件的编码

关于第三个条件,稍加说明。

对于含有多个变量,比如本例子就含有2个变量x1, x2,就是一个多元优化问题,需要求二阶导,二阶导的矩阵就被称为海塞矩阵(Hessian Matrix)

与求解一元问题一样,仅凭一阶导数等于是无法判断极值的,需要求二阶导,并且二阶导大于0才是极小值,小于0是极大值,等于0依然无法判断是否在此点去的极值。

最优停止理论OptimalStoppingTheory经典秘书问题ClassicSecretaryProblem 最有停止理论 阅读详情

相关推荐

机器学习(九):支持向量机SVM(超详细理论基础)

机器学习(九):支持向量机SVM 一,前言 从学习机器学习到现在,也实现了大大小小得多个算法了。下面便会对机器学习中较为出名的一种算法SVM进行原理阐述和理论推导。可能内容比较多,还需要慢慢查看。 二,SVM是什么?  SVM的英文全称是Support Vector Machines,我们叫它支持向量机。支持向量机是我们用于分类的一种算法。让我们以一个小故事的形式,开启我们的SVM之旅吧。  在很...

Auraros的博客 2万+

最优停止法则

古希腊有一位大学者,名叫苏格拉底。一天,他带领几个弟子来到一块麦地边。那正是收获的季节。地里满是沉甸甸的麦穗。苏格拉底对弟子们说:你们去麦地里摘一个最大的麦穗,只许进不许退,我在麦地的尽头等你们。 上面是一个经典的寓言故事,这个问题其实有一个数学上的解决办法,这个办法就是最优停止法则。具体的做法就是在走完全程的37%之前一定不要做出选择,但是在走完37%之后,只要见到了比前面37%里面的麦穗都要大的那一棵,就立刻做出决定。这类问题最显著的特点就是严格的连续性,也就是有进无退的单向前进。这个结论也是用数学期

z867793137的博客 2425

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

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

tuqinag的专栏 2526

机器学习——支持向量机SVM之线性模型

一、没有免费的午餐定理 二、支持向量机SVM(support vector machine) 1、线性模型和非线性模型 2、如何在线性模型中画出一条直线(优化过程——vplink) 1)多少条? 2)如何画出最好的直线? 3、如何去描述这个优化的过程(数学描述) 1)几个重要的名词(间隔、支持向量) 2)一些定义(训练数据、标签、超平面等) 3)机器学习的任务与步骤 三、支持向量机的优化问题 1、优化问题(怎么将问题转化为最优化问题?) 2、转化为最优化问题的过程? 1)由支持向量

python_AI_fans的博客 3994

欧拉37%法则:理性决策的最佳策略

欧拉37%法则,也称37%法则或最优停止理论,是一种决策策略,用于在不确定性下做出最优选择。例如在一系列相亲中,前37%的候选人仅用于观察,之后一旦遇到比之前所有人都好的,就选择那个人。该法则旨在最大化选择最佳选项的概率。

howard2005的专栏 5750

机器学习之支持向量机SVM(完整版)

目录 1 支持向量机简介 2 线性可分支持向量机 2.1 什么是线性可分 2.2 什么是几何间隔 2.3 最大几何间隔分离超平面 2.4 支持向量和最大几何间隔 3 线性支持向量机 3.1 支持向量 4 KKT条件和对偶问题 4.1 线性可分支持向量机 4.2 线性支持向量机 5 非线性支持向量机 5.1 非线性分类问题...

L 4063

支持向量机SVM及python实现

支持向量机 SVM是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;核技巧使他成为实质上的非线性分类器。SVM是求解凸二次规划的问题最优化问题。 SVM可分为: 线性可分支持向量机:数据线性可分,通过硬间隔最大化,学习一个线性分类器。 线性支持向量机:数据近似线性可分,通过软间隔最大化,学习一个分类器。 非线性支持向量机:数据线性不可分,通过使用核技巧及软间隔最大化。 技术: SMO 核函数 序列最小最优化 输入空间为欧氏空间或这是离散集合、.

qq_43683133的博客 5421

叶绿体基因组提交NCBI全流程避坑指南

叶绿体基因组作为环状细胞器DNA,其数据提交并非简单上传,而是需严格遵循INSDC标准的学术出版行为。其核心原理在于元数据完整性、拓扑结构语义一致性与分类学路径精确匹配;技术价值体现在保障序列可追溯、可复现、可互操作;典型应用场景涵盖植物系统发育、条形码开发及合成生物学底盘构建。实践中,FASTA头行格式、feature table嵌套规则、taxid绑定及BankIt静默校验等环节极易引发失败。本文聚焦NCBI|叶绿体基因组数据上传中的高频报错与隐性约束,提供面向生物信息工程师的实操级规范解析。

weixin_31960565的博客 330

SVM支持向量机算法介绍

       如果你是一名模式识别专业的研究生,又或者你是机器学习爱好者,SVM...

lilyfoever1987的专栏 497

Cloudflare SaaS 优选IP实战:提升大陆访问速度的配置指南

本文详细介绍了如何通过Cloudflare SaaS优选IP提升中国大陆用户访问速度的配置指南。从基础环境准备到IP筛选方法,再到完整配置流程和效果验证,帮助用户突破免费套餐限制,精准优化网络线路,特别适合跨境电商和面向中国大陆用户的网站优化。

weixin_29231027的博客 689

阿里云搭建vps服务器的过程

最近突发奇想想要搭建一个阿里云的的vps服务器,下面是搭建的过程: 首先,登录阿里云网站: 搜索,esc控制台: 点击创建实例: 选择地区: 选择实例规格: 选择镜像: 将存储规格改成100G(40G可能不够用) 点击下一步: 这里面不需要更改,点击下一步 设置连接密码即可 创建成功后点击启动 点击远程连接,然后立即登录,在弹出的框里面输入之前设置的密码即可 登录成功:

zhanchulan的博客 3375

SVM的最优化问题

最优化理论是数学的一个分支,在SVM里有着广泛的应用,这里就稍微介绍一下学习的心得体会,如果有兴趣,可以去翻阅一些SVM书籍,或者最优化理论书籍,里面多少都会讲到的。问题的形成&nbsp最优化问题,给定在域Ω⊆Rn{\Omega} \subseteq R^nz≡w⋅x+bz \equiv w \cdot x + b

baiyu9821179的专栏 2771

STGCN实战:从零构建PyTorch时空图卷积网络预测城市交通流

本文详细介绍了如何使用PyTorch从零构建时空图卷积网络(STGCN)进行城市交通流预测。通过将交通网络建模为图结构,并融合时间卷积与空间图卷积,STGCN能有效捕捉交通流的时空依赖性。文章提供了从数据预处理、核心模块(TimeBlock与STGCNBlock)搭建、模型训练到实战技巧的完整指南,帮助开发者快速掌握这一前沿的交通速度预测技术。

wasm7browser的博客 250

深入浅出—一文看懂支持向量机(SVM)

作者:耳东陈东北大学副教授如果你是一名模式识别专业的研究生,又或者你是机器学习爱好者,SVM是一个你避不开的问题。如果你只是有一堆数据需要SVM帮你处理一下,那么无论...

fengdu78的博客 2177

Kylin V10 ARM64离线安装ffmpeg实战指南

在国产化替代浪潮下,基于银河麒麟V10和ARM架构(如飞腾、鲲鹏)的内网服务器部署音视频处理服务成为常态。由于系统默认软件源缺乏aarch64包且无法连接外网,常规yum安装方式难以奏效。本文从离线安装的通用概念出发,剖析了在Kylin V10上安装ffmpeg的三大路线及其原理,重点介绍了源码编译法,包括依赖梳理、工具链准备、编译参数配置、常见错误排查等关键环节。同时,将这套依赖管理与离线部署方法论延伸至nginx、node.js、Python库及docker等场景,帮助读者建立一套可复用的国产化系统离线

weixin_33417488的博客 148

图像去模糊(二)——Richardson–Lucy算法

Richardson Lucy Algorithm(Richardson-Lucy算法详解及效果实例)

xueruhongchen的博客 3万+

支持向量机——线性可分支持向量机

GitHub 简书 优快云 1 线性可分支持向量机 支持向量机(Support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,他的学习策略就是间隔最大化,同时该方法可以形式化为一个求解图二次规划。 支持向量机可分为三类: 线性可分支持向量机、硬间隔(hard-margin svm) 线性支持向量机、软间隔(soft-margi...

u014630987的博客 4789

华为OD机试 - 直捣黄龙 - 广度优先搜索BFS(Python/JS/C/C++ 新系统 200分)

从样例 1 可知:5 / 2,2 -> 输出 2 9如果按“移动步数”计算应该是 8,但题目输出是 9,说明这里的“路径长度”统计的是 路径上经过的节点数量。最短路径条数:ways[end]路径长度:dist[end] + 1。

学Java,找哪吒 125

SVM 支持向量机算法原理(详细总结)和python代码实现

支持向量机是由Vapnik等人于1995年提出来的,是被公认的比较优秀的分类模型,逐渐受到了各领域研究者的关注。 支持向量机的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大化使它有别于感知机。学习策略是间隔最大化,可形式化求解一个凸二次规划的问题。 1 线性可分支持向量机 给定一个线性可分的训练集,找到一个间隔最大的分隔超平面,将两类数据正确划分。 1.1 函数间隔...

chaojianmo的博客 4597

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

最优停止理论的推导_SVM 和最优化

先公布本周留言送书的名单,点赞最多和留言最走心的名单已在今天通知,详情点击下文:Pandas 数据分析:3 种方法实现一个实用小功能另外一位从分享最多的粉丝中选出,目前排名第一位的自动获得一本,请微信联系我,告知邮寄地址。1 前言讲解支持向量机(SVM)的文章数不胜数,不过大多缺乏中间很多推导细节。相比其他经典机器学习算法,SVM里面有更多的数学推导,用到拉格朗日乘子法,KKT条件,线性...

weixin_31208627的博客 674

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

[机器学习笔记] 支持向量机SVM如何求解最佳模型?

资料来源:机器学习面试之有必要手推SVM吗? https://www.jianshu.com/p/f4c7bc6c4ce2 在机器学习中,支持向量机SVM是监督学习模型,可以分析数据,识别模式,用于分类和回归分析。 支持向量机在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 1. SVM的基本思想 最原始的支持向量机SVM是为了解决二...

jieming2002的博客 6219

【学习笔记】SVM算法-松弛变量和最优化条件

关于支持向量机,大神July在《理解SVM的三层境界》中已经做了非常详细的讲解。博客链接如下: http://blog.youkuaiyun.com/v_july_v/article/details/7624837 在这篇文章中,我将基于S.S.Keerthi等人的文章《Improvements to Platt’s SMO Algorithm for SVM Classifier Design》,给出含

xavier_wu01的专栏 7033

关于SVM中函数间隔与几何间隔问题总结(SVM系列)

1.定义 1.1函数间隔: 1.2 几何间隔: 2.相同的超平面,会产生不同的函数间隔 在优化问题中,由于函数间隔会导致优化函数趋于无穷大,故我们需要找到一个与超平面一一对应的间隔表示方式,即几何间隔,其通过将超平面的法向量的模固定为1,从而使得一个超平面与一个点之间,只有唯一的间隔函数。 3.最优化问题 3.1 在SVM中,最优化问题可以表示为如上所示,记作 形式(a)。 通过带入函数间隔与几何间隔的关系式,可以得到如下形式,记作 形式(b): 3.2 将函数间隔规定为1 可以

happy_lizz的博客 1700
上一篇: NumPy基础用法总结
下一篇: 最全的损失函数汇总
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值