拉格朗日函数与广义拉格朗日函数

2023-11-05

拉格朗日函数用来求解等式约束的最优化问题;广义拉格朗日函数用来求解不等式约束的最优化问题。

无约束优化问题

关于优化问题包括无约束优化问题,等式约束优化问题,不等式约束优化问题。这里简略地介绍一下无约束优化问题。(以后再来填坑。)
考虑无约束优化问题:
min ⁡ x f ( x ) \min \limits_{x} f(x) xminf(x)

根据Fermat定理,直接找到使得 ∇ x f ( x ) = 0 \nabla_x f(x)=0 xf(x)=0的点即可。若无解析解,可以使用梯度下降或牛顿方法等使 x x x沿负梯度方向逐步逼近极小值点。2

等式约束优化

目标函数加上等式约束条件:
min ⁡ x f ( x ) s . t . h i ( x ) = 0 , i = 1 , 2 , . . . , m \begin{aligned} &\min \limits_x f(x) \\ &s.t. \quad h_i(x)=0, \quad i=1,2,...,m \end{aligned} xminf(x)s.t.hi(x)=0,i=1,2,...,m
由于加上了等式约束条件,此时不一定能找到令 ∇ x f ( x ) = 0 \nabla_x f(x)=0 xf(x)=0的可行解,只需要在可行域内找到使得 f ( x ) f(x) f(x)取最小值的点。常用的方法为拉格朗日乘子法,利用拉格朗日函数 L ( x , α ) L(x,\alpha) L(x,α)
L ( x , α ) = f ( x ) + ∑ i = 1 m α i h i ( x ) L(x,\alpha)=f(x)+\sum_{i=1}^m \alpha_i h_i(x) L(x,α)=f(x)+i=1mαihi(x)
其中 α i \alpha_i αi为拉格朗日乘子。然后分别对 x x x α = ( α 1 , . . . , α m ) T \alpha=(\alpha_1,...,\alpha_m)^T α=(α1,...,αm)T求导并令导数为0:

{ ∇ x L ( x , α ) = 0 ∇ α L ( x , α ) = 0 \left\{ \begin{aligned} \nabla_x L(x,\alpha) & = 0 \\ \nabla_\alpha L(x,\alpha) & = 0 \end{aligned} \right. {xL(x,α)αL(x,α)=0=0
通过求解上述式子,获得极值点。

为什么拉格朗日乘子法能够得到最优值?

在这里插入图片描述
如图所示,满足条件的极值点应该是在目标函数的等高线与约束函数曲线相切的点,即等高线与约束曲线在该点的法向量必须共线,因此最优值必须满足:
∇ x f ( x ) = a × ∇ x g ( x ) \nabla_x f(x)=a × \nabla_x g(x) xf(x)=a×xg(x)
这就是上述的 ∇ x L ( x , α ) = 0 \nabla_x L(x,\alpha)=0 xL(x,α)=0。再加上约束条件 h i ( x ) = 0 h_i(x)=0 hi(x)=0,即 ∇ α L ( x , α ) = 0 \nabla_\alpha L(x,\alpha)=0 αL(x,α)=0。求解二式,可得到最优解。

不等式约束优化

给定不等式约束问题:
min ⁡ x f ( x ) s . t . h i ( x ) = 0 ,   i = 1 , 2 , . . . , m   g j ( x ) ≤ 0 ,   j = 1 , 2 , . . . , n \begin{aligned} &\min \limits_x f(x) \\ &s.t. \quad h_i(x)=0, \ i=1,2,...,m \\ & \qquad \ g_j(x) \leq 0, \ j=1,2,...,n \end{aligned} xminf(x)s.t.hi(x)=0, i=1,2,...,m gj(x)0, j=1,2,...,n

定义广义拉格朗日函数:
L ( x , α , β ) = f ( x ) + ∑ i = 1 m α i h i ( x ) + ∑ j = 1 n β i g i ( x ) L(x,\alpha,\beta)=f(x)+\sum_{i=1}^m \alpha_i h_i(x)+\sum_{j=1}^n \beta_i g_i(x) L(x,α,β)=f(x)+i=1mαihi(x)+j=1nβigi(x)

加上不等式约束后可行解 x x x需满足KKT条件:
∇ x L ( x , α , β ) = 0 β j g j ( x ) = 0 ,   j = 1 , 2 , . . . , n h i ( x ) = 0 ,   i = 1 , 2 , . . . , m g j ( x ) ≤ 0 ,   j = 1 , 2 , . . . , n β j ≥ 0 ,   j = 1 , 2 , . . . , n \begin{aligned} \nabla_x L(x,\alpha,\beta) &= 0 \\ \beta_j g_j(x) &= 0, \ j=1,2,...,n \\ h_i(x) &= 0, \ i=1,2,...,m \\ g_j(x) &\leq 0, \ j=1,2,...,n \\ \beta_j &\geq 0, \ j=1,2,...,n \end{aligned} xL(x,α,β)βjgj(x)hi(x)gj(x)βj=0=0, j=1,2,...,n=0, i=1,2,...,m0, j=1,2,...,n0, j=1,2,...,n

满足KKT条件后极小化广义拉格朗日函数即可得到在不等式约束条件下的可行解。

对偶问题

关于广义拉格朗日函数有一个重要的结论,即:
max ⁡ α , β ; β i ≥ 0 L ( x , α , β ) = { f ( x ) ,   x 满 足 原 始 问 题 约 束 + ∞ ,   其 他 \max \limits_{\alpha,\beta; \beta_i \geq 0} L(x,\alpha, \beta) = \left\{ \begin{aligned} &f(x), \ x满足原始问题约束 \\ &+\infty, \ 其他 \end{aligned} \right. α,β;βi0maxL(x,α,β)={f(x), x+, 

这很容易证明。当 h i ( x ) = 0 h_i(x)=0 hi(x)=0 g j ( x ) ≤ 0 g_j(x) \leq 0 gj(x)0时,只需令 β j = 0 \beta_j=0 βj=0,可得 max ⁡ α , β ; β i ≥ 0 L ( x , α , β ) = f ( x ) \max \limits_{\alpha,\beta; \beta_i \geq 0} L(x,\alpha,\beta)=f(x) α,β;βi0maxL(x,α,β)=f(x)。这样原始优化问题可转化无约束优化问题:
min ⁡ x f ( x ) = min ⁡ x max ⁡ α , β ; β i ≥ 0 L ( x , α , β ) \min \limits_x f(x)=\min \limits_x \max \limits_{\alpha,\beta; \beta_i \geq 0} L(x,\alpha,\beta) xminf(x)=xminα,β;βi0maxL(x,α,β)

定义对偶函数:
D ( α , β ) = min ⁡ x L ( x , α , β ) D(\alpha,\beta)=\min \limits_x L(x,\alpha,\beta) D(α,β)=xminL(x,α,β)

则原问题的对偶问题为:
max ⁡ α , β ; β i ≥ 0 min ⁡ x L ( x , α , β ) \max \limits_{\alpha,\beta;\beta_i \geq 0} \min \limits_x L(x,\alpha,\beta) α,β;βi0maxxminL(x,α,β)

对偶问题的解 d ∗ d^{*} d与原问题的解 p ∗ p^* p满足如下关系:
d ∗ ≤ p ∗ d^* \leq p^* dp

即对偶问题的解是原问题解的下确界。

在KKT条件下,等式成立,因此我们可以通过求解对偶问题来求解原问题。

参考资料:

  1. 广义拉格朗日函数的理解
  2. 约束优化方法之拉格朗日乘子法与KKT条件
  3. 拉格朗日对偶
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

拉格朗日函数与广义拉格朗日函数 的相关文章

  • 【Inception-v3模型】迁移学习 实战训练 花朵种类识别

    参考博客 TensorFlow 迁移学习 使用Inception v3 非常感谢这个博主的这篇博客 我这篇博客的框架来自于这位博主 然后我针对评论区的问题以及自己的实践增加了一些内容以及解答 github 代码 知识储备 迁移学习是将一个数
  • 决策树(Decision Tree,DT)(ID3、C4.5、剪枝、CART)

    目录 1 算法简介 2 特征选择 3 生成决策树 ID3 C4 5 4 修剪决策树 5 CART算法 CART回归树的生成 CART分类树的生成 CART剪枝 1 算法简介 决策树模型是树形结构 既可以用于分类 也可以用于回归 一颗决策树由
  • python线性拟合、不确定性

    1 线性回归 可以直接调用sklearn中的linear model模块进行线性回归 import numpy as np from sklearn linear model import LinearRegression model Li
  • AdaBoost算法讲解以及MATLAB实现

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 算法描述 二 算法步骤是什么 三 数据集说明 可以自己增加数据集 四 算法实现MATLAB 1 主函数 2 找到误差率最小的弱函数 3 分别计算弱分类函数 并计
  • 机器学习 之线性回归(包含推导过程)

    参考B站视频新手狂喜 目前B站最全最清晰的 机器学习算法 教程 从零开始详细解读 原理 代码实现 通通都在这里了 收藏慢慢学 决策树 随机森林 聚类分析 人工智能 哔哩哔哩 bilibili 线性回归 eg 银行贷款 数据 工资和年龄 特征
  • 机器学习笔记-回归评价指标scikit-learn

    scikit learn中回归指标 from sklearn metrics import mean squared error 均方误差MSE from sklearn metrics import mean absolute error
  • 信息熵,信息增益

    信息熵 信息增益 概要 实例一 实例二 概要 信息增益表示得知特征A的信息而使得类Z的信息的不确定性减少的程度 特征A对数据集D的信息增益 G D A 定义为集合的信息熵 H D 与特征A给定条件下D的信息条件熵 H D A 之差 即公式为
  • Win10系统安装TensorRT

    一 Win10系统安装GPU版本CUDA Cudnn 二 Win10系统安装TensorRT 文章目录 环境搭建系列文章目录 TensorRT简介 一 版本对应关系 二 下载及安装 1 TensorRT 2 No module named
  • 模型分类model

    模型可以按照多个维度进行分类 以下是常见的几种模型分类方式 1 根据应用领域分类 数学模型 基于数学原理和方程式来描述和解决问题 如微积分模型 线性代数模型等 物理模型 基于物理原理和规律来模拟和解释现象 如力学模型 电路模型等 经济模型
  • ChatGPT 原理与核心技术介绍(自然语言处理NLP的发展与Transformer的概念)

    文章目录 1 定义 ChatGPT与自然语言处理NLP 1 1 图灵测试 1 2 建模形式 多轮历史对话原理 1 3 NLP 的发展历程 规则 gt 统计 gt 强化学习 1 4 NLP 技术的发展脉络 1 5 ChatGPT 的神经网络结
  • 拉格朗日函数与广义拉格朗日函数

    拉格朗日函数用来求解等式约束的最优化问题 广义拉格朗日函数用来求解不等式约束的最优化问题 无约束优化问题 关于优化问题包括无约束优化问题 等式约束优化问题 不等式约束优化问题 这里简略地介绍一下无约束优化问题 以后再来填坑 考虑无约束优化问
  • python数组(矩阵)乘法(点乘、叉乘)

    转载 https blog csdn net haiziccc article details 101361583 总结 1 tf matmul A C np dot A C A C都属于叉乘 而tf multiply A C A C A
  • 感知机对偶算法

    知识源于 统计学习方法 第二版 李航 感知机 perception 一种二分类的线性分类模型 输入为实例的特征向量 输出为实例的类别 二分类类别为 1 1二值 用算法2 2 感知机学习算法的对偶形式 代码实现例2 2 一 实验目的 用算法2
  • 多层感知机(MLP)算法原理和代码实现

    文章目录 多层感知机入门 算法优化原理 sklearn代码实现 核心优缺点分析 多层感知机入门 神经网络在最近几年 是个很火的名词了 常听到的卷积神经网络 CNN 或者循环神经网络 RNN 都可以看做是神经网络在特定场景下的具体应用方式 本
  • 【Python】鲸鱼算法实现

    文章目录 鲸鱼算法 自编代码 结果 摘录代码 鲸鱼算法 自编代码 main py import numpy as np from numpy import random from copy import deepcopy from func
  • 机器学习-对范数的理解

    1 范数的概念 参考 https blog csdn net a6333230 article details 87860875 范数 norm 主要是对矩阵和向量的一种描述 矩阵范数 描述矩阵引起变化的大小 AX B 矩阵X变化了A个量级
  • 机器学习——seaborn可视化

    主要记录seaborn可视化学习笔记 明白有哪些绘制图像的函数可用 文章目录 一 seaborn原理 二 变量分布 1 sns boxplot 查看数值变量的取值范围 2 sns displot 查看变量的分布 3 sns jointplo
  • 【美国大学生数学建模比赛】2020C题(总结和原创参赛论文)百度云请自取

    最新想法 本学期选修了下大数据 发现其实本题的解法还涉及到数据库 大数据各个层次数据处理和分布式数据流blabla 而之前那几天美赛做的还停留在最基础的数据处理层 而且我现在觉得如果要做大的话不应该在这个层里面进行深度学习 前面的数据库处理
  • 【机器学习】—各类梯度下降算法 简要介绍

    阅读之前看这里 博主是一名正在学习数据类知识的学生 在每个领域我们都应当是学生的心态 也不应该拥有身份标签来限制自己学习的范围 所以博客记录的是在学习过程中一些总结 也希望和大家一起进步 在记录之时 未免存在很多疏漏和不全 如有问题 还请私
  • scikit-learn学习笔记

    数据划分 from sklearn model selection import train test split 数据预处理 数据标准化 归一化 from sklearn preprocessing import StandardScal

随机推荐