天天看點

06-等式限制優化算法06-等式限制優化算法一、簡介二、等式限制凸二次規劃三、等式限制的Newton方法四、求解KKT系統五、總結

06-等式限制優化算法

目錄

  • 一、簡介
  • 二、等式限制凸二次規劃
  • 三、等式限制的Newton方法
  • 四、求解KKT系統
  • 五、總結

凸優化從入門到放棄完整教程位址:https://www.cnblogs.com/nickchen121/p/14900036.html

一、簡介

注:這裡通過 KKT 條件對等式限制問題的一種引入

前面的系列我們介紹了Gradient Descent和Newton Method求解無限制的凸優化問題,并且給出了帶限制問題的可行解的存在條件——KKT條件。在這篇文章裡,我們考慮帶等式限制的凸優化問題:

(egin{align} min quad &f(x) \ mathrm{s.t.} quad & Ax=b end{align} ag{1})

其中 (f) 二階可導, (A in R^{p imes n}, mathrm{rank}(A) = p < n) 。根據KKT條件,我們知道 (x^* in dom(f)) 是優化問題(1)的最優解的充要條件是,存在 (

u^* in mathbb{R}^n) 滿足

(Ax^* = b quad

abla f(x^*) + A^T

u^* = 0 ag{2})

是以,求解優化問題(1)等價于求解 (n+p) 個變量組成的方程(2)。一般而言 $

abla f(x^) + A^T

u^ = 0$ 是非線性的,很難求出其解析解。但在下面的部分,我們将考慮 (f) 的二階近似,進而使得 (

abla f(x^*)) 線性化。

二、等式限制凸二次規劃

注:此處的引入非常重要,因為上面說到了我們将考慮 (f) 的二階近似 (hat f),而 (hat f) 就是一個二次函數

考慮 (f) 為二次函數的情況

(egin{aligned} min quad & f(x) = frac{1}{2}x^TPx + q^Tx + r \ mathrm{s.t.} quad & Ax=b end{aligned} ag{3})

根據凸性, (P in S_+^n, A in mathbb{R}^{p imes n}) 。注:該問題是擴充Newton Method處理等式限制問題的基礎。此時最優條件可以寫為

(Ax^* = b, quad Px^* + q + A^Tv^* = 0 \)

用矩陣表示為

(Big[egin{array}{cc} P & A^T \ A & 0 end{array} Big] Big[ egin{array}{c} x^* \

u^* end{array}Big] = Big[ egin{array}{c} -q \ b end{array}Big] ag{4})

這 (n+p) 個變量組成的線性方程組稱為KKT矩陣。如果KKT矩陣非奇異,存在唯一最優的原對偶對 ((x^*,

u^*)) ;如果KKT矩陣奇異,但是有解,任何解都構成最優對偶對 ((x^*,

u^*)) ;如果KKT矩陣無解,那麼二次優化問題或者無解或者無下界。

注:這裡用到了矩陣乘法 (AX = B) 的知識點,非奇異矩陣可以了解為可逆矩陣

下面指出KKT矩陣非奇異的一個充分條件:(P) 正定。

三、等式限制的Newton方法

前面指出,一般情況下(2)是非線性方程,很難有解析解。為了友善求解,我們對目标函數 (f) 在 (x) 處做二階近似。

(egin{align} min quad &f(x+v) = f(x) +

abla f(x)^Tv + frac{1}{2} v^T

abla^2 f(x) v \ mathrm{s.t.} quad & A(x+v)=b quad mathrm{or} quad Av=0 end{align} ag{5})

該問題的變量為 (v) ,且是關于 (v) 的等式限制凸二次規劃問題。我們假定KKT矩陣非奇異,在此基礎上定義 (x) 處的Newton下降方向 (Delta x_{nt}) 為凸二次問題(5)的解。根據(4),Newton下降方向 (Delta x_{nt}) 由以下KKT方程決定。注:KKT 方程寫成這樣主要就是參考公式 (4) 後,對公式 (4) 内的變量進行了一個替換

(Big[egin{array}{cc}

abla^2f(x) & A^T \ A & 0 end{array} Big] Big[ egin{array}{c} Delta x_{nt} \ w end{array}Big] = Big[ egin{array}{c} -

abla f(x) \ 0 end{array}Big] ag{6})

其中 (w) 是該二次問題的最優對偶變量(防止符号濫用,我們這裡沒有再使用 (

u) )。是以求解問題(5)等于求解方程組(6)。

首先我們說明這樣的一個下降方向 (Delta x_{nt}) 是滿足疊代算法要求的。首先,可以看出 (A Delta x_{nt}=0) 滿足等式限制;此外, (f) 沿 (Delta x_{nt}) 處的方向導數是小于0的,說明 (Delta x_{nt}) 是一個下降方向。

(frac{d}{dt} f(x+tDelta x_{nt}) Big|_{t=0} =

abla f(x)^T Delta x_{nt} = -Delta x_{nt}^T

abla^2 f(x) Delta x_{nt} < 0 \)

下面,我們給出等式限制的Newton Method算法的架構,可以看出其和無限制情況下完全一樣。

重複進行:

  1. 計算Newton方向(Delta x_{nt}) ,即求解KKT方程(6)
  2. 計算Newton減量 (lambda(x) =(Delta x_{nt}^T

    abla^2 f(x) Delta x_{nt})^{1/2})

  3. 停止準則:如果 (lambda^2/2 leq epsilon) ,則退出
  4. 直線搜尋:通過回溯直線法确定步長 (t)
  5. 改進: (x:= x+ t Delta x_{nt})

同樣地,Newton Method收斂也存在阻尼Newton階段和純Newton階段。阻尼Newton階段收斂較慢,但有界;純Newton階段收斂十分迅速。下面說明如何求解KKT系統得到 (Delta x_{nt}) 。

四、求解KKT系統

注:有興趣的可以看看書上的,這裡寫的有點簡單

這裡專門介紹求解線性方程組(6)是因為我們可以利用 (

abla^2 f(x)) 的正定性,加速計算。

(Big[egin{array}{cc}

abla^2f(x) & A^T \ A & 0 end{array} Big] Big[ egin{array}{c} Delta x_{nt} \ w end{array}Big] = Big[ egin{array}{c} -

abla f(x) \ 0 end{array}Big] \)

不失一般性,我們可以直接求解這個線性方程組。不利用矩陣的結構,計算量是 ((1/3)(n+p)^3) 次浮點運算。當 (n) 和 (p) 都不大時,這是一個合理的處理方法。

此外,我們可以采用消元法。假設 (

abla^2 f(x)) 正定,利用KKT方程組第一個方程 (

abla^2 f(x) Delta x_{nt} + A^T w = -

abla f(x) \)

可以解出 (Delta x_{nt})

(Delta x_{nt} = - {

abla^2 f(x)}^{-1} (

abla f(x) + A^T w) \)

然後将其帶入KKT方程組的第二個方程,可以解出 (w)

(w = (A {

abla^2 f(x)}^{-1}A^T)^{-1} (-A{

abla^2 f(x)}^{-1}

abla f(x)) \)

下面給出基于消元法的求解過程:

  1. 計算 ({

    abla^2 f(x)}^{-1} A^T) 和 ({

    abla^2 f(x)}^{-1}

    abla f(x))

  2. 計算Schur補 (S = -A {

    abla^2 f(x)}^{-1} A^T)

  3. 求解 $Sw = A{

    abla^2 f(x)}^{-1}

    abla f(x) $ 确定 (w)

  4. 求解 (

    abla^2 f(x) Delta x_{nt} = - A^Tw -

    abla f(x)) 确定 (Delta x_{nt})

采用合适的矩陣分解方法(如Cholesky因式分解),整體的浮點計算次數大概為:

(f +ps + p^2n + (1/3)p^3)

其中 (f) 是對 ({

abla^2 f(x)}) 進行Cholesky因式分解所需要的計算量。

五、總結

對于帶等式限制的凸優化問題,我們将目标函數進行了二次近似,根據KKT條件,确定了最優解的存在條件——KKT方程。然後通過求解KKT方程确定Newton Method需要的下降方向 (Delta x_{nt}) ,并且對快速求解KKT方程做了一定的分析。

參考文獻:Stephen Boyd, Lieven Vandenberghe: Convex Optimization
參考資料:https://www.zhihu.com/column/c_1046701775096188928