SVM(一):拉格朗日乘数法详解

article/2025/10/3 8:50:44

目录

  • what
  • 直观理解法
  • 高数书上的解法

学习SVM的过程中遇到了这个拉格朗日乘数法,之前学高数的时候也学过,不过看到视频里的直观理解法和高数书上的解法有些不同,于是在这里把这两种方法记录下来,也当做是一次理解的过程。

what

  • 先讲一下无条件极值,它是说没有约束条件下,单纯求一个函数极值的问题。比如我们高中就学过的求一个函数的极大值极小值,通常来说对该函数求导并使其等于0就可以得到该函数的极大值点和极小值点。
  • 与无条件极值相对的还有一个叫条件极值问题。首先什么是拉格朗日乘数法,它是解决条件极值问题的方法,举个很简单的例子,求表面积为a方的立方体的最大体积。在这个例子中,条件是表面积为a方,所要求的的极值是立方体的最大体积。你发现没法把这个条件和咱们的目标单独分离开,条件约束着咱们目标的实现,但是不得不承认,的确存在着这么一个极值,它还真就是在这个条件约束下的最大体积。那我们如何求解呢?

直观理解法

  • 见下图:
    在这里插入图片描述
    附上视频地址:https://www.bilibili.com/video/BV1ZE411p73x?p=1
  • emmm,视频讲的其实比较好,但是对我来说比较吃力,于是我困惑了好久,到后来才明白其中的含义,下面讲解一下上图中内容。
  • 首先将注意力放到左上角的图中,放大图见下:
    在这里插入图片描述
    图片地址:https://www.zhihu.com/question/38586401
    图中坐标x和y是相互独立的变量,红线呢,表示符合g(x,y)=c的(x,y)坐标对。图中的虚线,虚线是等值线。咱们要找的就是图中某个点(x,y),该坐标代入公式后既符合g(x,y)=c,又同时该点是所有符合这个要求的点中坐标带入f(x,y)得到的函数值最小的点。由此可知这个点只有一个,而且这个点一定落在红线上,那么问题就是红线上点这么多,究竟哪个才是目标点呢?
    答案是与等高线相切的点,因为倘若不相切的话就能沿着红线找到f(x,y)更小的点。
    那倘若符合相切条件的点不止一个呢?这种情况其实是存在的,如果真出现这种多解情况,那就将坐标全都带入f(x,y),然后根据题目要求选择最大或者最小的就好了。
  • 现在既然知道是相切的点了,那就好办了,相切的点存在一个共性,那就是梯度是共线的,别管切点对于虚线和红线来说的梯度分别是多大,反正这两个梯度共线就完事了,既然共线那么一切就迎刃而解。
  • 即在最优化解的时候:∇f(x,y)=λ(∇g(x,y)-C) (其中∇为梯度算子; 即:f(x,y)的梯度 = λ* g(x,y)的梯度,λ是常数,可以是任何非0实数,表示左右两边同向。)
  • 即:▽[f(x,y)+λ(g(x,y)−c)]=0,λ≠0,哇!此式子一出现,豁然开朗了吧!这个式子的梯度为0,岂不就是说设F(x,y)=f(x,y)+λ(g(x,y)−c),那么F(x,y)的梯度为0 ??
  • 它的梯度为零直接导致F(x,y)对于变量x和y的偏导数为0。好了,最终得出结论,该点对于任何一个变量的偏导数都为0!
  • 想在这里再解释一下梯度为0的意思,讲解梯度要用高一维度的方法来讲解,讲两个变量构成的函数梯度为0的情况就要用3D图形来讲解。 鉴于本人绘图技术一般,所以我直接说例子了,平底锅,想象一下一个平底锅放到xyz(z轴纵轴表示f(x,y),x和y为变量)坐标系里,底面与xoy面平行,我告诉你,这个底面上的点构成的开区间里面任意一点都是梯度为0的,即对于x轴也好,y轴也好的偏导数都等于0,你想呀,把这个锅底投影到f(x,y)ox和f(x,y)oy面上,是不是都是一条直线?偏导数为0。这就是梯度为0的几何解释,一定要记住,讲偏导数和梯度都要用高一维度的方法来讲。(导数其实就是一个变量情况下的偏导数,要用二维坐标图来讲。)

高数书上的解法

  • 见下图
    在这里插入图片描述
    我觉得教材有个地方写的不清楚,就是它说根据隐函数存在定理那个地方,其实教材是用两个变量来举例的,所以可以这么写,但是就像我刚才说的那个例子,表面积为a方的立方体的最大体积,这个例子有长宽高三个变量,这个时候虽然可以用隐函数存在定理(它适用于多元情况),但是这样就没法利用上图中提到的“由一元可导函数取得极值的必要条件”,因为文中是两元,根据前提等式条件消除了一元,然后就可以利用一元函数求导得到极值了,这其实是一个emmm不具有普适性的说法。倘若是长宽高三元呢?只给你一个条件,表面积为a方,无论如何也不可能根据这个等式消除两元然后使用一元可导求极值的。而看上图8-7的等式的话,以及提到的辅助函数,其实L辅助函数就是文章开头提到的方法中的F,然后8-7将L对于每个变量都求了一次偏导,使其等于0,其实这恰恰是咱们用第一种方法得到的结论,即梯度为0,所以对于每个变量的偏导=0。只不过高数书中的推导过程有些瑕疵。
  • 如有瑕疵还请指正~

http://chatgpt.dhexx.cn/article/ekaS0rTR.shtml

相关文章

拉格朗日乘数法什么时候考虑端点?解得的点是什么?

问题提出 2013年的真题有一道题是用拉格朗日乘数法只能求出来一个点,当时很费解,因此查阅相关资料后,对这部分的知识做一个小总结。 无条件极值和条件极值 首先,在求无条件极值的时候,我们求的是曲面上的极值点。 例…

拉格朗日乘数法的原理,我用10幅图把它讲清楚

机器学习是一个目标函数优化问题,给定目标函数f,约束条件会有一般包括以下三类: 仅含等式约束仅含不等式约束等式和不等式约束混合型 当然还有一类没有任何约束条件的最优化问题 关于最优化问题,大都令人比较头疼,首先…

java 获取随机数方法,java生成随机数的三种方法

随机数有三种生成方式: 1、通过Math.random()方法 2、通过System.currentTimeMillis()方法获取毫秒数 3、通过Random类 第一种:常用方法Math.random()方法,是获取0-1之间的double类型的小数,在通过int类型墙砖即可 示例&#xff1…

Java生成随机数的方式

目录 Random基础使用优缺点分析 SecureRandom基础使用 总结:持续更新 Random Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有规则的随机数。Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC)…

Java 生成随机数的 5 种方式,你知道几种?

点击上方“码农突围”,马上关注 这里是码农充电第一站,回复“666”,获取一份专属大礼包 真爱,请设置“星标”或点个“在看” 作者:专职跑龙套链接:https://www.jianshu.com/p/2f6acd169202 1. Math.random(…

java 生成随机数 (Random函数)

目录 一、Random是什么? 二、使用步骤 1.引入库 2.创建对象 3.生成随机数 4.完整代码 总结 一、Random是什么? 生成随机数函数 二、使用步骤 1.引入库 代码如下: import java.util.Random; 2.创建对象 代码如下: R…

Java中生成随机数的4种方式!

在 Java 中,生成随机数的场景有很多,所以本文我们就来盘点一下 4 种生成随机数的方式,以及它们之间的区别和每种生成方式所对应的场景。 1.Random Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有规则的…

谈论SQL注入攻击的重要性

"SQL注入”是一种利用未过滤/未审核用户输入的攻击方法(“缓存溢出”和这个不同),意思就是让应用运行本不应该运行的SQL代码。黑客或者恶搞的用户,利用了程序开发人员在开发的时候没有对SQL进行严格的处理而造成的漏洞&#…

【SQL注入攻击介绍】

目录 前言 本质和危害 分类 注入一般步骤 注入实战 前言 sql注入一直以来都稳居owasp-top10榜首,近年来更是爆出很多的数据库泄露攻击事件,如最近上海某公安存在数据库泄露事件。今天简单的分析以下sql注入的一些特性和方式: owasp-t…

SQL注入攻击与防护

目录 一、SQL注入攻击概述 1.1 SQL注入概念 1.1.1 标准查询过程 1.1.2 SQL注入定义 1.2 SQL注入根本原因 1.3 SQL注入条件 1.4 SQL注入防范 1.4.1 根本原因:过滤不严 1.4.2 安全设计原则:数据与代码分离 1.5 SQL注入流程 1.6 SQL注入分类 1.…

使用日志进行调查 - SQL 注入攻击示例

日志文件是服务器提供的非常有价值的信息。几乎所有服务器、服务和应用程序都提供某种日志记录。日志文件记录在服务或应用程序运行期间发生的事件和操作。 日志文件为我们提供了服务器行为的精确视图以及关键信息,例如何时、如何以及由谁访问服务器。此类信息可以…

Web—SQL注入攻击

文章目录 一、mysql常用语句二、SQL注入概念1. 产生原因2. 攻击分类 三、攻击流程1. 常用检测语句如何识别SQL注入2. Mysql注入常用函数3. 查询数据的核心语法4. 联合查询5. 报错注入6. 布尔盲注7. 时间盲注8. SQL注入爆库语句9. Sqlmap常用命令 四、常见防护手段及绕过方式1. …

DVWA SQL注入攻击

SQL注入原理 SQL注入就是通过SQL命令插入到web表单递交或输入域名页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在WEB表…

sql注入攻击实例mysql_SQL 注入攻击案例

一、检测注入点 二、判断是否存在 SQL 注入可能 三、数据库爆破 四、字段爆破 五、数据库表爆破 六、用户名、密码爆破 七、总结 一、检测注入点 首先,在 http://120.203.13.75:6815/?id=1 目标站点页面发现了 ?id,说明可以通过查询 id=1 的内容来获得页面。 这相当于查询语…

SQL注入攻击实战演示(附源码)

SQL注入是一种非常常见的数据库攻击手段,SQL注入漏洞也是网络世界中最普遍的漏洞之一。大家也许都听过某某学长通过攻击学校数据库修改自己成绩的事情,这些学长们一般用的就是SQL注入方法。 文章目录: 何谓SQL注入? SQL数据库操…

SQL注入攻击入门

目录 一、SQL注入的原理 SQL注入漏洞的条件 二、SQL注入的危害 三、SQL注入的分类 1、注入点数据类型分类 (1)数字型注入 (2)字符型注入 2、注入点位置分类 3、注入方法分类 (1)布尔型注入 &…

数学里上凹,下凹,上凸,下凸

https://zhidao.baidu.com/question/238541854.html 数学里上凹,下凹,上凸,下凸统称为曲线的凸知性,其是指在平面坐标系里的图形样式: 1、开口向上的曲线,称为上凹,或称为下凸,形状…

凸凹函数

凹凸函数的代数定义 若函数f(x)为凸函数,那么- f(x) 为凹函数。所以,清楚了凸函数,等价于清楚了凹函数 凸函数的定义 对于一元函数f(x),如果对于任意tϵ[0,1]均满足:f(tx1(1−t)x2)≤tf(x1)(1−t)f(x2),则称…

一元函数的凹性concavity以及二阶导数

凹性(concavity)与函数导数的变化率有关。一个函数f是上凹(即抛物线方向开口向上),其导数f是增函数,也意味着f的导数(即f)是正数;类似的一个函数f是下凹(即抛物线方向开口向下),其导…