拉格朗日乘數法及KKT條件 通俗理解

2021-10-03 02:26:20 字數 2777 閱讀 8471

在數學最優問題中,拉格朗日乘數法(以數學家約瑟夫·路易斯·拉格朗日命名)是一種尋找變數受乙個或多個條件所限制的多元函式的極值的方法。這種方法將乙個有n 個變數與k 個約束條件的最優化問題轉換為乙個有n + k個變數的方程組的極值問題,其變數不受任何約束。這種方法引入了一種新的標量未知數,即拉格朗日乘數:約束方程的梯度(gradient)的線性組合裡每個向量的係數。 [1] 此方法的證明牽涉到偏微分,全微分或鏈法,從而找到能讓設出的隱函式的微分為零的未知數的值。

這是最簡單的一種情況,解決方法通常是對函式對變數求導,令求導函式等於0的點可能是極值點。必須把疑似極值點帶回原函式驗證

比如這個例子

首先對於這種帶有約束條件的極值問題,第一種方法可以使用消元法,將條件方程和所求方程進行消元,最後求得極值點。

這裡注意必須將所求極值點帶回原方程檢驗該點是否在所求平面或直線上

第二種方法:使用拉格朗日乘數法進行求解。

首先我們需要定義拉格朗日函式f(x)

這裡注意一點,上面的拉格朗日後面條件是乙個向量函式,所以可以存在多個拉格朗日係數

回到題目後,我們將上面的朗格朗日函式寫出來

並對每個變數求偏導數

通過前三個方程,我們可以解出bx=ay和az=cx的關係,並將這個關係帶入第四個方程得到

最後我們求得最大體機為:

這裡的解題思路,首先根據題意判斷哪個是條件函式,哪個是求導函式。然後定義拉格朗日函式(這裡拉格朗日函式中的+或者-都行)隨後對拉格朗日函式的所有變數解偏導方程。最後便得到極值點。

以上是拉格朗日函式的基本解題形態。

下面從幾何意義上解釋等式約束條件下的拉格朗日乘數法

這裡我們解釋為什麼需要定義拉格朗日函式及為什麼解偏導方程能得到極值點

舉個例子:求雙曲線xy=3上離原點最近的點。

根據題意我們得到,條件函式是xy=3,求導函式是x2+y2-d**2=0(這裡我們用的是歐式距離的平方,因為我們要求的是離原點最近的點,所以選擇求距離的平方)

我們畫出該函式的影象

通過影象可以知道,當雙曲線和圓相切時到原點的距離最短。那麼如果兩個曲線相切,那麼他們的切線相同,由此得知他們的法向量是互相平行的。

這裡引入梯度的概念,由上面的結論可以得知兩個曲線的梯度是共線的。於是我們可以得到這個方程▽f=λ▽g

根據這個方程,我們再對各個變數求偏導數

fx=λgx,

fy=λgy,再根據條件函式組成方程組xy=3

2x=λy,2y=λx,xy=3

通過解上述方程,我們可以得到λ,從而求出極值點。

所以我們可以理解朗格朗日函式的實質是▽f+λ▽g=0

然後根據梯度求全微分來求的極值點

上面解釋了等式約束條件下的拉格朗日函式求極值。那麼當出現不等式約束條件時呢,此時的約束條件變得如下:

這是我們需要定義廣義的拉格朗日函式l

這裡需要說明乙個條件,因為由上面的等式約束條件求拉格朗日函式,我們可以得知u和梯度有關。這裡gk(x)<=0,根據梯度指向的是》=0的方向,所以uk>=0。(以此類推,當gk(x)>=0時,uk<=0)。

接下來主要介紹kkt條件,推導及應用。詳細推導過程如下:

根據我個人理解解釋下這個推導過程,首先根據我上面說的得到uk的條件,然後根據gk(x)我們可以得到

之後我們可以得知l(x,u)的最大值是當ug(x)=0時,即f(x)

所以我們要求minf(x)實際上是求minmaxl(x,u)

我們推出這個方程,這裡先不解釋什麼是對偶方程

隨後根據uk<=0和g(x)>=0及組成的ug(x)<=0這三個條件,我們得到了minug(x)存在兩種情況:

根據第一種情況。我們推出了

當u或者g(x)=0時,minmaxl(x,u)=maxminl(x,u)這就是利用假設法反推了對偶問題

這裡解釋下,為什麼不採用第二種情況,因為當g(x)<0時。這時的g(x)的最佳解在區域內部,這時最佳解稱為內部解,不等書約束條件不生效

以下是kkt條件的詳細解釋及對偶問題的解釋

拉格朗日乘數法和KKT條件的直觀解釋

標籤 空格分隔 機器學習 linbin 2018 05 10 在svm的推導中,最優化問題是其中的核心,這裡我們簡單介紹下最優化問題,特別是帶有約束的最優化問題,並且引入拉格朗日乘數法和廣義拉格朗日乘數法,介紹並且直觀解釋了kkt條件,用於解決帶約束的最優化問題。我們在高中,包括在高數中都會經常遇到...

拉格朗日乘數法

在求取有約束條件的優化問題時,拉格朗日乘子法 lagrange multiplier 和kkt條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值 如果含有不等式約束,可以應用kkt條件去求取。當然,這兩個方法求得的結果只是必要條件,只有當是凸函式的情況下,才能保...

拉格朗日乘數法

在求取有約束條件的優化問題時,拉格朗日乘子法 lagrange multiplier 和kkt條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值 如果含有不等式約束,可以應用kkt條件去求取。當然,這兩個方法求得的結果只是必要條件,只有當是凸函式的情況下,才能保...