【數學理論】最優化問題:拉格朗日乘子法、KKT條件以及對偶問題

前言

最優化問題的求解方法在機器學習算法中是經常被用到的。下面是一個最優化問題的一個簡單概述:
求解f(x)f(x)最小值時的xx^*,即:
minxf(x) \mathop {\min }\limits_x f(x)
無約束時,可通過求導的方式解決。事實情況中會涉及不同約束條件(s.t.\text {s.t.}),即存在等式約束和不等式約束。如下:

  • 等式約束:hi(x)=0,i=1,2,3,,mh_{i}(x)=0 , i=1,2,3, \ldots, m
  • 不等式約束:gj(x)0,j=1,2,3,,ng_{j}(x) \leq 0 , j=1,2,3, \ldots, n
  • 同時存在等式約束和不等式約束:KKT(Karush-Kuhn-Tucker)條件

對於上面的問題該如何求解呢?

1 拉格朗日乘子法

通過拉格朗日函數將約束問題轉化爲無約束問題,在無約束問題中就方便求解了,這裏主要是將等式約束轉換爲拉格朗日函數。則有:
目標函數爲f(x)f(x),約束條件爲:
hk(x),k=1,2,3,,l h_{k}(x),k=1,2,3, \ldots, l
對該優化問題建模就有:
minf(x)s.t.hk(x)=0 \min f(x) \quad \text {s.t.} \quad h_{k}(x)=0
這時需要構建拉格朗日函數,將約束的問題轉換爲無約束的優化問題。
在這裏插入圖片描述
在上圖中可以看出,只有相切的時候,纔有可能是極值點,在相切的地方h(x)h(x)的梯度和f(x)f(x)的梯度應該在同一條直線上,即在極值點有:
f(x)=λh(x)\nabla f(x)=\lambda \nabla h(x)
根據上述分析,可將將原始優化問題表示爲:
L(x,λ)=f(x)+k=1lλkhk(x)L(x, \lambda)=f(x)+\sum_{k=1}^{l} \lambda_{k} h_{k}(x)
L(x,λ)L(x, \lambda)即拉格朗日函數,λk\lambda_{k}是拉格朗日乘子。拉格朗日函數對xx求偏導的結果爲0時,即爲最優解。

2 KKT條件

通過KKT條件將不等式約束轉換爲拉格朗日函數。優化問題中經常包含等式約束和不等式約束。對問題建模問題建模如下:
minf(x)s.t.hk(x)=0,k=1,2,,lgj(x)0,j=1,2,,,n \min f(x) \\ \text{s.t.} \quad h_{k}(x)=0 , k=1,2,\cdots, l\\ \quad \quad \quad g_{j}(x) \le 0, j = 1, 2, ,\cdots, n
對於等式約束,可以引入拉格朗日乘子進行轉換。對於不等式約束使用KKT條件構造拉格朗日乘子,構造結果如下:
L(x,λ,μ)=f(x)+k=1lλkhk(x)+j=1nμjgj(x)L(x, \lambda, \mu)=f(x)+\sum_{k=1}^{l} \lambda_{k} h_{k}(x)+\sum_{j=1}^{n} \mu_{j} g_{j}(x)
其中,λk\lambda_{k}是爲等式約束引入的拉格朗日乘子,μj\mu_{j}是爲不等式約束引入的鬆弛變量,也叫KKT乘子,需要注意的是KKT乘子是大於0的。這樣就將有約束的優化問題轉換爲無約束問題的優化了,通過求導即可求出極值點。
其中,求出的極值點xx^*滿足KKT條件:
{f(x)+kλkhk(x)+jμjgj(x)=0μj0μjgj(x)=0gj(x)0\left\{\begin{aligned} \nabla f\left(x^{*}\right)+\sum_{k} \lambda_{k} \nabla h_{k}\left(x^{*}\right)+\sum_{j} \mu_{j} \nabla g_{j}\left(x^{*}\right) &=0 \\ \mu_{j} & \geq 0 \\ \mu_{j} g_{j}\left(x^{*}\right) &=0 \\ g_{j}\left(x^{*}\right) & \leq 0 \end{aligned}\right.
注: f(x)f(x)g(x)g(x)結尾凸函數

3 對偶問題

有時候原優化問題很難求解,爲了解決問題,可將原優化問題進行等效轉化,然後再求解。原優化問題:
minf(x)s.t.hk(x)=0,k=1,2,,lgj(x)0,j=1,2,,,n \min f(x) \\ \text{s.t.} \quad h_{k}(x)=0 , k=1,2,\cdots, l\\ \quad \quad \quad g_{j}(x) \le 0, j = 1, 2, ,\cdots, n
其對應的拉格朗日函數:
L(x,λ,μ)=f(x)+i=1mαihi(x)+j=1nβjgj(x)L(x, \lambda, \mu)=f(x)+\sum_{i=1}^{m} \alpha_{i} h_{i}(x)+\sum_{j=1}^{n} \beta_{j} g_{j}(x)
對上式先最大化再最小化:
minx[maxα,β;βj0L(x,α,β)]=minx{f(x)+maxα,β;βj0[i=1mαihi(x)+j=1nβjgj(x)]}\min _{x}\left[\max _{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)\right]=\min _{x}\left\{f(x)+\max _{\alpha, \beta ; \beta_{j} \geq 0}\left[\sum_{i=1}^{m} \alpha_{i} h_{i}(x)+\sum_{j=1}^{n} \beta_{j} g_{j}(x)\right]\right\}
在滿足KKT條件的情況下,該式和原優化問題式等價的。下面來看看如何證明。

證明:
將上式分爲兩部分:

  1. 可行解區域內,原優化問題的約束條件都得到滿足。因爲hi(x)=0h_i(x)=0,所以不管α\alpha如何變化,必然有αhi(x)=0\alpha h_i(x)=0gj(x)0g_j(x)\le 0,且限定了βj>0\beta_j >0,則βjgi(x)\beta_jg_i(x)最大值爲0。綜上,在可行解區域內:
    maxα,β;βj0L(x,α,β)=f(x)+maxα,β;βj0[i=1mαihi(x)+j=1nβjgj(x)]=f(x)\max _{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)=f(x)+\max _{\alpha, \beta ; \beta_{j} \geq 0}\left[\sum_{i=1}^{m} \alpha_{i} h_{i}(x)+\sum_{j=1}^{n} \beta_{j} g_{j}(x)\right]=f(x)
  2. 可行解區域外,此時原優化問題的約束條件未滿足。若hi(x)0h_i(x)\ne 0,則最大化後爲++\infty。若gj(x)>0g_j(x) > 0,則最大化後也爲++\infty。所以在可行解區域外:
    maxα,β;βj0L(x,α,β)=+\max _{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)=+\infty

綜上兩個論域,f(x)f(x)在可行域內最小化,等於maxα,β;βj0L(x,α,β)\mathop{\max }\limits_{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)的最小化,而在可行域外,maxα,β;βj0L(x,α,β)\mathop{\max }\limits_{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)無極值。這樣當嘗試對其進行最小化時,也就相當於原優化問題了。

接着構建對偶問題

有如下定義:
θp(x)=maxα,β;βi0L(x,α,β)\theta_{p}(x)=\max _{\alpha, \beta; \beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)
則最小化primal(原始)問題與原問題有同樣的解:
minxθp(x)=minxmaxα,β;βi0L(x,α,β)\min _{x} \theta_{\mathrm{p}}(x)=\min _{x} \max _{\alpha, \beta;\beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)
定義dual(對偶)優化問題如下:
maxα,β;βi0θD(α,β)=maxα,β;βi0minxL(x,α,β)\max _{\alpha, \beta;\beta_{i} \geq 0} \theta_{\mathcal{D}}(\alpha, \beta)=\max _{\alpha, \beta;\beta_{i} \geq 0} \min _{x} \mathcal{L}(x, \alpha, \beta)
注: θp\theta_p是針對α\alphaβ\beta的優化,θD\theta_D是針對ww的優化。

根據上面的內容再做進一步定義:

p=minxθp(x)p^*=\mathop{\min}\limits_x \theta_p(x)爲primal最小化問題的值,
d=maxα,β;βi0θD(α,β)d^*=\mathop{\max}\limits_{\alpha,\beta;\beta_i\ge0}\theta_D(\alpha,\beta)爲Dual問題的值,

他們之間滿足:
d=maxα,β;βi0minxL(x,α,β)minxmaxα,β;βi0L(x,α,β)=pd^{*}=\max _{\alpha, \beta;\beta_{i} \geq 0} \min _{x} \mathcal{L}(x, \alpha, \beta) \leq \min _{x} \max _{\alpha, \beta;\beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)=p^{*}
只有在KKT條件成立時,纔有d=pd^*=p^*,此時,就可以通過Dual問題來求解primal問題。
對偶問題證明:
d=maxα,β;βi0minxL(x,α,β)minxmaxα,β;βi0L(x,α,β)=pd^{*}=\max _{\alpha, \beta;\beta_{i} \geq 0} \min _{x} \mathcal{L}(x, \alpha, \beta) \leq \min _{x} \max _{\alpha, \beta;\beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)=p^{*}

對任意(x,α,β)(x,\alpha,\beta),如下不等式一定成立:
θD(α,β)=minxL(x,α,β)L(x,α,β)maxα,β;βi0L(x,α,β)=θp(x)\theta_{\mathcal{D}}(\alpha, \beta)=\min _{x} \mathcal{L}(x, \alpha, \beta) \leq \mathcal{L}(x, \alpha, \beta) \leq \max _{\alpha, \beta; \beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)=\theta_{\mathrm{p}}(x)
即:
θD(α,β)θp(x)\theta_{\mathcal{D}}(\alpha, \beta) \leq \theta_{\mathrm{p}}(x)
所以:
maxα,β;βi0θD(α,β)minxθp(x)\max _{\alpha, \beta; \beta_{i} \geq 0} \theta_{\mathcal{D}}(\alpha, \beta) \leq \min _{x} \theta_{p}(x)
即可得到:
d=maxα,β;βi0minxL(x,α,β)minxmaxα,β;βi0L(x,α,β)=pd^{*}=\max _{\alpha, \beta; \beta_{i} \geq 0} \min _{x} \mathcal{L}(x, \alpha, \beta) \leq \min _{x} \max _{\alpha, \beta; \beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)=p^{*}

總結

上面一些內容也是從網絡習得,也存在一些不嚴謹的地方,如有錯誤還請批評指正。

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