在約束最優化問題中,常用拉格朗日對偶性將原始問題轉換為對偶問題求解。
廣義拉格朗日函數
稱最優化問題
$\begin{equation} \begin{array}{lcl} \min\limits_{x\in R^n} f(x)\\ \begin{aligned} \text{s.t.}\;\;&c_i(x) \le 0,\;\;i=1,2,...,k \\ &h_j(x)=0,\;\;j=1,2,...,l \end{aligned} \end{array} \end {equation}$
為原始最優化問題。使用以上優化問題構造廣義拉格朗日函數:
$L(x,\alpha,\beta) = f(x)+\sum\limits_{i=1}^k\alpha_ic_i(x)+\sum\limits_{j=1}^l\beta_jh_j(x)$
其中$\alpha_i\ge 0,\beta_j\in R$是拉格朗日乘子。可以發現,對於違反原始問題約束的$x$,即存在某個$c_i(x)>0$,或某個$h_j(x)\ne 0$,有:
$\max\limits_{\alpha\ge 0,\beta}L(x,\alpha,\beta) = +\infty$
因此有:
$\begin{equation} \max\limits_{\alpha\ge 0, \beta}L(x,\alpha,\beta) = \left\{ \begin{aligned} &f(x),\;\;x滿足原始條件約束\\ &+\infty,\;\;else \end{aligned} \right. \end {equation}$
因此原始問題的最優值可以表示為:
$p^* = \min\limits_{x}\max\limits_{\alpha\ge 0 , \beta}L(x,\alpha,\beta)$
從而將約束條件與待優化問題結合到了一起,稱為廣義拉格朗日函數的極小極大問題。
對偶問題以及KKT條件
對偶問題
將極小極大交換一下,得到
$d^* = \max\limits_{\alpha\ge 0 , \beta}\min\limits_{x}L(x,\alpha,\beta)$
即為原始問題的對偶問題的最優值。對偶問題轉換為帶條件的形式就是:
$\begin{aligned} &\max\limits_{\alpha,\beta}\min\limits_{x} L(x,\alpha,\beta)\\ &\;\text{s.t.}\;\;\alpha_i\ge 0, \;\; i=1,2,...,k \\ \end{aligned}$
如果原始問題與對偶問題都有最優值,$p^*$和$d^*$,則:
$d^*= \max\limits_{\alpha\ge 0 , \beta}\min\limits_{x}L(x,\alpha,\beta)\le \min\limits_{x}\max\limits_{\alpha\ge 0 , \beta}L(x,\alpha,\beta)= p^*$
以下說明原因。
最大最小和最小最大的比較
假設
$\min\limits_x\max\limits_yf(x,y)$
$\max\limits_y\min\limits_xf(x,y)$
分別在$(x_0,y_M)$處取得最小最大值和在$(x_m,y_0)$處取得最大最小值。則有下列不等式成立:
$\min\limits_x\max\limits_yf(x,y)=f(x_0,y_M)\ge f(x_0,y_0)\ge f(x_m,y_0)=\max\limits_y\min\limits_xf(x,y)$
第一個大於等於號是因為,對於固定的$x=x_0$, $f(x_0,y_M)$是所有$f(x_0,y)$中最大的。
第二個大於等於號是因為,對於固定的$y=y_0$, $f(x_m,y_0)$是所有$f(x,y_0)$中最小的。
KKT條件
某些情況下,對偶問題與原始問題有相等的最優值,即對於同樣的$x^*,\alpha^*,\beta^*$,有$d^* = p^*$,這時解對偶問題可以替代原始問題,條件如下:
1、$f(x)$和$c_i(x)$是凸函數;
2、$h_j(x)$是仿射函數,即一次函數;
3、不等式約束$c_i(x)$是嚴格可行的,即存在$x$,對所有$i$有$c_i(x)<0$。如果不存在這樣的$x$的話,實際上就是等式約束了。這是因為,每個$x$都會使某個不等式約束取等號,也就可以僅使用等式約束來表示這些$x$了。
此時有:
$p^*=d^*=L(x^*,\alpha^*,\beta^*)$
且算出$x^*,\alpha^*,\beta^*$的充要條件是(KKT條件):
$\left\{ \begin{aligned} &\nabla_xL(x^*,\alpha^*,\beta^*) = 0 \\ &\alpha_i^*c_i(x^*) = 0, \;\; i=1,2,...,k \\ &c_i(x^*) \le 0, \;\; i=1,2,...,k \\ &\alpha_i^*\ge 0, \;\; i=1,2,...,k \\ &h_j(x^*) = 0, \;\; i=1,2,...,l \\ \end{aligned} \right.$
直觀理解

上圖顯示了優化的一個情況。等高線表示的是待優化函數$f(x)$($x$二維),越向中心,值越小,是個標准的凸函數。紅圈表示不等式約束(內部),是個凸函數。藍線表示等式約束(線上),是仿射函數。則$x$可取的值在紅圈內部的藍線和紅藍線的兩個交點上。可觀察有如下幾個符合KKT條件的事實:
1、三個白色箭頭分別表示三個函數的加權梯度方向,此時有三個梯度的加權矢量和為0,與KKT條件中的1式吻合。
2、因為最優點在紅圈上,因此不等式約束取等為0,有2式。
3、3式和5式是原本的約束條件。
4、觀察不等式約束的加權梯度朝向為向外,也就是$\alpha$,符合2式。如果$\alpha<0$的話,三個梯度的加權矢量和就不可能為0了,1式也不可能滿足。
