简单总结拉格朗日乘数法

拉格朗日乘数法: 将会介绍下面的概念以及对应关系。

  1. 拉格朗日对偶问题
  2. 凸集 凸函数、
  3. 凹函数
  4. 凸优化
  5. 弱对偶、
  6. 强对偶
  7. KKT条件
  8. Slater条件
  9. 最大熵

将会了解到L1和L2是一个特殊的朗格朗日函数。

将会了解到 拉格朗日乘数法本质上就是一个求解最值问题的方法(传统函数求最值-求导或者求梯度,求导取极值点即可,拉格朗日乘数法加了约束条件)。

1 背景介绍

如何求解带约束的函数最值问题?通过朗格朗日法可以知道,对原来公式进行变形或者重写,只需重写一个新式子即可(然后使用求导,求梯度方法),计算出最值。

科学家已经证明,求原来函数的最值,和朗格朗日函数的最值是一致的。二者等价。

那背后的原理或者思想是什么呢?为什么二者等价。

其核心关键就是梯度为0,即什么时候存在最值?当朗格朗日函数的整体梯度为0时,出现最值。那朗格朗日函数的整体梯度为0时,会出现什么情况?

由上面式子可知,当2个梯度的和为0时,整体梯度为0。则就要求原函数图像与条件函数的梯度出现等大反向共线时才能满足

所以这里的朗格朗日乘数,改变了条件函数的梯度(向量)长度。

这里的g(x)表示约束条件。上面可以表示为一般朗格朗日函数形式。

蓝色线表示原函数图像,黄色线表示条件函数图像。当二者出现相切时,才满足整体梯度为0,此时出现最值。

多个约束情况:


2凸集 凸函数

凸集:集合内任意两点的连线仍在集合内。

作用:凸优化问题有非常好的性质(局部最优 = 全局最优)。

凸函数:

f(θx+(1−θ)y) ≤ θf(x)+(1−θ)f(y)

几何意义:函数图像在弦的下方。

例:函数 x^2

, e^x

, log(1+e^x )等等。

几何意义:函数图像在弦的下方。

凹函数

与凸函数相反:

f(θx+(1−θ)y) ≥ θf(x)+(1−θ)f(y)

即:负凸函数。

在对偶问题中,对偶函数

min L(x,λ,ν) 一定是凹函数(无论原问题是否凸)。

  • 可行域是凸集
  • 任何局部最优解 → 全局最优解

凸函数和凹函数对应值域都是凸集,只是凸函数有最小值,凹函数有最大值。一般求解凹函数都是添加一个负号,变成凸问题,求解它的最小值。二者可以进行变化。

3凸优化

4对偶


对偶函数一定是凹函数,是凸优化问题。

也就是无论遇到什么问题,都可以先找到它的对偶问题,根据对偶问题性质,他是凹函数,可以进行凸优化的方法来解决

原问题的解是P*

对偶问题的解是D*

原问题的解 >= 对偶问题的解

那什么情况 :原问题的解 = 对偶问题的解


原问题的解是P* 》 对偶问题的解是D* 为弱对偶关系

原问题的解是P* = 对偶问题的解是D* 为强对偶关系,即下面这个图:

一个凸优化问题,什么情况满足强对偶关系,必须满足slater条件。

5slater条件

只有满足了slater条件,一个凸优化问题,才是强对偶关系。

x在可行域的内部,不能在边界。即把等于0情况排查。

slater条件是强对偶关系的充分条件。一个凸优化问题满足了slater条件,一定是强对偶关系。

反过来就不一定了,一个强对偶关系的问题,不一定满足slater条件。

6KKT条件

故引出了KKT条件,科学家发现""只要满足了KKT条件,一定是强对偶关系,反过来不一定成立。

满足下面5个条件:则说明满足KKT条件。



KKT 是 Karush--Kuhn--Tucker 的缩写。

这三个名字分别对应三位数学家:

缩写 全名 贡献

K William Karush 1939 年在硕士论文中首次提出条件

K Harold W. Kuhn 1951 年与 Tucker 共同重新发现并推广

T Albert W. Tucker 同上

为什么叫 KKT 而不是 KT?

因为 Karush 最早发现(1939 年),但论文未受关注。

Kuhn 和 Tucker 于 1951 年独立重新发现后,条件才被广泛认知。

为了尊重原始贡献者,后人将 Karush 的名字加入,形成 KKT。

KKT包含了3个类型条件:
1 原问题可行条件
2 对偶问题可行条件
3 互补松弛条件。

7最大熵问题

上述为凸优化问题。求最大熵的时候,去求解他的对偶问题即可。

lanbma可以最后通过人为学习计算,即最后进行调参优化。

8极大似然估计与最大熵

左边是最大熵问题

右边是极大似然估计

左边和右边等价。

原因在于,左边最大熵问题是对偶问题,一定是凸优化问题,一定是一个凹函数。

对应的,右边极大似然估计一定是一个凹函数,极大似然估计和交叉熵方法是等价的。交叉熵方法凸函数

相关推荐
lucas_AI9 分钟前
1.2B 小模型赢过 235B 大模型:NaviDC-OCR 把文档解析卷明白了
人工智能·深度学习·算法
冻柠檬飞冰走茶1 小时前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法
民乐团扒谱机1 小时前
【微实验】倒谱算法(Cepstrum)深度解析:原理、数学推导与代码实现
人工智能·算法·语音识别
Nil2082 小时前
leetcode 189轮转数组
数据结构·算法·leetcode
-dzk-2 小时前
【动态规划】LC 118.杨辉三角
算法·动态规划
恣逍信点2 小时前
《凌微经》静态自悖——变化之自因
人工智能·科技·算法·机器学习·业界资讯·拓扑学·哲学
吃着火锅x唱着歌3 小时前
LeetCode 3885.设计事件管理器
算法·leetcode·职场和发展
土司大王3 小时前
LeetCode hto100——字母异位词分组
java·算法·leetcode
Eloudy3 小时前
预词力:LLM 的唯一形式化能力
人工智能·算法·agent
依然鸣3 小时前
PTA团体程序设计天梯赛L1真题讲解L1-085-088
数据结构·c++·经验分享·算法·深度优先·pat考试