深入理解凸優化核心理論:對偶

一、Lagrange函數與Lagrange對偶函數

1-Lagrange函數

Lagrange函數是微積分就瞭解的基礎概念,簡單覆盤一下,考慮一個熟悉的優化問題,(不一定是一個凸優化問題)
minf0(x)s.t.fi(x)0i=1...mhi(x)=0i=1...p\min \quad f_0(x) \\ s.t. \quad f_i(x)\leq 0\quad i=1...m \\ \quad h_i(x) = 0 \quad i=1...p
這個優化問題的定義域爲xRnD=i=0mdomfii=1pdomhix\in R^n\quad D=\cap_{i=0}^mdom f_i{\cap} \cap_{i=1}^pdom h_i,即所有限制條件與優化函數定義域的交集,假設目標函數最小的函數值爲pp^*,我們得到Lagrange函數
L(x,λ,ν)=f0(x)+i=1mλifi(x)+i=1pνihi(x)L(x,\lambda,\nu)=f_0(x)+\sum_{i=1}^m\lambda_if_i(x)+\sum_{i=1}^p\nu_ih_i(x)
該函數是一個三變量的函數,其中xx是自變量和上面一樣,λ\lambda是一個mm維的向量,即不等式約束的維數,每個λi\lambda_i稱之爲與不等式約束相關的拉格朗日乘子。而ν\nu是一個pp維的向量,與等式約束的維數一樣,νi\nu_i稱之爲與等式約束相關的拉格朗日乘子。當然這些函數可能都是一些很一般的函數,我們只是對他們進行了線性的加權,並不能構造出很好的函數形式。

2-Lagrange對偶函數

對偶函數定義爲如下形式:
g(λ,ν)=infxDL(x,λ,ν)g(\lambda,\nu)=\inf_{x\in D}L(x,\lambda,\nu)
即給定任意的(λ,ν)(\lambda,\nu),我們任意的選擇xDx\in D,使得拉格朗日函數的值取得最小。此時我們發現,該函數已經與f0(x)f_0(x)的凸性無關了,這變成了一個關於拉格朗日乘子(λ,ν)(\lambda,\nu)的函數。對偶函數有幾個非常重要而且好用的性質:

  1. 拉格朗日對偶函數一定是凹函數,且其凹性與最優化函數和約束函數無關。證明放在appendix A中
  2. λ0,ν,g(λ,ν)p\forall \lambda\geq0,\forall \nu,g(\lambda,\nu)\leq p*。即選擇任意λ0\lambda\geq0ν\nugg的函數值不可能大於原優化問題的最優解,即構成了原問題最優值的下界?最優值下界的證明放在appendix B中。

二、三個實例理解對偶與其性質

1-線性約束得二次優化問題

首先來考慮一個具有線性約束的二次優化問題:
minXTXs.t.AX=bXRnbRnARpn\min \quad X^TX \\ s.t. \quad AX=b\\ X\in R^n\quad b\in R^n\quad A\in R^{p*n}
L(X,ν)=XTX+νT(AXb)\mathbf{拉格朗日函數:L(X,\nu)=X^TX+\nu^T(AX-b)}
g(ν)=infXDL(X,ν)=infXDXTX+νTAXνTb\mathbf{對偶函數:g(\nu)=\inf_{X\in D}L(X,\nu)=\inf_{X\in D}X^TX+\nu^TAX-\nu^Tb}
在這裏面求最小值的話我們只需要對XX求個偏導,得到2X+ATν=02X+A^T\nu=0,那麼X=ATν2X=-\frac{A^T\nu}{2},將其帶回,使得對偶函數完全變成一個ν\nu的函數。
g(ν)=νTAATν4νTAATν2νTb=νTAATν4bTν\mathbf{g(\nu)=\frac{\nu^TAA^T\nu}{4}-\frac{\nu^TAA^T\nu}{2}-\nu^Tb=-\frac{\nu^TAA^T\nu}{4}-b^T\nu}
注意b,νb,\nu都是向量,所以內積總是常數,可以隨便轉置。也就是說我們將優化問題轉化成了這個對偶函數,而該函數是一個凹函數,因爲AAT-AA^T一定是一個半負定的矩陣。


2-線性規劃問題

考慮線性規劃問題:
mincTxs.t.Axb=0x0\min \quad c^Tx \\ s.t. \quad Ax-b=0\\-x\leq 0
注意不等式約束一定要寫成0\leq0的形式。
L(x,λ,ν)=cTxλTx+νT(Axb)=bTν+(c+ATλ)Tx\mathbf{拉格朗日函數:L(x,\lambda,\nu)=c^Tx-\lambda^Tx+\nu^T(Ax-b)=-b^T\nu+(c+A^T-\lambda)^Tx}
g(λ,ν)=infxDL(x,λ,ν)\mathbf{對偶函數:g(\lambda,\nu)=\inf_{x\in D}L(x,\lambda,\nu)}
bTν+(c+ATλ)Tx-b^T\nu+(c+A^T-\lambda)^Tx一次項的係數等於0的時候,這個函數的最小值是bTx-b^Tx,否則我們總能使得這個函數的值取得-\infty,因爲在對偶函數裏我們已經將原約束優化問題轉化成了單獨的一個函數,xxRnR^n上隨便取得。因此對偶函數實際上是一個分段函數
bTν,ATλ+c=0,otherwise\color{blue}-b^T\nu,\quad A^T-\lambda+c=0\\ -\infty,\quad\quad otherwise
ATλ+c=0A^T-\lambda+c=0顯然是一個超平面,而這整個函數可以看作,ATλ+c=0,\quad A^T-\lambda+c=0對應函數在全空間上的凹擴展,在這個超平面上取值固定,既凸又凹,因此總體是凹函數。


3-非凸函數,非凸限制

最後我們來看一個非凸函數,非凸限制得優化問題
minxTWxs.t.xi21=0,i=1...m\min \quad x^TWx \\ s.t. \quad x_i^2-1=0,\quad i=1...m
L(x,λ,ν)=xTWx+i=1nνi(xi21)\mathbf{拉格朗日函數:L(x,\lambda,\nu)=x^TWx+\sum_{i=1}^n\nu_i(x_i^2-1)}
將這個函數進行一步轉化得到:L(x,λ,ν)=xT(W+Diag(ν))x1Tν\color{red}L(x,\lambda,\nu)=x^T(W+Diag(\nu))x-1^T\nu
g(λ,ν)=infxDxT(W+Diag(ν))x1Tν\mathbf{對偶函數:g(\lambda,\nu)=\inf_{x\in D}x^T(W+Diag(\nu))x-1^T\nu}
那麼我們對這個對偶函數進行一波分析,當該二次型得係數矩陣半正定時,這個函數能取到得最小值一定是1Tν1^T\nu,否則,前一項一定可以使得這個函數得最小值取到inf-inf。也就是說,這個函數是一個分段函數
1Tν,W+Diag(ν)0,otherwise\color{blue}-1^T\nu,\quad W+Diag(\nu)\succeq0\\ -\infty,\quad\quad otherwise
那麼我們只需要證明W+Diag(ν)W+Diag(\nu)是一個凸集即可。這個利用f(θν1)+(1θ)f(ν2)θf(ν1)+(1θ)fν2)f(\theta \nu_1)+(1-\theta)f(\nu_2)\leq \theta f(\nu_1)+(1-\theta)f\nu_2)即可證明。


三、對偶函數與共軛函數的聯繫

1-共軛函數

共軛函數在凸優化中有着非常重要的作用,是理解對偶的必不可少的元素。在書中,它被定義爲
f(y)=supxdomf(yTxf(x))f^*(y)=\sup_{x\in dom f}(y^Tx-f(x))
其中,f:RnRf:RnRf:R^n\rightarrow R,f^*:R^n\rightarrow Rff^*稱爲ff的共軛函數。也就是說,共軛函數是線性函數yTxy^Tx與原始函數f(x)f(x)的最大gap.

2-二者的聯繫

二者的去別主要在於inf,supinf,sup這兩個操作上,我們知道inff(x)=supf(x)inf f(x)=-sup -f(x),因此舉幾個常規的例子來看一看寫出來的共軛函數和對偶函數區別到底在哪裏。最簡單的:
minf(x)s.t.x=0\min f(x)\\ s.t.\quad x=0
寫出他的對偶函數inf(x)+vTx;domLdomf×Rn\inf(x)+v^Tx;dom L\in dom f×R^n

他等價於sup(vTxf(x))-\sup(-v^Tx -f(x))這就變成共軛函數的形式即f(v)\mathbf{-f^*(-v)}xx並不是變量vv纔是),其實對於任意一個函數的對偶函數,我們通過如上形式都可以將它變爲以拉格朗日乘子爲變量的共軛函數,


四、對偶問題與原問題

1-概念,定義以及重要性質

有了上述的對偶函數,我們知道對偶函數的最優解是原問題的最優值下界,那麼我們就能得到兩個定義:對偶問題(D:dual)與原問題(P:primary)

(D)maxg(λ,ν)s.t.λ0(D) \max \quad g(\lambda,\nu)\\s.t.\quad \color{red}\lambda\succeq0
注意如果原問題有不等式約束,那麼對偶問題種一定有λ0\lambda\succeq 0的約束條件。他的最優值記爲dd^*,原問題記爲
(P)minf0(x)s.t.fi(x)0i=1,...,mbi(x)=0i=1,...,p(P)\min f_0(x)\\s.t.\quad f_i(x)\leq0\quad i=1,...,m\\ b_i(x)=0\quad i=1,...,p
原問題的最優解爲pp^*,根據最優值下界我們有
dpd^*\leq p^*
我們關注兩個問題:

  • 這個最優值下界好像沒有什麼意義,比如說我說你最少活2年,這顯然是沒有意義的,一定要給一個確界才比較好,比如能活100年。這表現在對偶問題中就是p=dp^*=d^*,如何能達到這一點是我們需要考慮的
  • 我們知道對偶問題一定是一個凸問題,但是對偶問題的對偶問題不一定是原問題(同共軛函數的性質),非凸問題的對偶問題的對偶問題依然不會是非凸的,那麼是麼時候我們可以使得某個問題的對偶問題的對偶是它自身,這是第二個需要考慮的問題。

2-強對偶與弱對偶

  • 我們定義對偶間隙爲原問題的最優解與對偶問題的最優解的差pdp^*-d^*(因爲dd^*是最優值下界,此值一定不小於0)
  • 強對偶:如果等式d=pd^*=p^*,即對偶間隙等於0,那麼強對偶性成立。
  • 弱對偶:對偶問題一般都具有的性質,只要滿足d<pd^*<p^*即可。

3-強對偶性何時成立以及slate充分條件

相對內部(Relative interior)\textbf{\color{blue}{相對內部(Relative interior)}}
首先我們需要給出集合DD的相對內部(Relative interior),記作relint  D\mathbf{relint} \;D,他定義如下:
relint  D={xDB(x,r)affDD,r>0}\mathbf{relint} \;D=\{x\in D|B(x,r)\cap\mathbf{aff} D\in D,\exist r>0\}
這個概念其實很簡單,我們分爲三部分來理解它

  • 首先xDx\in D,表示了所有元素都在DD內部。
  • B(x,r)affDDB(x,r)\cap\mathbf{aff} D\in D表示以xx爲中心,我們能找到一個半徑爲rr的圓,他和DD的仿射包的交集依然在DD的內部。
    在這裏插入圖片描述
    可以看到上面,只有在邊界上的時候,我們任取一個xx,找不到半徑使得仿射集和圓的交集在DD內,其實相對內部的定義即去掉該集合的邊界

slate條件\textbf{\color{blue}{slate條件}}
slate條件回答了什麼時候我們可以得到p=dp^*=d^*,這是一個充分條件,不滿足時對偶問題的最優解也可能是一個下確界,它的定義如下:

對於一般問題,強對偶性不成立。但是如果當原問題是凸問題,即寫爲:
minf0(x)s.t.fi(x)0i=1...mAx=b,\min \quad f_0(x) \\ s.t. \quad f_i(x)\leq 0\quad i=1...m \\ Ax=b,
其中fi(x)f_i(x)是凸函數,此時強對偶性通常(但不總是)成立的(即原問題是凸問題,它的對偶問題一般都具有強對偶性)。 必要的時候我們可以使用強對偶性成立的充分條件進行判斷:

存在一點xrelintDx\in \mathbf{relint}D使得下列等式成立:
fi(x)<0,i=1,...,mAx=bf_i(x)<0,i=1,...,m\quad\quad Ax=b
即不僅滿足等式約束,而且所有的不等式約束都小於0,去掉了等於0的情況。但是這時候我們要找到這樣一個xx來驗證是非常難的,因此我們有了更弱一點的slate條件。


弱slate條件\textbf{\color{blue}{弱slate條件}}
如果原問題是一個凸問題,而且不等式約束全部爲仿射約束時,只要可行域非空,必有p=dp^*=d^*。當不等式約束中存在仿射不等式時,這些仿射不等式不需要嚴格成立(即他們不需要<0,0\leq0即可),只要我們能找到一個xrelintDx\in\mathbf{relint}D使得所有非仿射不等式嚴格成立,這個條件依然是可行的。


Appendix A:證明:對偶函數一定是凹函數,且其凹性與最優化函數和約束函數無關

如果瞭解保凸運算,那麼我們知道函數的逐點上確界一定是一個凸函數,給定下列函數
L(λ,ν)=supxDf0(x)+i=1mλifi(x)+i=1pνihi(x)L(\lambda,\nu)=\sup_{x\in D}f_0(x)+\sum_{i=1}^m\lambda_if_i(x)+\sum_{i=1}^p\nu_ih_i(x)
即對每個(λ,ν)(\lambda,\nu)我們求一個xx使得函數值最大,這樣的函數叫做逐點上確界。而我們現在的函數,是關於(λ,ν)(\lambda,\nu)線性函數,線性函數也是凸函數,那如果是求最小呢,就變成了仿射函數的下確界問題,是一個凹函數。我們給出詳細的推導過程:

參考自:https://blog.csdn.net/u014540876/article/details/79153913

要證對偶函數一定是凹函數,根據凹函數的定義,就是要證
g(θλ1+(1θ)λ2,θν1+(1θ)ν2)θg(λ1,ν1)+(1θ)g(λ2,ν2)θRg(\theta\lambda_1+(1-\theta)\lambda_2,\theta\nu_1+(1-\theta)\nu_2)\geq \theta g(\lambda_1,\nu_1)+(1-\theta)g(\lambda_2,\nu_2)\quad \theta\in R
根據對偶函數的定義可知,對偶函數是拉格朗日函數在把λ\lambdaν\nu當做常量,xx變化時的最小值,如果拉格朗日函數沒有最小值(可以認爲最小值爲-\infty),則對偶函數取值爲-\infty,所以,可以把對偶函數按照下面的方式表達:
在這裏插入圖片描述
即無窮多個x變化時,拉格朗日函數的最小值。另外,由於把λ和ν分開來寫,式子太長了,爲了簡便,記γ=(λ,ν)\gamma = (\lambda, \nu),那麼我們有
在這裏插入圖片描述
我們關注一下LL這個函數,他是一個關於λ,ν\lambda,\nu的線性函數,因此既是凸的也是凹的,利用凸性我們可以得到L(x,θγ1+(1theta)γ2)θL(x,γ1)+(1θ)L(x,γ2)L(x,\theta\gamma_1+(1-theta)\gamma_2)\geq \theta L(x,\gamma_1)+(1-\theta)L(x,\gamma_2),因此我們可以得到上式大於等於:
在這裏插入圖片描述
對min函數,我們有一個基本不等式mini=1n(a+b)mini=1n(a)+mini=1n(b)\min_{i=1}^n(a+b)\geq \min_{i=1}^n(a)+\min_{i=1}^n(b),其中a={a1,...an},b={b1,...,bn}a=\{a_1,...a_n\},b=\{b_1,...,b_n\}都是向量。那麼我們進一步化簡上式得到:
在這裏插入圖片描述
所以原命題得證。


Appendix B:證明:對偶函數爲最優值下界

我們之前假設的pp*爲原優化問題的最優解,也即全局最小,設此時自變量值爲xx^*。那麼對於任意的λ0\lambda\geq0ν\nu,我們有L(x,λ,ν)=f0(x)+i=1mλifi(x)+i=1pνihi(x)pL(x^*,\lambda,\nu)=f_0(x^*)+\sum_{i=1}^m\lambda_if_i(x)+\sum_{i=1}^p\nu_ih_i(x)\leq p^*
原因很簡單,因爲fi(x)f_i(x)都是不等式約束,而我們的不等式約束都要小於0,而等式約束都等於0,即i=1mλifi(x)+i=1pνihi(x)0\sum_{i=1}^m\lambda_if_i(x)+\sum_{i=1}^p\nu_ih_i(x)\leq 0,那麼也就是給f0(x)f_0(x^*)加上了一個非正項。而我們的對偶函數,
g(λ,ν)=infxDL(x,λ,ν)g(\lambda,\nu)=\inf_{x\in D}L(x,\lambda,\nu)
因爲xx^*總是在定義域裏的,所以最小化這個值等價於最小化L(x,λ,ν)=f0(x)+i=1mλifi(x)+i=1pνihi(x)pL(x^*,\lambda,\nu)=f_0(x^*)+\sum_{i=1}^m\lambda_if_i(x)+\sum_{i=1}^p\nu_ih_i(x)\leq p^*。得證

拿兩個書上的圖加深理解
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章