拉格朗日乘子

1,拉格朗日乘子(lagrange multiplier),又叫拉氏乘子或拉格朗日乘数。它是出现在拉格朗日乘数法中的概念。

拉格朗日乘数法可以解决多变量函数在其变量受到一个或多个约束条件时求极值的问题。
它可以将含有n个变量的函数(该函数的变量有k个约束条件)的极值问题转化为含有n+k个变量的方程组的解。
实现该方法过程中引入的一个或一组新的未知数就叫拉格朗日乘子。

2,从点到直线的距离说起。

在二维直角坐标系中有一点(m, n)和一条直线ax+by+c=0。现在要求点到直线的距离。
可以用拉格朗日乘数法解决:
点到直线的距离即为点到直线所有点中的那个最小距离。
2.1 在直线上随机取一点(x, y),距离函数为 d = ( m − x ) 2 + ( n − y ) 2 , 约 束 条 件 为 a x + b y + c = 0 d=\sqrt{(m-x)^2+(n-y)^2},约束条件为ax+by+c=0 d=(mx)2+(ny)2 ax+by+c=0
2.2 构建拉格朗日函数: L ( x , y , λ ) = d 2 + λ ( a x + b y + c ) \mathcal{L}(x, y, \lambda)=d^2+\lambda(ax+by+c) L(x,y,λ)=d2+λ(ax+by+c),则函数d的极值点即为函数 d 2 d^2 d2的极值点,即为 L ( x , y , λ ) \mathcal{L}(x, y, \lambda) L(x,y,λ)函数的极值点(这样构造的目的是为了简化计算);
2.3 将 L ( x , y , λ ) \mathcal{L}(x, y, \lambda) L(x,y,λ)的所有偏微分设为0:
2 ( x − m ) + λ a = 0 2(x-m)+\lambda a=0 2(xm)+λa=0
2 ( y − n ) + λ b = 0 2(y-n)+\lambda b=0 2(yn)+λb=0
a x + b y + c = 0 ax+by+c=0 ax+by+c=0
2.4 解得结果为
λ = 2 ( a m + b n + c ) a 2 + b 2 \lambda =\frac{2(am+bn+c)}{a^2+b^2} λ=a2+b22(am+bn+c)
2.5 易求得:
d = ∣ a m + b n + c ∣ a 2 + b 2 d=\frac{|am+bn+c|}{\sqrt{a^2+b^2}} d=a2+b2 am+bn+c

3,求最大熵问题

对于离散分布,有x1, x2,…, xn一共n个点,概率分别为p1, p2, …, pn,构建如下的熵函数:
f ( p 1 , p 2 , . . . , p n ) = − ∑ i = 1 n p i log ⁡ 2 ( p i ) , 约 束 条 件 为 g ( p 1 , p 2 , . . . , p n ) = ∑ i = 1 n p i = 1 f(p1, p2, ..., pn) = -\sum_{i=1}^{n}pi\log_{2}(pi),约束条件为g(p1, p2, ..., pn)=\sum_{i=1}^{n}{pi}=1 f(p1,p2,...,pn)=i=1npilog2(pi)g(p1,p2,...,pn)=i=1npi=1
3.1 构建拉格朗日方程:
L ( p 1 , p 2 , . . . , p n , λ ) = f ( p 1 , p 2 , . . . , p n ) + λ ( g ( p 1 , p 2 , . . . , p n ) − 1 ) \mathcal{L}(p1, p2, ..., pn, \lambda)=f(p1, p2, ..., pn)+\lambda (g(p1, p2, ..., pn) -1) L(p1,p2,...,pn,λ)=f(p1,p2,...,pn)+λ(g(p1,p2,...,pn)1)
3.2 令所有的偏微分为0:
∂ ∂ p i ∣ λ L ( p 1 , p 2 , . . . , p n , λ ) = 0 \frac{\partial}{\partial pi|\lambda} {\mathcal{L}(p1, p2, ..., pn, \lambda)} = 0 piλL(p1,p2,...,pn,λ)=0
上式的含义是对所有变量 ( p 1 , p 2 , . . . , p n , λ ) (p1, p2, ..., pn, \lambda) (p1,p2,...,pn,λ)分别求偏微分,所以一共有n+1个方程。
3.3 上述方程的解为:
− ( l o g 2 p i + 1 l n 2 ) + λ = 0 -(log_2pi + \frac{1}{ln2})+\lambda=0 (log2pi+ln21)+λ=0 for every i
3.4 易得 p i = 1 n pi = \frac{1}{n} pi=n1,所以在均匀分布的情况下能获得最大熵。

4,数值优化问题

Question: 求 y = x 2 在 约 束 条 件 x 2 = 1 下 的 最 小 值 。 求y=x^2在约束条件x^2=1下的最小值。 y=x2x2=1
4.1 直觉法,很显然x在取1或-1时,y的值相等,都为1。
4.2 拉格朗日法
4.21 跟上面一样,构建拉格朗日方程:
L ( x , λ ) = x 2 + λ ( x 2 − 1 ) \mathcal{L}(x, \lambda)=x^2+\lambda(x^2-1) L(x,λ)=x2+λ(x21)
上述方程对应图形为:
在这里插入图片描述
4.22 令所有的偏微分为0:
∂ L ∂ x = 2 x + 2 x λ = 0 \frac{\partial \mathcal{L}}{\partial x}= 2x+2x\lambda=0 xL=2x+2xλ=0
∂ L ∂ λ = x 2 − 1 = 0 \frac{\partial \mathcal{L}}{\partial \lambda}= x^2-1=0 λL=x21=0
容易求出 λ = − 1 时 , \lambda=-1时, λ=1满足条件,此时有两个临界点,如上图所示,但这两个点都是鞍点,需要进一步确定这些点哪个最小值点。
4.23 用数值优化的方法来解决上述问题
构建梯度的平方和的算术平方根函数:
h ( x , λ ) = ( 2 x + 2 x λ ) 2 + ( x 2 − 1 ) 2 h(x,\lambda)=\sqrt{(2x+2x\lambda)^2+(x^2-1)^2} h(x,λ)=(2x+2xλ)2+(x21)2
此函数图像为
在这里插入图片描述
易知道此函数含有最小值点。用数值方法可以来解决损失函数的鞍点问题。

5,拉格朗日乘数法的数学证明

在这里插入图片描述

Reference

https://en.wikipedia.org/wiki/Lagrange_multiplier

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
拉格朗日乘子法是一种优化算法,应用于具有约束条件的优化问题。它的原理是基于拉格朗日乘子的概念,在求解有约束问题的时候,将约束条件转化为目标函数的一部分,通过求解该新的目标函数,得到问题的最优解。 在使用拉格朗日乘子法时,首先根据问题的约束条件构造拉格朗日函数。拉格朗日函数是由目标函数和约束条件组成的,目标函数会被调整为加入拉格朗日乘子与约束条件的乘积,同时每个约束条件都会有一个对应的拉格朗日乘子。然后,通过求取拉格朗日函数的偏导数,将其等于0,可以得到一组方程,包括目标函数的梯度和约束条件的梯度。将这些方程联立求解,就可以得到问题的最优解。 对于拉格朗日函数的求解,可以采用数值方法,例如使用fmincon算法。fmincon是一种非线性约束最小化算法,可以求解具有非线性约束的优化问题。它的实现基于拉格朗日乘子法,通过迭代的方式逼近最优解。在每一次迭代中,通过求解一组子问题,不断调整拉格朗日乘子的值,直到找到最优解为止。 总之,拉格朗日乘子法是一种基于拉格朗日函数的优化算法,通过将约束条件转化为目标函数的一部分,再利用数值方法求解最优解。而fmincon算法则是一种具体的数值方法实现,可以应用于求解具有非线性约束的优化问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值