什麼是 拉格朗日乘數(Lagrange Multiplier)?

拉格朗日乘數是一種尋找約束條件下函數極值的方法。它引入拉格朗日函數,將約束條件納入目標函數,從而將約束優化問題轉化為無約束優化問題。

核心概念

拉格朗日乘數法是一種用於解決約束優化問題的數學工具。約束優化問題是指在滿足一定約束條件的情況下,尋找目標函數的最大值或最小值。例如,我們可能需要在給定的預算下,最大化商品的效用;或者在滿足一定性能指標的情況下,最小化控制系統的能量消耗。

拉格朗日乘數法的核心思想是將約束條件納入目標函數中,形成一個新的函數,稱為拉格朗日函數。通過求解拉格朗日函數的駐點,即可找到滿足約束條件的極值點。

具體來說,假設我們需要求解以下約束優化問題:

minimize f(x)

subject to g(x) = 0

其中f(x)是目標函數,g(x)是約束條件。拉格朗日函數定義為:

L(x, λ) = f(x) + λg(x)

其中λ是拉格朗日乘數。拉格朗日乘數是一個實數,用於衡量約束條件對目標函數的影響。

求解拉格朗日函數的駐點,需要滿足以下條件:

∇L(x, λ) = 0

即:

∇f(x) + λ∇g(x) = 0

g(x) = 0

這些方程稱為KKT條件(Karush-Kuhn-Tucker conditions)。通過求解KKT條件,可以找到滿足約束條件的極值點。

運作原理

拉格朗日乘數法的運作原理可以通過幾何直觀來理解。假設目標函數f(x)和約束條件g(x) = 0都是光滑的函數。目標函數的等高線表示在不同x值下,f(x)的值相等。約束條件g(x) = 0表示一個曲面或曲線。

我們需要找到在約束條件g(x) = 0上,目標函數f(x)的最小值。這意味著我們需要在約束曲面上找到一個點,使得目標函數的等高線與約束曲面相切。在切點處,目標函數的梯度和約束條件的梯度方向平行。

拉格朗日乘數λ的作用是調整約束條件的梯度,使得其與目標函數的梯度方向平行。KKT條件∇f(x) + λ∇g(x) = 0表示在極值點處,目標函數的梯度和約束條件的梯度方向平行,並且λ表示它們之間的比例關係。

求解KKT條件通常需要解一個非線性方程組。可以使用各種數值方法來求解,例如牛頓法、梯度下降法等。

實際應用

拉格朗日乘數法在許多領域都有著廣泛的應用,例如:

  • 經濟學: 在給定的預算下,最大化商品的效用。
  • 工程學: 在滿足一定性能指標的情況下,最小化控制系統的能量消耗。
  • 機器學習: 支持向量機(SVM)的訓練過程中,需要使用拉格朗日乘數法來求解約束優化問題。
  • 物理學: 在約束條件下,尋找系統的平衡態。
  • 化學: 在約束條件下,尋找化學反應的平衡點。

以下是一個簡單的例子:

假設我們需要求解以下約束優化問題:

minimize x^2 + y^2

subject to x + y = 1

拉格朗日函數為:

L(x, y, λ) = x^2 + y^2 + λ(x + y - 1)

求解KKT條件:

∂L/∂x = 2x + λ = 0

∂L/∂y = 2y + λ = 0

∂L/∂λ = x + y - 1 = 0

解得:

x = 0.5

y = 0.5

λ = -1

因此,在約束條件x + y = 1下,x^2 + y^2的最小值為0.5,在x = 0.5,y = 0.5處取得。

常見誤區

  • 誤區一:拉格朗日乘數法只能用於等式約束。 實際上,拉格朗日乘數法可以擴展到不等式約束,稱為KKT條件。KKT條件包括互補鬆弛條件,用於處理不等式約束。
  • 誤區二:拉格朗日乘數λ的符號沒有意義。 實際上,拉格朗日乘數λ的符號表示約束條件對目標函數的影響方向。如果λ > 0,則表示約束條件對目標函數有正向影響;如果λ < 0,則表示約束條件對目標函數有負向影響。
  • 誤區三:求解KKT條件一定能找到全局最優解。 求解KKT條件只能找到局部最優解。要找到全局最優解,需要驗證KKT條件是否滿足全局最優性條件,例如目標函數和約束集合都是凸的。
  • 誤區四:拉格朗日乘數法只能用於凸優化問題。 雖然拉格朗日乘數法在凸優化問題中應用廣泛,但它也可以用於非凸優化問題。在非凸優化問題中,求解KKT條件只能找到局部最優解,並且可能存在多個局部最優解。
  • 誤區五:拉格朗日乘數法很難理解。 雖然拉格朗日乘數法涉及一些數學概念,但其核心思想是將約束條件納入目標函數中,從而將約束優化問題轉化為無約束優化問題。通過幾何直觀和簡單的例子,可以更容易地理解拉格朗日乘數法。

相關術語

常見問題

← 回到 拉格朗日乘數 快查頁

延伸學習

想看 拉格朗日乘數 的完整影片教學?前往 美第奇 AI 學院