机器学习中的数学——拉格朗日乘子法(一):等式约束的拉格朗日乘子法

article/2025/8/20 21:10:11

分类目录:《机器学习中的数学》总目录
相关文章:
·拉格朗日乘子法(一):等式约束的拉格朗日乘子法
·拉格朗日乘子法(二):不等式约束与KKT条件


拉格朗日乘子法是一种寻找多元函数在一组约束下的极值的方法。通过引入拉格朗日乘子,可将有 d d d个变量与 k k k个约束条件的最优化问题转化为具有 d + k d+k d+k个变量的无约束优化问题求解。即对于:
min ⁡ f ( x ) s.t. g i ( x ) = 0 , i = 1 , 2 , ⋯ , k \begin{aligned} \min&\quad f(x)\\ \text{s.t.}&\quad g_i(x)=0\qquad ,i=1,2,\cdots,k \end{aligned} mins.t.f(x)gi(x)=0,i=1,2,,k我们定义拉格朗日函数:
L ( x , λ ) = f ( x ) + λ i g i ( x ) L(x,\lambda)=f(x)+\lambda_ig_i(x) L(x,λ)=f(x)+λigi(x)
我们即可将原优化问题转化为:
∇ X L ( x , λ ) = ∇ f + λ i ∇ g k = 0 ∇ λ L ( x , λ ) = g ( x ) = 0 \begin{aligned} \nabla_X L(x,\lambda)&=\nabla f+\lambda_i \nabla g_k=0\\ \nabla_\lambda L(x,\lambda)&=g(x)=0 \end{aligned} XL(x,λ)λL(x,λ)=f+λigk=0=g(x)=0

先考虑一个等式约束的优化问题。假定 x x x d d d维向量,欲寻找 x x x的某个取值 x ∗ x^* x,使目标函数 f ( x ) f(x) f(x)最小且同时满足 g ( x ) = 0 g(x)=0 g(x)=0的约束。从几何角度看,该问题的目标是在由方程 g ( x ) = 0 g(x)=0 g(x)=0确定的 d − 1 d-1 d1维曲面上寻找能使目标函数 f ( x ) f(x) f(x)最小化的点。此时可以得到如下结论:

  • 对于约束曲面上的任意点 x x x,该点的梯度 ∇ g ( x ) \nabla g(x) g(x)正交于约束曲面
  • 在最优点 x ∗ x^* x,目标函数在该点的梯度 ∇ f ( x ∗ ) \nabla f(x^*) f(x)正交于约束曲面

由此可知,在最优点 x ∗ x^* x,如下图所示,梯度 ∇ g ( x ) \nabla g(x) g(x) ∇ f ( x ∗ ) \nabla f(x^*) f(x)的方向必相同或相反,即存在 λ ≠ 0 \lambda\neq0 λ=0使得:
∇ f ( x ∗ ) + λ ∇ g ( x ∗ ) = 0 \nabla f(x^*) + \lambda\nabla g(x^*) =0 f(x)+λg(x)=0
λ \lambda λ称为拉格朗日乘子,我们定义拉格朗日函
L ( x , λ ) = f ( x ) + λ g ( x ) L(x,\lambda)=f(x)+\lambda g(x) L(x,λ)=f(x)+λg(x)
不难发现,将其对 x x x的偏导数 ∇ x L ( x , λ ) \nabla_x L(x,\lambda) xL(x,λ)置零即得上式。同时,将其对入的偏导数 ∇ λ L ( x , λ ) \nabla_\lambda L(x,\lambda) λL(x,λ)置零即得约束条件 g ( x ) = 0 g(x)=0 g(x)=0

等式约束
于是,原约束优化问题可转化为对拉格朗日函数 L ( x , λ ) L(x,\lambda) L(x,λ)的无约束优化问题。

现在我们以一个常见的例子来考虑拉格朗日乘子法。假设 x x x为2维向量,且:
g ( x ) = x 1 2 x 2 − 3 = 0 g(x)=x_1^2x_2-3=0 g(x)=x12x23=0
现在我们想求其上的点与原点的最短距离,即:
min ⁡ f ( x ) = x 1 2 + x 2 2 \min f(x)=x_1^2+x_2^2 minf(x)=x12+x22
此时,圆( f ( x ) f(x) f(x))和曲线( g ( x ) g(x) g(x))相切,也就是在该点切线相同:

示例图

此时 f f f梯度:
∇ f x 1 = 2 x 1 ∇ f x 2 = 2 x 2 \nabla f_{x_1}=2x_1 \\ \nabla f_{x_2}=2x_2 fx1=2x1fx2=2x2
此时 g g g梯度:
∇ g x 1 = 2 x 1 x 2 ∇ g x 2 = x 1 2 \begin{aligned} &\nabla g_{x_1}=2x_1x_2\\ &\nabla g_{x_2}=x_1^2 \end{aligned} gx1=2x1x2gx2=x12

梯度向量平行,我们可以写为:
∇ f = λ ∇ g \nabla f=\lambda \nabla g f=λg

所以我们可得:
∇ f = λ ∇ g g ( x ) = x 1 2 x 2 − 3 = 0 \begin{aligned} \nabla f&=\lambda \nabla g\\ g(x)&=x_1^2x_2-3=0 \end{aligned} fg(x)=λg=x12x23=0
我们构造拉格朗日函数:
L ( x , λ ) = f ( x ) + λ g ( x ) L(x,\lambda)=f(x)+\lambda g(x) L(x,λ)=f(x)+λg(x)
并利用拉格朗日乘子法即可得到与上式相同的等式:
∇ X L ( x , λ ) = ∇ f + λ ∇ g = 0 ∇ λ L ( x , λ ) = g ( x ) = x 1 2 x 2 − 3 = 0 \begin{aligned} \nabla_X L(x,\lambda)&=\nabla f+\lambda \nabla g=0\\ \nabla_\lambda L(x,\lambda)&=g(x)=x_1^2x_2-3=0 \end{aligned} XL(x,λ)λL(x,λ)=f+λg=0=g(x)=x12x23=0


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

相关文章

拉格朗日乘子法详解

一、拉格朗日乘子法简介 拉格朗日乘子法的应用十分广泛,它是SVM的理论基础,是凸优化的重要研究部分。它用于求解约束条件下的极值问题,过程简单巧妙,也是各类考试的常考题型。然而,拉格朗日乘子法的原理我却一直模模糊…

日志服务与日志分析工具

系统日志生成服务 功能: 日志服务是根据日志配置文件进行提供相应的功能服务,对于各种服务的信息等级的设定将不同服务的不懂等级信息记录在不同的文件里面。 日志管理服务分类: 1.rsyslogd 普通日志管理服务 采集各种服务产生的信息根据…

Web日志分析

目录 1. Web日志 2. 日志分析技巧 常用分析工具: Apache日志分析技巧: 3. 日志分析案例 1、定位攻击源 2、搜索相关日志记录 3、对找到的访问日志进行解读,攻击者的访问路径..... 4. 日志统计分析技巧 1. Web日志 Web访问日志记录了W…

logparser日志分析详解

Logparser是微软的一款日志分析工具,使用方便功能强大。 支持的日志类型: IISW3C,NCSA,IIS,IISODBC,BIN,IISMSID,HTTPERR,URLSCAN,CSV,TSV,W3C,XML,EVT, ETW,NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS,COM 可输出的文件类型 CSV, TSV, XML, DATAGRID, C…

(分析日志)

日志的分析也是一个很大的概念,可能对于运维和安全人员关注的是系统的所有日志,包括访问日志、系统监测的日志等,但是开发人员对于日志更多的是: 监控系统运行错误,并获取错误时的相关数据包记录重要的信息&#xff0…

日志分析及存储

一、系统日志概述 1.日志的用途 系统和程序的“日记本” −记录系统、程序运行中发生的各种事件 −通过查看日志,了解及排除故障 −信息安全控制的“依据” 2.Linux日志的种类 内核及系统日志 −由系统服务rsyslog统一管理,格式相似 用户日志 …

【linux】——日志分析

文章目录 1. 日志文件1.1 日志文件的分类1.2 日志文件保存位置1.2.1 内核及系统日志1.2.2 日志消息的级别1.2.3 日志记录的一般格式1.2.4 用户日志分析 程序日志分析日志管理策略 远程收集日志 1. 日志文件 1.1 日志文件的分类 ● 日志文件是用于记录Linux系统中各种运行消息的…

python日志分析

日志分析 生产中会出现大量的系统日志、应用程序日志,安全日志等,通过贵日志的分析可以了解服务器的负载,健康状况,可以分析客户的分布情况、客户的行为,甚至基于这些分析可以做出预测。 一般采集流程: 日…

日志分析工具

iis、windows日志做日志分析比较麻烦,这里找到了一款好用的免费的日志分析工具 Log Parser Lizard,下载这个工具之前建议先安装LogParser虽然他会自动弹窗提示。 1. 安装软件 安装没什么好说的一直下一步下一步就行 启动之后点击OK 弹出激活页面让激活…

redis日志分析

首先复习一下IO流: 关于读取文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取 InputStreamReader 字节流通向字符流的桥梁 以UTF-8编码读取 FileInputStream 从文件系统中的某…

【日志分析】Web日志分析

ox01 Web日志 Web访问日志记录了Web服务器接收处理请求及运行时错误等各种原始信息。通过对WEB日志进行的安全分析,不仅可以帮助我们定位攻击者,还可以帮助我们还原攻击路径,找到网站存在的安全漏洞并进行修复。 我们来看一条Apache的访问日…

日志分析方法概述

注:写得有点乱,但目前市面上这方面内容的确不多,mark一下~ http://blog.csdn.net/pkueecser/article/details/9569251 大数据应用--系统监控与日志分析 http://wenku.baidu.com/link?url8CJ-URMjVTVaw3GM1AZ2w9A7V0CIeRz3dx7xvysILLk6IdW…

日志分析软件

来源:http://onlyktt.blog.hexun.com/32563117_d.html 在经营管理亿枝客过程中,就遇到了非常多的困难。所以不断的学习知名与不知名互联网创业前辈留下来的经验特别重要,特别是上次与ZAC厦门交流后,以及拜读他写的《网络营销实践密…

简单的Web日志分析

Web日志分析 以apache为例 访问日志记录过程 apache日志大致分为两类:访问日志和错误日志 访问日志记录的过程: 客户端向web服务器发送请求,请求中包含客户端的IP、浏览器类型(User-Agent)、请示的URL等信息 web服务器向客户端返回请示的…

Window日志分析

0x01 Window事件日志简介 Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。 Windows主要有以下三类日志记录系统事件:应…

LOG日志详解

欢迎关注作者博客 简书传送门 文章目录 Log的用途记录Log的基本原则日志的级别划分日志对性能的影响什么时候输出日志系统启动参数、环境变量异常捕获处函数获得期望之外的结果时关键操作 日志输出的内容什么时候使用J2SE自带的日志 典型问题分析该用日志的地方不用啰嗦重复、没…

日志管理与分析

ISBN: 978-7-121-40632-4 编著:日志易学院 页数:198页 阅读时间:2022-09-25 推荐指数:★★★★☆ 本书是国产日志易团队按照主流的日志管理系统的实践来写的, 讲解了日志分析的基本概念、法律法规、技术选型、采集和解…

Linux日志分析

文章目录 一、系统日志介绍二、rsyslog管理三、实践1.将ssh服务日志单独存放2.远程日志3.排错 一、系统日志介绍 无论你的操作系统是 Windows 还是 Linux ,只要使用操作系统,就都会产生日志。日志可以说记录了你在PC上的一切操作。就像小时候写的日记。…

日志分析方法

日志分析方法 日志分析方法分析方法: 1.特征字符分析(Signature-based):2.访问频率分析(Frequency analysis) 1.漏洞扫描检测:2.暴力破解检测:3.webshell 检测 难点:风险评估模型:参…

【日志分析】Window日志分析

0x01 Window事件日志简介 Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。 Windows主要有以下三类日志记录系统事件:应…