凸優化學習筆記 12:KKT條件

上一小節講了拉格朗日函數,可以把原始問題轉化爲對偶問題,並且對偶問題是凸的。我們還得到了弱對偶性和強對偶性的概念,並且提到了 Slater Condition 保證凸問題的強對偶性成立,並且給出了一些幾何的直觀解釋。那麼在這一節,我們將引出著名的 KKT 條件,它給出了最優解需要滿足的必要條件,是求解優化問題最優解的一個重要方式。

有需要的話可以參考前面兩節內容
凸優化學習筆記 10:凸優化問題
凸優化學習筆記 11:對偶原理

1. KKT 條件

我們首先回顧一下拉格朗日函數,考慮下面的優化問題
 minimize f0(x) subject to fi(x)0,i=1,,mhi(x)=0,i=1,,p \begin{aligned} \text { minimize } \quad& f_{0}(x)\\ \text { subject to } \quad& f_{i}(x) \leq 0, \quad i=1, \ldots, m\\ &h_{i}(x)=0, \quad i=1, \ldots, p \end{aligned}

那麼他的拉格朗日函數就是
L(x,λ,ν)=f0(x)+λTf(x)+νTh(x) L(x,\lambda,\nu)=f_0(x)+\lambda^Tf(x)+\nu^Th(x)

首先,我們看對偶函數
g(λ,ν)=infxD(f0(x)+λTf(x)+νTh(x)) g(\lambda,\nu)=\inf_{x\in\mathcal{D}}\left(f_0(x)+\lambda^Tf(x)+\nu^Th(x)\right)

對偶問題實際上就是
d=supλ,νg(λ,ν)=supλ,νinfxL(x,λ,ν) d^\star = \sup_{\lambda,\nu}g(\lambda,\nu)=\sup_{\lambda,\nu}\inf_x L(x,\lambda,\nu)

然後我們再看原問題,由於 λ0,f(x)0\lambda\succeq0,f(x)\preceq0,我們有
f0(x)=supλ,νL(x,λ,ν) f_0(x)=\sup_{\lambda,\nu}L(x,\lambda,\nu)

原問題的最優解實際上就是
p=infxf0(x)=infxsupλ,νL(x,λ,ν) p^\star=\inf_x f_0(x)= \inf_x \sup_{\lambda,\nu}L(x,\lambda,\nu)

弱對偶性 pdp^\star \ge d^\star 實際上說的是什麼呢?就是 max-min 不等式
infxsupλ,νL(x,λ,ν)supλ,νinfxL(x,λ,ν) \inf_x \sup_{\lambda,\nu}L(x,\lambda,\nu) \ge \sup_{\lambda,\nu}\inf_x L(x,\lambda,\nu)

強對偶性說的又是什麼呢?就是上面能夠取等號
infxsupλ,νL(x,λ,ν)=supλ,νinfxL(x,λ,ν)=L(x,λ,ν) \inf_x \sup_{\lambda,\nu}L(x,\lambda,\nu) = \sup_{\lambda,\nu}\inf_x L(x,\lambda,\nu) = L({x}^\star,{\lambda}^\star,{\nu}^\star)
實際上 x,λ,ν{x}^\star,{\lambda}^\star,{\nu}^\star 就是拉格朗日函數的鞍點!!!(數學家們真實太聰明瞭!!!妙啊!!!)那麼也就是說強對偶性成立等價於拉格朗日函數存在鞍點(在定義域內)

好,如果存在鞍點的話,我們怎麼求解呢?還是看上面取等的式子
f0(x)=g(λ,ν)=infx(f0(x)+λTf(x)+νTh(x))f0(x)+λTf(x)+νTh(x)f0(x) \begin{aligned} f_0({x}^\star) = g(\lambda^\star,\nu^\star) &= \inf_x \left( f_0(x)+\lambda^{\star T}f(x)+\nu^{\star T}h(x) \right) \\ & \le f_0(x^\star)+\lambda^{\star T}f(x^\star)+\nu^{\star T}h(x^\star) \\ & \le f_0(x^\star) \end{aligned}

這兩個不等號必須要取到等號,而第一個不等號取等條件應爲
x(f0(x)+λTf(x)+νTh(x))=0 \nabla_x \left( f_0(x)+\lambda^{\star T}f(x)+\nu^{\star T}h(x) \right) =0

第二個不等號取等條件爲
λifi(x)=0,i \lambda^\star_i f_i(x^\star)=0,\forall i

同時,由於 x,λ,ν{x}^\star,{\lambda}^\star,{\nu}^\star 還必須位於定義域內,需要滿足約束條件,因此上面的幾個條件共同構成了 KKT 條件。

KKT 條件

  1. 原始約束 fi(x)0,i=1,...,m,hi(x)=0,i=1,...,pf_i(x)\le0,i=1,...,m, \quad h_i(x)=0,i=1,...,p
  2. 對偶約束 λ0\lambda\succeq0
  3. 互補性條件(complementary slackness) λifi(x)=0,i=1,...,m\lambda_i f_i(x)=0,i=1,...,m
  4. 梯度條件

f0(x)+i=1mλifi(x)+i=1pνihi(x)=0 \nabla f_{0}(x)+\sum_{i=1}^{m} \lambda_{i} \nabla f_{i}(x)+\sum_{i=1}^{p} \nu_{i} \nabla h_{i}(x)=0

2. KKT 條件與凸問題

Remarks(重要結論)

  1. 前面推導沒有任何凸函數的假設,因此不論是否爲凸問題,如果滿足強對偶性,那麼最優解一定滿足 KKT 條件
  2. 但是反過來不一定成立,也即 KKT 條件的解不一定是最優解,因爲如果 L(x,λ,ν)L(x,\lambda^\star,\nu^\star) 不是凸的,那麼 xL=0\nabla_x L=0 並不能保證 g(λ,ν)=infxL(x,λ,ν)L(x,λ,ν)g(\lambda^\star,\nu^\star)=\inf_x L(x,\lambda^\star,\nu^\star)\ne L(x^\star,\lambda^\star,\nu^\star),也即不能保證 x,λ,ν{x}^\star,{\lambda}^\star,{\nu}^\star 就是鞍點。

但是如果我們假設原問題爲凸問題的話,那麼 L(x,λ,ν)L(x,\lambda^\star,\nu^\star) 就是一個凸函數,由梯度條件 xL=0\nabla_x L=0 我們就能得到 g(λ,ν)=L(x,λ,ν)=infxL(x,λ,ν)g(\lambda^\star,\nu^\star)=L(x^\star,\lambda^\star,\nu^\star)=\inf_x L(x,\lambda^\star,\nu^\star),另一方面根據互補性條件我們有此時 f0(x)=L(x,λ,ν)f_0(x^\star)=L(x^\star,\lambda^\star,\nu^\star),因此我們可以得到一個結論

Remarks(重要結論)

  1. 考慮原問題爲凸的,那麼若 KKT 條件有解 x~,λ~,ν~\tilde{x},\tilde{\lambda},\tilde{\nu},則原問題一定滿足強對偶性,且他們就對應原問題和對偶問題的最優解。
  2. 但是需要注意的是,KKT 條件可能無解!此時就意味着原問題不滿足強對偶性!

假如我們考慮上一節提到的 SCQ 條件,如果凸優化問題滿足 SCQ 條件,則意味着強對偶性成立,則此時有結論

Remarks(重要結論)

如果 SCQ 滿足,那麼 xx 爲最優解當且僅當存在 λ,ν\lambda,\nu 滿足 KKT 條件!

例子 1:等式約束的二次優化問題 PS+nP\in S_+^n
 minimize (1/2)xTPx+qTx+r subject to Ax=b \begin{aligned} \text { minimize } \quad& (1/2)x^TPx+q^Tx+r \\ \text { subject to } \quad& Ax=b \end{aligned}

那麼經過簡單計算就可以得到 KKT 條件爲
[PATA0][xν]=[qb] \left[\begin{array}{cc} P & A^{T} \\ A & 0 \end{array}\right]\left[\begin{array}{l} x^{\star} \\ \nu^{\star} \end{array}\right]=\left[\begin{array}{c} -q \\ b \end{array}\right]

例子 2:注水問題
 minimize i=1nlog(αi+xi) subject to x0,1Tx=1 \begin{aligned} &\text { minimize } \quad-\sum_{i=1}^{n} \log \left(\alpha_{i}+x_{i}\right)\\ &\text { subject to } \quad x \succeq 0, \quad \mathbf{1}^{T} x=1 \end{aligned}

根據上面的結論,xx 是最優解當且僅當 x0,1Tx=1x\succeq0,\mathbf{1}^{T} x=1,且存在 λ,ν\lambda,\nu 滿足
λ0,λixi=0,1xi+αi+λi=ν \lambda \succeq 0, \quad \lambda_{i} x_{i}=0, \quad \frac{1}{x_{i}+\alpha_{i}}+\lambda_{i}=\nu

根據互補性條件 λixi=0\lambda_i x_i=0 分情況討論可以得到

  • 如果 ν<1/αi\nu<1/\alpha_iλi=0,xi=1/ναi\lambda_i=0,x_i=1/\nu-\alpha_i
  • 如果 ν1/αi\nu\ge1/\alpha_iλi=ν1/αi,xi=0\lambda_i=\nu-1/\alpha_i,x_i=0

整理就可以得到 1Tx=imax{0,1/ναi}\mathbf{1}^{T} x=\sum_i\max\{0,1/\nu-\alpha_i\},這個式子怎麼理解呢?就像向一個池子裏注水一樣

在這裏插入圖片描述

3. 擾動與敏感性分析

現在我們再回到原始問題
 minimize f0(x) subject to fi(x)0,i=1,,mhi(x)=0,i=1,,p \begin{aligned} \text { minimize } \quad& f_{0}(x)\\ \text { subject to } \quad& f_{i}(x) \leq 0, \quad i=1, \ldots, m\\ &h_{i}(x)=0, \quad i=1, \ldots, p \end{aligned}

我們引入了對偶函數 g(λ,ν)g(\lambda,\nu),那這兩個參數 λ,ν\lambda,\nu 有什麼含義嗎?假如我們把原問題放鬆一下
 minimize f0(x) subject to fi(x)ui,i=1,,mhi(x)=vi,i=1,,p \begin{aligned} \text { minimize } \quad& f_{0}(x)\\ \text { subject to } \quad& f_{i}(x) \leq u_i, \quad i=1, \ldots, m\\ &h_{i}(x)=v_i, \quad i=1, \ldots, p \end{aligned}

記最優解爲 p(u,v)=minf0(x)p^\star(u,v)=\min f_0(x),現在對偶問題變成了
maxg(λ,ν)uTλvTνs.t.λ0 \begin{aligned} \max \quad& g(\lambda,\nu)-u^T\lambda -v^T\nu\\ \text{s.t.} \quad& \lambda\succeq0 \end{aligned}

假如說原始對偶問題的最優解爲 λ,ν\lambda^\star,\nu^\star,鬆弛後的對偶問題最優解爲 λ~,ν~\tilde{\lambda},\tilde{\nu},那麼根據弱對偶性原理,有
p(u,v)g(λ~,ν~)uTλ~vTν~g(λ,ν)uTλvTν=p(0,0)uTλvTν \begin{aligned} p^\star(u,v) &\ge g(\tilde\lambda,\tilde\nu)-u^T\tilde\lambda -v^T\tilde\nu \\ &\ge g(\lambda^\star,\nu^\star)-u^{T}\lambda^\star -v^{T}\nu^\star \\ &= p^\star(0,0) - u^{T}\lambda^\star -v^{T}\nu^\star \end{aligned}

這像不像關於 u,vu,v 的一階近似?太像了!實際上,我們有
λi=p(0,0)ui,νi=p(0,0)vi \lambda_{i}^{\star}=-\frac{\partial p^{\star}(0,0)}{\partial u_{i}}, \quad \nu_{i}^{\star}=-\frac{\partial p^{\star}(0,0)}{\partial v_{i}}
在這裏插入圖片描述

4. Reformulation

前面將凸優化問題的時候,我們提到了Reformulation的幾個方法來簡化原始問題(參考凸優化學習筆記 10:凸優化問題),比如消去等式約束,添加等式約束,添加鬆弛變量,epigraph等等。現在當我們學習了對偶問題,再來重新看一下這些方法。

4.1 引入等式約束

例子 1:考慮無約束優化問題 minf(Ax+b)\min f(Ax+b),他的對偶問題跟原問題是一樣的。如果我們引入等式約束,原問題和對偶問題變爲
minimizef0(y)subject toAx+by=0minimizebTνf0(ν)subject toATν=0 \begin{aligned} \text{minimize} \quad& f_{0}(y) \quad \\ \text{subject to} \quad& A x+b-y=0 \end{aligned} \quad\qquad \begin{aligned} \text{minimize} \quad& b^{T} \nu-f_{0}^{*}(\nu) \\ \text{subject to} \quad& A^{T} \nu=0 \end{aligned}

例子 2:考慮無約束優化 minAxb\min \Vert Ax-b\Vert,類似的引入等式約束後,對偶問題變爲
minimizebTνsubject toATν=0,ν1 \begin{aligned} \text{minimize} \quad& b^{T} \nu \\ \text{subject to} \quad& A^{T} \nu=0,\quad \Vert\nu\Vert_*\le1 \end{aligned}

4.2 顯示約束與隱式約束的相互轉化

例子 3:考慮原問題如下,可以看出來對偶問題非常複雜

minimizecTxsubject toAx=b1x1maximizebTν1Tλ11Tλ2subject toc+ATν+λ1λ2=0λ10,λ20 \begin{aligned} \text{minimize} \quad& c^{T} x \\ \text{subject to} \quad& A x=b \\ \quad& -1 \preceq x \preceq 1 \end{aligned} \qquad \begin{aligned} \text{maximize} \quad& -b^{T} \nu-\mathbf{1}^{T} \lambda_{1}-\mathbf{1}^{T} \lambda_{2} \\ \text{subject to} \quad& c+A^{T} \nu+\lambda_{1}-\lambda_{2}=0 \\ \quad& \lambda_{1} \succeq 0, \quad \lambda_{2} \succeq 0 \end{aligned}

如果我們原問題的不等式約束條件轉化爲隱式約束,則有
minimizef0(x)={cTxx1 otherwise subject toAx=b \begin{aligned} \text{minimize} \quad& f_{0}(x)=\left\{\begin{array}{ll}c^{T} x & \Vert x\Vert_\infty \preceq 1 \\ \infty & \text { otherwise }\end{array}\right. \\ \text{subject to} \quad& A x=b \end{aligned}

然後對偶問題就可以轉化爲無約束優化問題
maximizebTνATν+c1 \text{maximize} -b^T\nu-\Vert A^T\nu +c\Vert_1

4.3 轉化目標函數與約束函數

例子 4:還考慮上面提到的無約束優化問題 minAxb\min \Vert Ax-b\Vert,我們可以把目標函數平方一下,得到
minimize(1/2)y2subject toAxb=y \begin{aligned} \text{minimize} \quad& (1/2)\Vert y\Vert^2 \\ \text{subject to} \quad& Ax-b=y \end{aligned}

然後對偶問題就可以轉化爲
minimize(1/2)ν2+bTνsubject toATν=0 \begin{aligned} \text{minimize} \quad& (1/2)\Vert \nu\Vert_*^2+ b^T\nu \\ \text{subject to} \quad& A^T\nu=0 \end{aligned}

最後給我的博客打個廣告,歡迎光臨
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:對偶原理

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