拉格朗日乘子法


拉格朗日乘數法(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,我們希望能夠找到山面上的海拔最高點(山頂)。
梯度\nabla f=(0,0,1)

關於梯度一個很自然的結論就是:
沿梯度方向是f增長最快的方向,反方向是下降最快的方向。

所以直觀上沿與梯度方向成銳角的方向移動,那么f的值應該會增加。

而在山面上,我們可以通過天空來確定梯度方向(\nabla f=(0,0,1)當然指向高高的天空啦)
與垂直向上方向成銳角的方向的地形,也就是“高”的一邊。


(可以見到,紅色的角是銳角,所以沿此方向海拔上升,綠色的角是鈍角,所以沿此方向海拔下降)

所有我們可以移動的方向,叫做這一點的切空間

那么,什么時候才能知道我們到達了山頂呢?

P點為山頂,那么在這一點,切空間上任何一個方向與梯度方向(紅色箭頭)的夾角都不可以是銳角,
否則我們沿那個方向爬,就會上升到更高點。

所以切空間只能夠與梯度方向垂直。

利用流形本身的信息,我們可以得到切空間的方程,從而確定與切空間垂直的所有方向(這種方向叫做法向)。
利用函數本身的信息,我們可以得到梯度場的方向

梯度場方向與切空間垂直,所以梯度場可以表成一些的特定的法向 的線性組合,
系數記為\lambda_1,\hdots,\lambda_k

\nabla f \in (T_pM)^{\bot },這就是Laplace乘子法的思想


二.一般形式

給一組約束條件F(x)=0,F=(F_1,\hdots,F_k)
(經常加一些好的條件比如說F的jacobi矩陣滿秩,這些條件都是為了讓M確實是一個流形,見正則值定理)
那么流形(約束條件下的所有點)為
M=\{ x\in \mathbb R^n |F(x)=0 \}

p如果為f的局部極大值或者局部極小值,
那么\nabla f \in (T_pM)^{\bot }

M=\{ x\in \mathbb R^n |F(x)=0 \},故法向量由\nabla F_1 ,\nabla F_2,\hdots張成
所以存在一組系數\lambda_1,\hdots,\lambda_k
使得
\nabla f =\lambda_1 \nabla F_1+\hdots

這就是乘子方程。

(PS:
由於連續可導函數取極值的時候,每個自變量的偏導數都為0(否則微調這個自變量就可以得到更大的值),因此拉格朗日函數取極值的時候,λ的偏導數也為0,而λ的偏導數恰好為引入的條件約束,而當條件約束等於0時,拉格朗日函數的值也恰好等於原函數的值,我們就可以很容易證明原函數在條件約束下取極值,與拉格朗日函數取極值是等價的。

所以本質上就是最開始說的:
能夠碰到極大極小值點的必要條件是:
梯度場與切空間垂直,也就是梯度場不能夠有任何流形切空間上的分量,否則在切空間方向有分量,在流形上沿分量方向走,函數值會增加,沿反方向走,函數值會減少,不可能為局部極小或者極大值點。


利用流形本身的信息,我們可以得到切空間的方程,從而確定法向。
利用函數本身的信息,我們可以得到梯度場的方向
梯度場方向與切空間垂直,所以梯度場可以表成一些的特定的法向(比如說一組基法向)的線性組合
用這兩個信息把上面那句話用方程的形式寫出來就好了


后記:

1.這種乘子法只考慮了第一變分(梯度),事實上極大極小值還可以用Hessian矩陣進行二階刻畫,所謂第二變分

2.這種找法只能夠找局部極值點,如果要尋找鞍點,就是這樣的點:

這種方法完全失效,不過一般情況下我們只關心極大極小值點。

對於鞍點的尋找,我們有Moutain Pass Lemma,或者更一般的,我們可以采用min-max原理的推理,能夠從極值點出發找到可能鞍點。

3.
我們只考慮假定流形M上比較好的函數,所有上述方法都可以內蘊地在流形上建立起來。
對於一般的關於臨界點即 \nabla 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平行:
\bm{n} = \lambda \, \bm{m}


而在多元微積分中,一個函數h在某一點P的梯度是點P所在等值線(二維)或等值面(三維)的法向量,即\bm{n} = \nabla h( \bm{P} ),所以對於函數 f , g : (注意 梯度是一個向量,准備在另一個問題中對梯度的概念做詳細闡述)
\bm{n} = \lambda \, \bm{m}  
\Rightarrow \nabla f( \bm{P} ) = \lambda \, \nabla g( \bm{P} ) 
\Rightarrow 
\begin{pmatrix}
  f_{x}\\ 
  f_{y}
 \end{pmatrix} 
= \lambda
\begin{pmatrix}
  g_{x}\\ 
  g_{y}
 \end{pmatrix} 
 \Rightarrow 
f_{x} = \lambda g_{x} \; (1)  \\  f_{y} = \lambda g_{y} \; (2)

即由相交點的性質我們得到了2個關系式(因為是二維平面,對於三維則可以得到三個關系式,以此類推),

再加上我們的約束條件:g(\bm 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.

我們知道在多元微積分中如果想求一個函數的極值一般的做法是把 \nabla f( \bm P) = 0,如何把這個公式和我們的約束條件 \nabla g( \bm P) = 0 統一在一起呢?

答案是: 引入 \lambda 
並且定義一個新的函數: F( \bm P, \lambda ) = f( \bm P) - \lambda g( \bm P)
令:  \nabla F( \bm P, \lambda)  
=  \nabla F(x,y, \lambda)
= 
\begin{pmatrix}
F_{x} \\
F_{y} \\
F_{\lambda}
\end{pmatrix}
= \bm 0 與我們要求解的優化問題是 等價的:
因為:F_{\lambda} = g(\bm P) = g(x,y) =0 與約束條件等價,而且此時 F(\bm P, \lambda ) = f( \bm P) - \lambda 0 = f(\bm P) 即拉格朗日函數F(\bm P)與我們的目標函數f(\bm 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(\bm P) =0 \\
h(\bm P) = 0 ,其中 h是紫色橢球面, g是平面。它們相交於黑色的環,且在相交線上(黑色環)各自的方向向量( \bm n_{h} , \bm n_{g} ) 與相交線垂直。

對於我們的目標函數 f(\bm P) ,下圖中紅色橢球是它的等值面。它與黑色環的交點 \bm P
,此處的向量

 \bm n_{f} = \lambda \bm n_{h} + \mu \bm n_{g} \Rightarrow \nabla f(\bm P) =  \lambda \nabla h(\bm P) + \mu \nabla g(\bm 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
來源:知乎


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM