zoukankan      html  css  js  c++  java
  • 拉格朗日乘子法

    拉格朗日乘数法(Lagrange multiplier)有很直观的几何意义。
    举个2维的例子来说明:
    假设有自变量x和y,给定约束条件g(x,y)=c,要求f(x,y)在约束g下的极值。

    我们可以画出f的等高线图,如下图。此时,约束g=c由于只有一个自由度,因此也是图中的一条曲线(红色曲线所示)。显然地,当约束曲线g=c与某一条等高线f=d1相切时,函数f取得极值。
    两曲线相切等价于两曲线在切点处拥有共线的法向量。因此可得函数f(x,y)与g(x,y)在切点处的梯度(gradient)成正比。
    于是我们便可以列出方程组求解切点的坐标(x,y),进而得到函数f的极值。

    想法就是:

    能够碰到极大极小值点的必要条件是:

    梯度场与切空间垂直,也就是梯度场不能够有任何流形切空间上的分量,否则在切空间方向有分量,在流形上沿分量方向走,函数值会增加,沿反方向走,函数值会减少,不可能为局部极小或者极大值点。

    一.
    一个基本的例子:

    假设你生活在三维欧氏空间中,z方向的坐标数值上代表海拔高度。
    f(x,y,z)=z

    如果你会飞,那么anyway,你想飞多高飞多高,所以你的海拔可以任意高也可以任意小,根本就没有最大值。

    假定你是一个普通人类,你在一座山M上,你的目标是爬到山顶,也就是说你希望自己的海拔足够高:

    当你真正到达山腰时,很容易“只缘身在此山中,不识此山真面目”,这时候如何判断是真的在往上爬呢,还是在往下走呢?

    在肉眼所能看见的小范围内,你可以通过周边的局部地形来判断,假设它大概是这样:

    你就知道应该往高处(大概为红箭头方向)走,而不是绿箭头方向。
    当然不一定一直沿这个方向直线式上升,可能还需要走到某个地方,再次做一下这种局部的考察,调整一下方向,保证自己能向高处走。


    不过,什么是“高”的一边?这个概念究竟是如何形成的?

    我们知道,海拔f(x,y,z)=z,我们希望能够找到山面上的海拔最高点(山顶)。
    梯度
abla f=(0,0,1)

    关于梯度一个很自然的结论就是:
    沿梯度方向是f增长最快的方向,反方向是下降最快的方向。

    所以直观上沿与梯度方向成锐角的方向移动,那么f的值应该会增加。

    而在山面上,我们可以通过天空来确定梯度方向(
abla f=(0,0,1)当然指向高高的天空啦)
    与垂直向上方向成锐角的方向的地形,也就是“高”的一边。


    (可以见到,红色的角是锐角,所以沿此方向海拔上升,绿色的角是钝角,所以沿此方向海拔下降)

    所有我们可以移动的方向,叫做这一点的切空间

    那么,什么时候才能知道我们到达了山顶呢?

    P点为山顶,那么在这一点,切空间上任何一个方向与梯度方向(红色箭头)的夹角都不可以是锐角,
    否则我们沿那个方向爬,就会上升到更高点。

    所以切空间只能够与梯度方向垂直。

    利用流形本身的信息,我们可以得到切空间的方程,从而确定与切空间垂直的所有方向(这种方向叫做法向)。
    利用函数本身的信息,我们可以得到梯度场的方向

    梯度场方向与切空间垂直,所以梯度场可以表成一些的特定的法向 的线性组合,
    系数记为lambda_1,hdots,lambda_k

    
abla f in (T_pM)^{ot },这就是Laplace乘子法的思想


    二.一般形式

    给一组约束条件F(x)=0,F=(F_1,hdots,F_k)
    (经常加一些好的条件比如说F的jacobi矩阵满秩,这些条件都是为了让M确实是一个流形,见正则值定理)
    那么流形(约束条件下的所有点)为
    M={ xin mathbb R^n |F(x)=0 }

    p如果为f的局部极大值或者局部极小值,
    那么
abla f in (T_pM)^{ot }

    M={ xin mathbb R^n |F(x)=0 },故法向量由
abla F_1 ,
abla F_2,hdots张成
    所以存在一组系数lambda_1,hdots,lambda_k
    使得
    
abla f =lambda_1 
abla F_1+hdots

    这就是乘子方程。

    (PS:
    由于连续可导函数取极值的时候,每个自变量的偏导数都为0(否则微调这个自变量就可以得到更大的值),因此拉格朗日函数取极值的时候,λ的偏导数也为0,而λ的偏导数恰好为引入的条件约束,而当条件约束等于0时,拉格朗日函数的值也恰好等于原函数的值,我们就可以很容易证明原函数在条件约束下取极值,与拉格朗日函数取极值是等价的。

    所以本质上就是最开始说的:
    能够碰到极大极小值点的必要条件是:
    梯度场与切空间垂直,也就是梯度场不能够有任何流形切空间上的分量,否则在切空间方向有分量,在流形上沿分量方向走,函数值会增加,沿反方向走,函数值会减少,不可能为局部极小或者极大值点。


    利用流形本身的信息,我们可以得到切空间的方程,从而确定法向。
    利用函数本身的信息,我们可以得到梯度场的方向
    梯度场方向与切空间垂直,所以梯度场可以表成一些的特定的法向(比如说一组基法向)的线性组合
    用这两个信息把上面那句话用方程的形式写出来就好了


    后记:

    1.这种乘子法只考虑了第一变分(梯度),事实上极大极小值还可以用Hessian矩阵进行二阶刻画,所谓第二变分

    2.这种找法只能够找局部极值点,如果要寻找鞍点,就是这样的点:

    这种方法完全失效,不过一般情况下我们只关心极大极小值点。

    对于鞍点的寻找,我们有Moutain Pass Lemma,或者更一般的,我们可以采用min-max原理的推理,能够从极值点出发找到可能鞍点。

    3.
    我们只考虑假定流形M上比较好的函数,所有上述方法都可以内蕴地在流形上建立起来。
    对于一般的关于临界点即
abla f =0的点的理论,可以反馈流形自身的拓扑信息。
    比如说著名的Reeb定理是在说:
    考虑一个紧无边光滑流形M,如果M上存在一个光滑函数,它只有最大值和最小值两个极值点,并且这两点的Hessian矩阵均可逆,那么M就会拓扑同胚于单位球面

    (微分同胚是不一定的,见Minlor的7维怪球)

    所有临界点均不退化(即Hessian矩阵非退化)的光滑函数f叫做Morse函数,对于Morse函数f,
    我们有
    • sum_{}^{}{(-1)^{ind(p)}} =chi (M),M是一个光滑紧无边流形,右边是M的欧拉示性数,左边跑遍f的所有临界点,ind表示临界点的指标。
    • c_i geq b_i,即f的指标为i的临界点至少有b_i个,b_i是M的第i阶De rham上同调群的维数。

    作为一个应用,可以得到
    环面上任何一个Morse函数,至少有四个临界点。
     

    为什么出现拉格朗日乘子法?

    • 最短路径问题
    • 从几何意义中获得灵感:
    • 从数学公式中获得灵感
    • 推广到高维空间

    ------------------------------------------------------

    一个最短路径问题

    假设你在M点,需要先到河边(上图右侧曲线 )再回到C点,如何规划路线最短?

    假设:
    河流曲线满足方程 g(x,y) = 0 (例如 如果它是一个圆: g(x,y) = x2 + y2 - r2 = 0
    用P表示河边上的任意P(x,y)点,
    用d(M,P)表示M,P之间距离,
    那么问题可以描述为:max \, f(P) = d(M,P) + d(P, C) , 约束于 g(P) = 0.

    如何求解问题?

    1. 从几何意义中获得灵感:

    首先,f(P)是一个标量(只有大小没有方向),那么在上图的二维空间中必然存在了一个标量场f(P),即对于每一个点P都对应着一个f(P)值,它代表经过该点的路径总和是多少。
    如果我们画出它的等值线(场线),就会发现它呈椭圆向外辐射:

    显然,f(P)的等值线与河边曲线的交点P即为我们想求的点。

    那么问题来了: 这样的点满足何种性质? (如果没有性质也就无法列出关系式进行求解,但是这么特殊的点极有可能存在良好某种特性)


    最直观的性质: 等值线(椭圆)在P点的法向量n与河边曲线的法向量m平行:
    m{n} = lambda \, m{m}


    而在多元微积分中,一个函数h在某一点P的梯度是点P所在等值线(二维)或等值面(三维)的法向量,即m{n} = 
abla h( m{P} ),所以对于函数 f , g : (注意 梯度是一个向量,准备在另一个问题中对梯度的概念做详细阐述)
    m{n} = lambda \, m{m}  
Rightarrow 
abla f( m{P} ) = lambda \, 
abla g( m{P} ) 
Rightarrow 
egin{pmatrix}
  f_{x}\ 
  f_{y}
 end{pmatrix} 
= lambda
egin{pmatrix}
  g_{x}\ 
  g_{y}
 end{pmatrix} 
 Rightarrow 
f_{x} = lambda g_{x} ; (1)  \  f_{y} = lambda g_{y} ; (2)

    即由相交点的性质我们得到了2个关系式(因为是二维平面,对于三维则可以得到三个关系式,以此类推),

    再加上我们的约束条件:g(m P) = g(x,y) = 0 ; (3)

    一共3个关系式,由线性代数中知识可知 3个关系式,3个未知量(x,y, lambda)极有可能有唯一解,当然也不排除会出现多个解甚至无穷多解 (例如 下图 河边是一条直线,且M,C就在河边时)。(关于这个知识点稍后在其它答案中给出解释)。

    2. 从数学公式中获得灵感

    仍人是问题: max \, f(P) = d(M,P) + d(P, C) \ subject \, to \, : \,  g(P) = 0.

    我们知道在多元微积分中如果想求一个函数的极值一般的做法是把 
abla f( m P) = 0,如何把这个公式和我们的约束条件 
abla g( m P) = 0 统一在一起呢?

    答案是: 引入 lambda 
并且定义一个新的函数: F( m P, lambda ) = f( m P) - lambda g( m P)
    令:  
abla F( m P, lambda)  
=  
abla F(x,y, lambda)
= 
egin{pmatrix}
F_{x} \
F_{y} \
F_{lambda}
end{pmatrix}
= m 0 与我们要求解的优化问题是 等价的:
    因为:F_{lambda} = g(m P) = g(x,y) =0 与约束条件等价,而且此时 F(m P, lambda ) = f( m P) - lambda 0 = f(m P) 即拉格朗日函数F(m P)与我们的目标函数f(m P) 取相同值。 用拉格朗日函数把目标函数和约束条件统一在了一起。


    实际上这种方法与上面的几何方法是完全等价的:

    F_{x} = 0  Rightarrow
f_{x} - lambda g_{x}  = 0 Rightarrow f_{x} = lambda g_{x}  ; (1) \
F_{y} = 0  Rightarrow
f_{y} - lambda g_{y}  = 0 Rightarrow f_{y} = lambda g_{y}  ; (2)
\
g(x,y) = 0 ; (3)

    3. 推广到高维空间
    以上我们一直在讨论 二维的情形,下面让我们看看这个问题的高维情况: 以几何观点为例:

    假设约束条件变成 g(m P) =0 \
h(m P) = 0 ,其中 h是紫色椭球面, g是平面。它们相交于黑色的环,且在相交线上(黑色环)各自的方向向量(m n_{h} , m n_{g} ) 与相交线垂直。

    对于我们的目标函数 f(m P) ,下图中红色椭球是它的等值面。它与黑色环的交点 m P
,此处的向量

     m n_{f} = lambda m n_{h} + mu m n_{g} Rightarrow 
abla f(m P) =  lambda 
abla h(m P) + mu 
abla g(m P)


    更高维度同理。


    参考:
    - An Introduction to Lagrange Multipliers



    作者:卢健龙
    链接:https://www.zhihu.com/question/38586401/answer/105273125

    作者:陆zz

    链接:https://www.zhihu.com/question/38586401/answer/105400458
    作者:晓雷
    链接:https://www.zhihu.com/question/38586401/answer/122745294
    作者:灵剑
    链接:https://www.zhihu.com/question/38586401/answer/105272615
    来源:知乎

  • 相关阅读:
    [bbk3153] 第62集 Chapter 15Application Tuning(02)
    [bbk3152] 第61集 Chapter 15Application Tuning(01)
    [bbk1190]第2集 Chapter 01Oracle Architectural
    PL/SQL高级Creating Packages (01)
    Statspack00
    [bbk3201] 第64集 Chapter 16Using Materialized Views 00
    该如何选择国外VPS
    优化升级logging封装RotatingFileHandler
    smtp ssl模式邮件发送与附件添加
    smtp outlook邮件发送非授权码模式
  • 原文地址:https://www.cnblogs.com/wt869054461/p/6760200.html
Copyright © 2011-2022 走看看