上一小節講了拉格朗日函數,可以把原始問題轉化爲對偶問題,並且對偶問題是凸的。我們還得到了弱對偶性和強對偶性的概念,並且提到了 Slater Condition 保證凸問題的強對偶性成立,並且給出了一些幾何的直觀解釋。那麼在這一節,我們將引出著名的 KKT 條件,它給出了最優解需要滿足的必要條件,是求解優化問題最優解的一個重要方式。
有需要的話可以參考前面兩節內容
凸優化學習筆記 10:凸優化問題
凸優化學習筆記 11:對偶原理
1. KKT 條件
我們首先回顧一下拉格朗日函數,考慮下面的優化問題
minimize subject to f0(x)fi(x)≤0,i=1,…,mhi(x)=0,i=1,…,p
那麼他的拉格朗日函數就是
L(x,λ,ν)=f0(x)+λTf(x)+νTh(x)
首先,我們看對偶函數
g(λ,ν)=x∈Dinf(f0(x)+λTf(x)+νTh(x))
對偶問題實際上就是
d⋆=λ,νsupg(λ,ν)=λ,νsupxinfL(x,λ,ν)
然後我們再看原問題,由於 λ⪰0,f(x)⪯0,我們有
f0(x)=λ,νsupL(x,λ,ν)
原問題的最優解實際上就是
p⋆=xinff0(x)=xinfλ,νsupL(x,λ,ν)
弱對偶性 p⋆≥d⋆ 實際上說的是什麼呢?就是 max-min 不等式
xinfλ,νsupL(x,λ,ν)≥λ,νsupxinfL(x,λ,ν)
強對偶性說的又是什麼呢?就是上面能夠取等號
xinfλ,νsupL(x,λ,ν)=λ,νsupxinfL(x,λ,ν)=L(x⋆,λ⋆,ν⋆)
實際上 x⋆,λ⋆,ν⋆ 就是拉格朗日函數的鞍點!!!(數學家們真實太聰明瞭!!!妙啊!!!)那麼也就是說強對偶性成立等價於拉格朗日函數存在鞍點(在定義域內)。
好,如果存在鞍點的話,我們怎麼求解呢?還是看上面取等的式子
f0(x⋆)=g(λ⋆,ν⋆)=xinf(f0(x)+λ⋆Tf(x)+ν⋆Th(x))≤f0(x⋆)+λ⋆Tf(x⋆)+ν⋆Th(x⋆)≤f0(x⋆)
這兩個不等號必須要取到等號,而第一個不等號取等條件應爲
∇x(f0(x)+λ⋆Tf(x)+ν⋆Th(x))=0
第二個不等號取等條件爲
λi⋆fi(x⋆)=0,∀i
同時,由於 x⋆,λ⋆,ν⋆ 還必須位於定義域內,需要滿足約束條件,因此上面的幾個條件共同構成了 KKT 條件。
KKT 條件
- 原始約束 fi(x)≤0,i=1,...,m,hi(x)=0,i=1,...,p
- 對偶約束 λ⪰0
- 互補性條件(complementary slackness) λifi(x)=0,i=1,...,m
- 梯度條件
∇f0(x)+i=1∑mλi∇fi(x)+i=1∑pνi∇hi(x)=0
2. KKT 條件與凸問題
Remarks(重要結論)
- 前面推導沒有任何凸函數的假設,因此不論是否爲凸問題,如果滿足強對偶性,那麼最優解一定滿足 KKT 條件。
- 但是反過來不一定成立,也即 KKT 條件的解不一定是最優解,因爲如果 L(x,λ⋆,ν⋆) 不是凸的,那麼 ∇xL=0 並不能保證 g(λ⋆,ν⋆)=infxL(x,λ⋆,ν⋆)=L(x⋆,λ⋆,ν⋆),也即不能保證 x⋆,λ⋆,ν⋆ 就是鞍點。
但是如果我們假設原問題爲凸問題的話,那麼 L(x,λ⋆,ν⋆) 就是一個凸函數,由梯度條件 ∇xL=0 我們就能得到 g(λ⋆,ν⋆)=L(x⋆,λ⋆,ν⋆)=infxL(x,λ⋆,ν⋆),另一方面根據互補性條件我們有此時 f0(x⋆)=L(x⋆,λ⋆,ν⋆),因此我們可以得到一個結論
Remarks(重要結論):
- 考慮原問題爲凸的,那麼若 KKT 條件有解 x~,λ~,ν~,則原問題一定滿足強對偶性,且他們就對應原問題和對偶問題的最優解。
- 但是需要注意的是,KKT 條件可能無解!此時就意味着原問題不滿足強對偶性!
假如我們考慮上一節提到的 SCQ 條件,如果凸優化問題滿足 SCQ 條件,則意味着強對偶性成立,則此時有結論
Remarks(重要結論):
如果 SCQ 滿足,那麼 x 爲最優解當且僅當存在 λ,ν 滿足 KKT 條件!
例子 1:等式約束的二次優化問題 P∈S+n
minimize subject to (1/2)xTPx+qTx+rAx=b
那麼經過簡單計算就可以得到 KKT 條件爲
[PAAT0][x⋆ν⋆]=[−qb]
例子 2:注水問題
minimize −i=1∑nlog(αi+xi) subject to x⪰0,1Tx=1
根據上面的結論,x 是最優解當且僅當 x⪰0,1Tx=1,且存在 λ,ν 滿足
λ⪰0,λixi=0,xi+αi1+λi=ν
根據互補性條件 λixi=0 分情況討論可以得到
- 如果 ν<1/αi:λi=0,xi=1/ν−αi
- 如果 ν≥1/αi:λi=ν−1/αi,xi=0
整理就可以得到 1Tx=∑imax{0,1/ν−αi},這個式子怎麼理解呢?就像向一個池子裏注水一樣
3. 擾動與敏感性分析
現在我們再回到原始問題
minimize subject to f0(x)fi(x)≤0,i=1,…,mhi(x)=0,i=1,…,p
我們引入了對偶函數 g(λ,ν),那這兩個參數 λ,ν 有什麼含義嗎?假如我們把原問題放鬆一下
minimize subject to f0(x)fi(x)≤ui,i=1,…,mhi(x)=vi,i=1,…,p
記最優解爲 p⋆(u,v)=minf0(x),現在對偶問題變成了
maxs.t.g(λ,ν)−uTλ−vTνλ⪰0
假如說原始對偶問題的最優解爲 λ⋆,ν⋆,鬆弛後的對偶問題最優解爲 λ~,ν~,那麼根據弱對偶性原理,有
p⋆(u,v)≥g(λ~,ν~)−uTλ~−vTν~≥g(λ⋆,ν⋆)−uTλ⋆−vTν⋆=p⋆(0,0)−uTλ⋆−vTν⋆
這像不像關於 u,v 的一階近似?太像了!實際上,我們有
λi⋆=−∂ui∂p⋆(0,0),νi⋆=−∂vi∂p⋆(0,0)
4. Reformulation
前面將凸優化問題的時候,我們提到了Reformulation的幾個方法來簡化原始問題(參考凸優化學習筆記 10:凸優化問題),比如消去等式約束,添加等式約束,添加鬆弛變量,epigraph等等。現在當我們學習了對偶問題,再來重新看一下這些方法。
4.1 引入等式約束
例子 1:考慮無約束優化問題 minf(Ax+b),他的對偶問題跟原問題是一樣的。如果我們引入等式約束,原問題和對偶問題變爲
minimizesubject tof0(y)Ax+b−y=0minimizesubject tobTν−f0∗(ν)ATν=0
例子 2:考慮無約束優化 min∥Ax−b∥,類似的引入等式約束後,對偶問題變爲
minimizesubject tobTνATν=0,∥ν∥∗≤1
4.2 顯示約束與隱式約束的相互轉化
例子 3:考慮原問題如下,可以看出來對偶問題非常複雜
minimizesubject tocTxAx=b−1⪯x⪯1maximizesubject to−bTν−1Tλ1−1Tλ2c+ATν+λ1−λ2=0λ1⪰0,λ2⪰0
如果我們原問題的不等式約束條件轉化爲隱式約束,則有
minimizesubject tof0(x)={cTx∞∥x∥∞⪯1 otherwise Ax=b
然後對偶問題就可以轉化爲無約束優化問題
maximize−bTν−∥ATν+c∥1
4.3 轉化目標函數與約束函數
例子 4:還考慮上面提到的無約束優化問題 min∥Ax−b∥,我們可以把目標函數平方一下,得到
minimizesubject to(1/2)∥y∥2Ax−b=y
然後對偶問題就可以轉化爲
minimizesubject to(1/2)∥ν∥∗2+bTνATν=0
最後給我的博客打個廣告,歡迎光臨
https://glooow1024.github.io/
https://glooow.gitee.io/
前面的一些博客鏈接如下
凸優化專欄
凸優化學習筆記 1:Convex Sets
凸優化學習筆記 2:超平面分離定理
凸優化學習筆記 3:廣義不等式
凸優化學習筆記 4:Convex Function
凸優化學習筆記 5:保凸變換
凸優化學習筆記 6:共軛函數
凸優化學習筆記 7:擬凸函數 Quasiconvex Function
凸優化學習筆記 8:對數凸函數
凸優化學習筆記 9:廣義凸函數
凸優化學習筆記 10:凸優化問題
凸優化學習筆記 11:對偶原理