Lagrange Multiplier - 02

這裡我們再多討論一點 Lagrangian function.

我們先看最簡單的一維問題, 求一個有限制式的函數最小值問題: $$ \min_{x} f(x), \quad \text{subject to } \quad g(x)=0. $$

我們引進 Lagrangian function $$ L(x, \lambda) = f(x) + \lambda g(x) $$ 並且知道原問題的解發生在 $\nabla L=0$ 的地方.

Question: 從微積分我們知道 $\nabla L=0$ 是 $L(x, \lambda)$ 這個函數 critical point發生的地方, 那這個 critical point 究竟是 local max/min 還是 saddle 呢?


要回答這問題其實很簡單, 我們看這個二維函數的判別式就知道. 這函數的變數有兩個分別是 $x$ 以及 $\lambda$, 所以判別式是 $$ L_{xx}L_{\lambda\lambda} - L_{x\lambda}^2 = -(g_x)^2 \le 0 $$ 所以我們知道原最佳化問題的解其實是這個 Lagragian function 的 saddle point (至少不是 local max/min)!


Constraint optimization problem

我們事實上可以考慮更一般的問題 $$ \min_{x} f(x), \quad \text{subject to } \quad g(x) \le 0. $$ 這樣的問題我們可以定義一樣的 Lagrangian function $$ L(x, \lambda) = f(x) + \lambda g(x). $$

我們有以下這個定理:

Theorem - Saddle point (Sufficient condition)

Let $P$ be a constraint optimization problem. If $(x^+, \lambda^+)$ is a saddle point, that is, $$\forall x\in\mathbb{R}, \forall\lambda\ge 0, \quad L(x^+, \lambda)\le L(x^+, \lambda^+)\le L(x, \lambda^+),$$ then it is a solution of $P$.

這個證明很簡單.

根據不等式第一個部分 $$\forall\lambda\ge 0, \quad L(x^+, \lambda)\le L(x^+, \lambda^+)$$ 帶入 $L$ 我們得到 $\lambda g(x^+) \le \lambda^+ g(x^+)$.

由於對所有 $\lambda\ge 0$ 都對, 我們讓 $\lambda\to\infty$ 得到 $g(x^+)\le 0$. 接著讓 $\lambda\to 0$ 我們得到 $0\le \lambda^+ g(x^+)\le 0$, 因此 $\lambda^+ g(x^+)=0$.

有這件事後我們再看不等式第二部分, $L(x^+, \lambda^+)\le L(x, \lambda^+)$. 代入 $L$ 以及以上結果我們有 $f(x^+)\le f(x) + \lambda^+ g(x)$.

因此, 若 $g(x)\le 0$, 我們必定有 $f(x^+)\le f(x)$.

QED.


可以看到在上面有個隱藏的假設是 $\lambda\ge 0$. 可以被很輕易地看出來所以這裡就不記下了.


更進一步, 我們可以引進這個 Lagrange dual function: $$ F(\lambda) = \inf_{x} L(x, \lambda) $$ 也就是固定一個 $\lambda$ 我去找 $L$ 這函數的最大下界(有點像最小值不過不一定要碰到). 據此我們可以引進以下的 dual problem.

Dual optimization problem

$$ \max_{\lambda} F(\lambda), \quad \lambda \ge 0. $$


舉個例子

我們考慮這個特別的 constraint optimization 問題 $$ \min_{\pmb{x}\in\mathbb{R}^n}f(\pmb{x}), \quad \text{subject to } \quad A\pmb{x}-\pmb{b}=\pmb{0}, $$ 其中 $A$ 是個矩陣而 $\pmb{b}$ 是個向量. 也就是說限制式為 $g(\pmb{x}) = A\pmb{x}-\pmb{b}$.

把 Lagrangian function 寫下來就是 $$ L(\pmb{x}, \pmb{\lambda}) = f(\pmb{x}) + \pmb{\lambda}^T(A\pmb{x}-\pmb{b}). $$ 對於 dual problem 我們可以構造一個迭代法來解這問題.

由 Dual optimization problem 我們知道對於 $F$ 這個函數我們要求其最大值. 所以我們試著朝 gradient 方向走來往上走, 意即 $$ \lambda^{k+1} = \lambda_k + \alpha^k\nabla_{\lambda} F(\lambda^k), $$ 其中 $\alpha^k$ 是步長. 而且我們知道 $\nabla_{\lambda} F(\lambda^k) = A\pmb{\tilde{x}}-\pmb{b},$ 其中 $\pmb{\tilde{x}} = argmin \ L(\pmb{x}, \pmb{\lambda}^k)$. 因此我們有以下這方法:

Dual ascent iteration method:

  • 第一步: 固定一個 $\pmb{\lambda}$ 我們解一個 optimization 問題 $$ \pmb{x}^{k+1} = argmin \ L(\pmb{x}, \pmb{\lambda}^k) $$ Remark: 這是一個沒有 constraint 的最小值問題, 可以用 gradient descent 或各式方法來解.

  • 第二步: 接著我們用 gradient ascent 來更新 $\pmb{\lambda}$ $$ \lambda^{k+1} = \lambda^k + \alpha^k(A\pmb{x}^{k+1}-\pmb{b}) $$

迭代下去我們可以得到原問題的解!


Augmented Lagrangian

一個很有趣的更進一步推廣是將 Lagrangian 引入一個新的 penalty term: $$ L_{\rho}(\pmb{x}, \pmb{\lambda}) = f(\pmb{x}) + \pmb{\lambda}^T(A\pmb{x}-\pmb{b}) + \frac{\rho}{2}\|A\pmb{x}-\pmb{b}\|^2_2, $$ 其中 $\rho$ 是個常數.

我們可以反過來將這個 Lagrangian 所對應的限制最佳化問題寫下來: $$ \min_{\pmb{x}\in\mathbb{R}^n}f(\pmb{x})+\frac{\rho}{2}\|A\pmb{x}-\pmb{b}\|^2_2, \quad \text{subject to } \quad A\pmb{x}-\pmb{b}=\pmb{0}. $$ 我們可以輕易發現, 加了這新的一項對於這整個問題的最佳解完全沒有影響! 也就是說 $L_{\rho}$ 所得到的解就是原本 $L$ 的解.

接著我們一樣用 dual ascent iteration method 來解這問題(給定 $\pmb{x}^{k}$ 以及 $\pmb{\lambda}^{k}$).

Method of multiplier:

  • 第一步: 我們解一個 optimization 問題 $$ \pmb{x}^{k+1} = argmin \ L_{\rho}(\pmb{x}, \pmb{\lambda}^k) $$

  • 第二步: 接著我們用 gradient ascent 來更新 $\pmb{\lambda}$ $$ \pmb{\lambda}^{k+1} = \pmb{\lambda}^k + \rho(A\pmb{x}^{k+1}-\pmb{b}) $$

Remark: 這裡有個有趣的事, 原本的方法中步長是不知道的需要自己決定, 不過在這裡我們卻直接設定步常為 $\rho$. 接下來我們就是要解釋這部分.

  • 第一步中, 如果 $\pmb{x}^{k+1}$ 是個解那它要滿足 $\nabla_{\pmb{x}} L_{\rho}=0$, 其中整理一下發現 $$ \nabla_{\pmb{x}} L_{\rho}=\nabla_{\pmb{x}} f(\pmb{x}^{k+1}) + A^T\left(\pmb{\lambda}^k + \rho (A\pmb{x}^{k+1}-\pmb{b})\right)=0. $$

  • 所以, 如果第二步中的步長我們設定為 $\rho$, 那上式就可以改寫為 $$ \nabla_{\pmb{x}} f(\pmb{x}^{k+1}) + A^T\pmb{\lambda}^{k+1}=0. $$ 有趣的是, 對原本的 Lagrangian 而言我們有 $$ \nabla_{\pmb{x}} L=\nabla_{\pmb{x}} f(\pmb{x}) + A^T\pmb{\lambda}, $$ 所以我們這樣設定步長, 剛好使得我們每次算出的 $\pmb{x}^{k+1}$ 以及 $\pmb{\lambda}^{k+1}$ 滿足 $$ \nabla_{\pmb{x}} L(\pmb{x}^{k+1}, \pmb{\lambda}^{k+1})=0. $$


再把以上兩個方法 summarize 一下

  • 原本問題是 $$ \min_{\pmb{x}} f(\pmb{x}), \quad \text{subject to } \quad A\pmb{x}-\pmb{b}=\pmb{0}. $$

  • 引進 Lagrangian 後變成我們要解以下方程 $$ \nabla_{\pmb{x}} L =\nabla_{\pmb{x}} f(\pmb{x}) + A^T\pmb{\lambda}=0, \quad \nabla_{\pmb{\lambda}} L=A\pmb{x}-\pmb{b}=0. $$

  • 我們使用迭代法來解

    • 若用 dual ascent iteration method, 則有 $$ \nabla_{\pmb{x}} L(\pmb{x}^{k+1}, \pmb{\lambda}^k)=0. $$

    • 若用 method of multiplier, 則有 $$ \nabla_{\pmb{x}} L(\pmb{x}^{k+1}, \pmb{\lambda}^{k+1})=0. $$

    • 對於兩種方法, 原問題的 Constraint 都在 $k\to\infty$ 滿足 $$ \lim_{k\to\infty} A\pmb{x}^k-\pmb{b}=0. $$


Avatar
Te-Sheng Lin (林得勝)
Associate Professor

The focus of my research is concerned with the development of analytical and computational tools, and further to communicate with scientists from other disciplines to solve engineering problems in practice.

Related