拉格朗日乘法與KKT條件


問題的引出

給定一個函數\(f\),以及一堆約束函數\(g_1,g_2,...,g_m\)\(h_1,h_2,...,h_l\).帶約束的優化問題可以表示為

\[\min_{X \in R^n}f(X) \quad s.t. \; g_i(X) \leq 0 \; , \;h_j(X) = 0 \]

下面我們將來討論具有上述問題的解,一共可以分為四種情況:

  • 無約束條件
  • 只有等式約束條件
  • 只有不等式約束條件
  • 同時有等式和不等式約束條件

無約束條件

我們先來復習一下多元函數取得極值的條件。設\(f: R^n \to R\),是一個連續可導的函數,並且\(J_f\)\(H_f\)分別是\(f\)的一階梯度和二階梯度矩陣(Hession矩陣),判斷\(f(x^*)\)是它的一個極值的條件是:

  • \(J_f=0,H_f\)是負定矩陣,則\(x^*\)\(f\)的極大值
  • \(J_f=0,H_f\)是正定矩陣,則\(x^*\)\(f\)的極小值
  • \(J_f=0,H_f\)是半正定或半負定或不定矩陣,則需要進一步討論

這樣,無約束下的最優化問題可以通過上述規則來求函數的極值。

等式約束條件

只含等式約束條件的最優化問題表示為(以一個等式約束為例)

\[\min_{X \in R^n} f(X) \quad s.t. \; h(X) = 0. \]

下面用具體的實例來討論這一類問題,令

\[f(X)=x_1+x_2 \quad,\; h(X)=x_1^2+x_2^2-2 \]

                              圖(1 )                                                        圖(2)

在圖(1)和(2)中藍色線是\(f(X)\)的等高線,紅色線是在\(h(X) = 0\)約束下的可行域(\(X\)可取值的可行范圍)。

                              圖(3 )                                                        圖(4)

為了找到\(f(X)\)的最小值。如圖(3),我們需要從紅色點的位置(點\(X_F\))往某一個方向走一小步,並且目標位置依然在可行域內(滿足\(h(X)=0\)的限制),同時還希望\(f(X)\)的值能夠下降,即

\[h(X_F + \Delta X) = 0 \quad and \quad f(X_F) >f(X_F+ \Delta X) \]

我們知道沿着梯度的反方向是下降最快的。如果要滿足\(\quad f(X_F) >f(X_F+ \Delta X)\)則必須有

\[\Delta X \cdot (-\nabla_x f(X)) > 0 \]

意思就是說,下一步走的方向\(\Delta X\)應該與\(-\nabla_Xf(X)\)的夾角小於等於90度。

                              圖(5 )                                                        圖(6)

圖(5)和圖(6)分別畫出了約束函數\(h(X)\)的梯度方向以及梯度的正交方向。為了限制在移動\(X_F\)后,使得\(X_F+\Delta X\)依然在約束曲線上,則\(\Delta X\)必須沿着\(h(X)\)梯度的正交方向移動(否則\(h(X)\)會增大或減小,這樣不再滿足約束條件\(h(X)= 0\))。這說明任何時刻都有

  • \(\Delta X\)沿着\(\nabla_Xh(X_F)\)正交方向移動,可以保證\(h(X_F+\Delta X)=0\).

  • 當$f(X_F) >f(X_F+ \Delta X) $時,必須有

    \[\Delta X \cdot (-\nabla_X f(X)) > 0 \]

考慮一種情況

\[\nabla_X f(X_F) = \mu \nabla_X h(X_F) \]

其中\(\mu\)是一個常數,此時

  • 當移動\(\Delta X\)時,\(\Delta X \cdot (-\nabla_x f(X)) = -\mu\Delta X \cdot \nabla_x h(X) = 0\).
  • 無法找到一個方向\(\Delta X\)使得\(f(X)\)能夠繼續減小或增大,此時\(X_F\)是函數的一個極值點.

回到我們最初的問題

\[\min_{X \in R^n} f(X) \quad s.t. \; h(X) = 0. \]

定義拉格朗日函數

\[L(X,\lambda) = f(X) +\lambda h(X) \]

\(X^*\)是一個局部最小值的充分條件是

  • \(\nabla _XL(X^*,\mu^*) = 0\).
  • \(\nabla _{\mu}L(X^*,\mu^*) = 0\).
  • \(Y^T\nabla_{XX}^2L(X^*,\mu^*)Y>0 \quad s.t. \;(\nabla_Xh(X^*))^TY = 0\)

最后的約束條件是保證\(Y\)的方向與\(h(X)\)梯度方向正交。上面結論很容易推廣到多等式約束問題,設

\[\min_{X \in R^n} f(X) \quad s.t. \; h_i(X) = 0 \quad i=1,2,...,l \]

定義拉格朗日函數

\[L(X,\lambda) = f(X) +\sum_{i=1}^l\mu_i h_i(X) = f(X)+\mu^Th(X) \]

\(X^*\)是一個局部最小值的充分條件是

  • \(\nabla _XL(X^*,\mu^*) = 0\).
  • \(\nabla _{\mu}L(X^*,\mu^*) = 0\).
  • \(Y^T\nabla_{XX}^2L(X^*,\mu^*)Y>0 \quad s.t. \;(\nabla_Xh(X))^TY = 0\)

不等式約束條件

只包含一個不等式約束的優化問題

\[\min_{X \in R^n} f(X) \quad s.t. \; g(X) \leq 0. \]

為了便於理解,我們設

\[f(X) =x_1^2+x_2^2, \\ g(X)=x_1^2+x^2_2-1. \]

                              圖(7 )                                                        圖(8)

圖(7)畫出了\(f(X)\)的等高線,並且點\((0,0)\)是一個極小值點,圖(8)的紅色區域是在\(g(X)\)約束條件下的可行域。從圖中可以看出,無論是否有\(g(X)\)的約束,函數\(f(X)\)的極小值點都在\((0,0)\)處,此時我們稱該約束未被激活\(g(X^*)<0\)).現在,如果把目標函數修改成

\[f(X)=(x_1-1.1)^2+(x_2-1.1)^2 \]

                              圖(9 )                                                        圖(10)

圖(9)和(10)顯示,\(f(X)\)在無約束條件下的極值點是\((1.1,1.1)\),但是它並不在\(g(X)\leq0\)的可行域中。這種情況下,若\(X^*\)\(f(X)\)滿足約束條件的一個極小值點,那么一定有\(g(X^*)=0\),也即極小值點一定在約束的邊界上取得。實際上,此處的不等式約束就變成了等式約束。

​ 圖(11)

從圖(11)可以看出來,在極小值點處\(-\nabla f(X)\)\(\nabla g(X)\)的方向是一致的

\[-\nabla f(X) = \lambda \nabla g(X)\quad and \quad \lambda >0 \]

其實這也不難理解,如果說\(X^*\)是一個極小值點,上面分析知道\(g(X)\leq 0\)被激活,所以\(g(X^*)=0\),如果設從點\(X^*\)出發下一步可行的方向為\(\Delta X\),由於要滿足\(g(X^*+\Delta X) \leq 0\),所以

\[\Delta X \cdot \nabla g(X^*) \leq 0 \quad (1) \]

所以下一步的所有可行方向需要滿足上述不等式約束,因為\(X^*\)是一個極小值點,也就是說沿着滿足上式(1)的\(\Delta X\)的方向,都有$f(X^) \leq f(X^+\Delta X) $,也就是

\[\Delta X \cdot \nabla f(X^*) \geq 0 \quad (2) \]

並且我們知道\(X^*\)一定在\(g(X)=0\)上,通過上一節的等式約束的條件,應有

\[\nabla f(X^*) = \mu \nabla g(X^*) \quad (3) \]

通過\((1,2,3)\)式可知\(\mu \leq 0\),從而\(\lambda = -\mu \geq 0\).

現在我們來總結一下上面討論的結果,給出優化問題

\[\min_{X \in R^n} f(X) \quad s.t. \; g(X) \leq 0. \]

如果\(X^*\)是一個極小值點,則可能有一下兩種情況:

  • Case 1: 無約束條件的極小值點出現在可行域內
    • \(g(X^*) < 0\).
    • \(\nabla _X f(X^*) = 0\).
    • \(\nabla^2 _{XX}f(X)\)是一個正定矩陣.
  • Case 2: 無約束條件的極小值點出現在可行域外
    • \(g(X^*)=0\).
    • \(-\nabla _Xf(X^*) = \lambda \nabla g(X^*) \quad where \quad \lambda > 0\).
    • \(Y^T\nabla_{XX}^2L(X^*)Y \geq 0 \quad s.t. \;(\nabla_Xg(X^*))^TY = 0\)

下面,直接引入\(KKT\)條件

\[\min_{X \in R^n} f(X) \quad s.t. \; g(X) \leq 0. \]

定義拉格朗日函數

\[L(X,\lambda) = f(X)+\lambda g(X). \]

\(X^*\)是一個局部最小值等價於存在唯一的\(\lambda^*\)滿足

  • KKT1 . \(\nabla _X L(X^*,\lambda^*)=0\).
  • KKT2. \(\lambda ^* \geq 0\).
  • KKT3. \(\lambda ^*g(X^*) = 0\).
  • KKT4. \(g(X^*) \leq 0\).
  • KKT5. 矩陣\(\nabla _{XX}L(X^*,\lambda ^*)\)正定.

上面就是\(KKT\)條件。這些條件其實可以分兩種情況

  • Case 1: 約束未激活
    • 此時\(\lambda ^* = 0,L(X^*,\lambda^*)=f(X^*)\),
    • KKT1 \(\Rightarrow \nabla _Xf(X^*)=0\).
    • KKT4 \(\Rightarrow X^*\)是一個可行點
  • Case 2: 約束被激活
    • 此時\(\lambda ^* \geq 0,L(X^*,\lambda^*)=f(X^*)+\lambda ^*g(X^*)\),
    • KKT1 \(\Rightarrow \nabla _Xf(X^*) =- \lambda \nabla g(X^*)\).
    • KKT3 \(\Rightarrow g(X^*) = 0\).並且\(L(X^*,\lambda^*)=f(X^*)\).

將問題推廣到多個不等式約束

\[\min_{X \in R^n} f(X) \quad s.t. \; g_i(X) \leq 0. \quad i =1,2,...,m \]

定義拉格朗日函數

\[L(X,\lambda) = f(X) +\sum_{i=1}^m\lambda_i g_i(X) = f(X)+\lambda^Tg(X) \]

\(X^*\)是一個局部最小值等價於存在唯一的\(\lambda^*\)滿足

  • KKT1 . \(\nabla _X L(X^*,\lambda^*)=0\).
  • KKT2. \(\lambda _j^* \geq 0\quad j=1,2...,m\).
  • KKT3. \(\lambda_j^*g_j(X^*) = 0 \quad j=1,2,...,m\).
  • KKT4. \(g_j(X^*) \leq 0 \quad j=1,2,...,m\).
  • KKT5. 矩陣\(\nabla _{XX}L(X^*,\lambda ^*)\)正定.

同時存在等式和不等式約束

我們回到最開始的情況,同時存在多個等式約束和多個不等式約束

\[\min_{X \in R^n}f(X) \quad s.t. \; g_i(X) \leq 0 \; , \;h_j(X) = 0 \quad, i =1,2,...,l \quad and \quad j =1,2,...,m \]

定義拉格朗日函數

\[L(X,\lambda) = f(X) +\sum_{j=1}^l\mu_j h_j(X)+\sum_{i=1}^m\lambda_i g_i(X) = f(X)+\mu^Th(X) +\lambda^Tg(X) \]

\(X^*\)是一個局部最小值等價於存在唯一的\(\lambda^*\)滿足

  • KKT1 . \(\nabla _X L(X^*,\mu^*,\lambda^*)=0\).
  • KKT2. \(\lambda _j^* \geq 0\quad j=1,2,...,m\).
  • KKT3. \(\lambda_j^*g_j(X^*) = 0 \quad j=1,2,...,m\).
  • KKT4. \(g_j(X^*) \leq 0 \quad j=1,2,...,m\).
  • KKT5. \(h_i(X^*) = 0 \quad i =1,2,...,l\)
  • KKT6. 矩陣\(\nabla _{XX}L(X^*,\lambda ^*)\)正定.

下面通過一個例子來加深理解,考慮問題

\[\min \quad x_1^2+x_2^2 \\ s.t. \quad x_1+x_2 = 1. \\ x_2 \leq \alpha . \]

構造拉格朗日函數

\[L(x_1,x_2,\lambda, \mu) = x_1^2+x_2^2+\mu(x_1+x_2-1)+\lambda(x_2-\alpha) \]

KKT方程如下:

\[\nabla _xL=(2x_1+\mu,2x_2+\mu+\lambda) = 0,\\ x_1+x_2 = 1, \quad \quad\quad\quad\quad\quad\quad\quad\quad\\ x_2 \leq \alpha, \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\\ \lambda \geq 0, \quad\quad\quad\quad\quad\quad\quad\quad \quad\quad\quad\;\;\\ \lambda(x_2-\alpha) =0.\quad\quad\quad\quad\quad \quad\quad\quad \]

聯立得

\[\lambda \geq 2 - 4 \alpha \]

  • \(\alpha \ge 1/2\)時,\(\lambda = 0 \geq 2 -4 \alpha\),此時約束條件未被激活,原問題的最優解為\((x_1,x_2)=(1/2,1/2)\).
  • \(\alpha < 1/2\)時,\(\lambda = 2 - 4\alpha > 0\),從而\(x_2-\alpha = 0\),即\(x_2=\alpha\),此時約束條件被激活,願問題最優解為\((x_1,x_2)=(1-\alpha,\alpha)\).


免責聲明!

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



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