前面章節中,針對 min f ( x ) + g ( A x ) \min f(x)+g(Ax) min f ( x ) + g ( A x ) 形式的優化問題,我們介紹瞭如 PG、dual PG、ALM、PPA 等方法。但是比如 PG 方法爲
x k + 1 = prox t h ( x k − t k ∇ g ( x k ) )
x_{k+1}=\text{prox}_{th}(x_k-t_k\nabla g(x_k))
x k + 1 = prox t h ( x k − t k ∇ g ( x k ) )
ALM 的第一步要解一個聯合優化問題
( x k + 1 , y k + 1 ) = arg min x , y L t ( x , y , z k )
(x^{k+1},y^{k+1}) = \arg\min_{x,y} L_t(x,y,z^k)
( x k + 1 , y k + 1 ) = arg x , y min L t ( x , y , z k )
他們都把 f , g f,g f , g 耦合在一起了。如果我們看原始問題 min f ( x ) + g ( A x ) \min f(x)+g(Ax) min f ( x ) + g ( A x ) 實際上就是要找 x ⋆ x^\star x ⋆ 使得 0 ∈ ∂ f ( x ⋆ ) + A T ∂ g ( x ⋆ ) 0\in\partial f(x^\star)+A^T\partial g(x^\star) 0 ∈ ∂ f ( x ⋆ ) + A T ∂ g ( x ⋆ ) ,這一節要介紹的 Douglas-Rachford splitting method 實際上就是要 decoupling。
1.Douglas-Rachford splitting Algorithm
針對如下優化問題,其中 f , g f,g f , g 都是閉凸函數
min f ( x ) + g ( x )
\min f(x)+g(x)
min f ( x ) + g ( x )
先給出 DR-splitting 方法的迭代方程
x k + 1 = prox f ( y k ) y k + 1 = y k + prox g ( 2 x k + 1 − y k ) − x k + 1
\begin{array}{l}
x_{k+1}=\operatorname{prox}_{f}\left(y_{k}\right) \\
y_{k+1}=y_{k}+\operatorname{prox}_{g}\left(2 x_{k+1}-y_{k}\right)-x_{k+1}
\end{array}
x k + 1 = p r o x f ( y k ) y k + 1 = y k + p r o x g ( 2 x k + 1 − y k ) − x k + 1
爲什麼叫做 splitting 呢?回憶 PPA 是不是需要求解 x + = prox t ( f + g ) ( x ) x^+ = \text{prox}_{t(f+g)}(x) x + = prox t ( f + g ) ( x ) ,而這裏則可以分開依次求 prox f \text{prox}_f prox f 和 prox g \text{prox}_g prox g ,所以被稱爲 splitting。這個迭代方程看起來沒有規律,那麼他能不能收斂呢?答案當然是可以的,x k x_k x k 最終會收斂到 0 ∈ ∂ f ( x ) + ∂ g ( x ) 0\in \partial f(x)+\partial g(x) 0 ∈ ∂ f ( x ) + ∂ g ( x ) ,這個證明放到後面,先來從別的方面認識一下這個方法。
首先 f , g f,g f , g 並沒有區分,因此可以交換兩者的位置,那麼迭代方程也可以寫爲
x k + 1 = prox g ( y k ) y k + 1 = y k + prox f ( 2 x k + 1 − y k ) − x k + 1
\begin{array}{l}
x_{k+1}=\operatorname{prox}_{g}\left(y_{k}\right) \\
y_{k+1}=y_{k}+\operatorname{prox}_{f}\left(2 x_{k+1}-y_{k}\right)-x_{k+1}
\end{array}
x k + 1 = p r o x g ( y k ) y k + 1 = y k + p r o x f ( 2 x k + 1 − y k ) − x k + 1
但需要注意的是這兩種不同的迭代方程產生的序列是不一樣的,也可能會影響收斂的速度,因此這個方法關於 f , g f,g f , g 是不對稱的。
如果把 x k + 1 x_{k+1} x k + 1 帶入到第二步,整個過程實際上可以用一個迭代方程表示
y k + 1 = F ( y ) F ( y ) = y + prox g ( 2 prox f ( y ) − y ) − prox f ( y )
y_{k+1} = F(y) \\
F(y)=y+\operatorname{prox}_{g}\left(2 \operatorname{prox}_{f}(y)-y\right)-\operatorname{prox}_{f}(y)
y k + 1 = F ( y ) F ( y ) = y + p r o x g ( 2 p r o x f ( y ) − y ) − p r o x f ( y )
這是個什麼式子呢?不動點迭代 (fixed-point iteration)!就是在找函數 F ( y ) F(y) F ( y ) 的不動點。這個函數 F ( y ) F(y) F ( y ) 是連續的嗎?是的,這是因爲上一節中我們證明了 prox h ( x ) \text{prox}_{h}(x) prox h ( x ) 滿足firmly nonexpansive(co-coercivite) 性質
( prox h ( x ) − prox h ( y ) ) T ( x − y ) ≥ ∥ prox h ( x ) − prox h ( y ) ∥ 2 2
\left(\operatorname{prox}_{h}(x)-\operatorname{prox}_{h}(y)\right)^{T}(x-y) \geq\left\|\operatorname{prox}_{h}(x)-\operatorname{prox}_{h}(y)\right\|_{2}^{2}
( p r o x h ( x ) − p r o x h ( y ) ) T ( x − y ) ≥ ∥ p r o x h ( x ) − p r o x h ( y ) ∥ 2 2
因此近似點算子是 Lipschitz continuous 的,所以 F ( y ) F(y) F ( y ) 也是連續的。那麼假如最終找到了不動點 y y y ,他有什麼性質呢?
y = F ( y ) ⟺ 0 ∈ ∂ f ( prox f ( y ) ) + ∂ g ( prox f ( y ) )
y=F(y) \\
\iff 0 \in \partial f\left(\operatorname{prox}_{f}(y)\right)+\partial g\left(\operatorname{prox}_{f}(y)\right)
y = F ( y ) ⟺ 0 ∈ ∂ f ( p r o x f ( y ) ) + ∂ g ( p r o x f ( y ) )
證明 :對於不動點 y = F ( y ) y=F(y) y = F ( y ) ,取 x = prox f ( y ) x=\text{prox}_f(y) x = prox f ( y ) ,我們有
x = prox f ( y ) , F ( y ) = y ⟺ x = prox f ( y ) , x = prox g ( 2 x − y ) ⟺ y − x ∈ ∂ f ( x ) , x − y ∈ ∂ g ( x )
\begin{aligned}x=\text{prox}_f(y),&\quad F(y)=y \\
\iff x=\text{prox}_f(y),&\quad x=\text{prox}_g(2x-y) \\\iff y-x\in \partial f(x),&\quad x-y\in\partial g(x)\end{aligned}
x = prox f ( y ) , ⟺ x = prox f ( y ) , ⟺ y − x ∈ ∂ f ( x ) , F ( y ) = y x = prox g ( 2 x − y ) x − y ∈ ∂ g ( x )
其中第一個等價性只需要把 x x x 帶入到 F ( y ) F(y) F ( y ) 中,由此我們就可以得到
0 = ( y − x ) + ( x − y ) ∈ ∂ f ( x ) + ∂ g ( x )
0=(y-x)+(x-y)\in\partial f(x)+\partial g(x)
0 = ( y − x ) + ( x − y ) ∈ ∂ f ( x ) + ∂ g ( x )
自然而然地我們證明了一開始提到的 x k x_{k} x k 的收斂性。
等價形式 :下面這部分則主要是對原始形式做了一些變量代換 ,使其看起來更簡潔,並沒有新的內容。首先交換 x , y x,y x , y 的迭代次序
y k + 1 = y k + prox g ( 2 x k − y k ) − x k x k + 1 = prox f ( y k + 1 )
\begin{array}{l}
y_{k+1}=y_{k}+\operatorname{prox}_{g}\left(2 x_{k}-y_{k}\right)-x_{k} \\
x_{k+1}=\operatorname{prox}_{f}\left(y_{k+1}\right)
\end{array}
y k + 1 = y k + p r o x g ( 2 x k − y k ) − x k x k + 1 = p r o x f ( y k + 1 )
引入新變量 u k + 1 = prox g ( 2 x k − y k ) , w k = x k − y k u_{k+1}=\text{prox}_g(2x_k-y_k),w_k=x_k-y_k u k + 1 = prox g ( 2 x k − y k ) , w k = x k − y k
u k + 1 = prox g ( x k + w k ) x k + 1 = prox f ( u k + 1 − w k ) w k + 1 = w k + x k + 1 − u k + 1
\begin{aligned}
u_{k+1} &=\operatorname{prox}_{g}\left(x_{k}+w_{k}\right) \\
x_{k+1} &=\operatorname{prox}_{f}\left(u_{k+1}-w_{k}\right) \\
w_{k+1} &=w_{k}+x_{k+1}-u_{k+1}
\end{aligned}
u k + 1 x k + 1 w k + 1 = p r o x g ( x k + w k ) = p r o x f ( u k + 1 − w k ) = w k + x k + 1 − u k + 1
放縮 :除此之外,我們還可以對原始問題做一個放縮變爲 min t f ( x ) + t g ( x ) \min tf(x)+tg(x) min t f ( x ) + t g ( x ) ,那麼迭代方程就變爲如下形式,並沒有本質的變化
u k + 1 = prox t g ( x k + w k ) x k + 1 = prox t f ( u k + 1 − w k ) w k + 1 = w k + x k + 1 − u k + 1
\begin{aligned}
u_{k+1} &=\operatorname{prox}_{tg}\left(x_{k}+w_{k}\right) \\
x_{k+1} &=\operatorname{prox}_{tf}\left(u_{k+1}-w_{k}\right) \\
w_{k+1} &=w_{k}+x_{k+1}-u_{k+1}
\end{aligned}
u k + 1 x k + 1 w k + 1 = p r o x t g ( x k + w k ) = p r o x t f ( u k + 1 − w k ) = w k + x k + 1 − u k + 1
鬆弛 :前面降到了實際上是在對 y y y 做不動點迭代,那麼我們可以改爲
y k + 1 = y k + ρ k ( F ( y k ) − y k )
y_{k+1}=y_{k}+\rho_{k}\left(F\left(y_{k}\right)-y_{k}\right)
y k + 1 = y k + ρ k ( F ( y k ) − y k )
如果 1 < ρ k < 2 1<\rho_k<2 1 < ρ k < 2 就是超鬆弛,如果 0 < ρ k < 1 0<\rho_k<1 0 < ρ k < 1 就是低鬆弛。這個時候迭代方程稍微複雜了一點點
u k + 1 = prox g ( x k + w k ) x k + 1 = prox f ( x k + ρ k ( u k + 1 − x k ) − w k ) w k + 1 = w k + x k + 1 − x k + ρ k ( x k − u k + 1 )
\begin{aligned}
u_{k+1} &=\operatorname{prox}_{g}\left(x_{k}+w_{k}\right) \\
x_{k+1} &=\operatorname{prox}_{f}\left(x_{k}+\rho_{k}\left(u_{k+1}-x_{k}\right)-w_{k}\right) \\
w_{k+1} &=w_{k}+x_{k+1}-x_{k}+\rho_{k}\left(x_{k}-u_{k+1}\right)
\end{aligned}
u k + 1 x k + 1 w k + 1 = p r o x g ( x k + w k ) = p r o x f ( x k + ρ k ( u k + 1 − x k ) − w k ) = w k + x k + 1 − x k + ρ k ( x k − u k + 1 )
共軛函數 :根據 Moreau decomposition prox g ( x ) + prox g ⋆ ( x ) = x \text{prox}_g(x)+\text{prox}_{g^\star}(x)=x prox g ( x ) + prox g ⋆ ( x ) = x ,如果 prox g \text{prox}_g prox g 比較難計算,我們就可以換到共軛函數上去計算
x k + 1 = prox f ( y k ) y k + 1 = x k + 1 − prox g ∗ ( 2 x k + 1 − y k )
\begin{array}{l}
x_{k+1}=\operatorname{prox}_{f}\left(y_{k}\right) \\
y_{k+1}=x_{k+1}-\operatorname{prox}_{g^{*}}\left(2 x_{k+1}-y_{k}\right)
\end{array}
x k + 1 = p r o x f ( y k ) y k + 1 = x k + 1 − p r o x g ∗ ( 2 x k + 1 − y k )
下面舉幾個例子,主要就是練習近似點算子的計算,因爲 DR-splitting 方法主要就是在計算 f , g f,g f , g 的近似點。
例子 1 :變量 X ∈ S n X\in S^n X ∈ S n ,參數 C ∈ S + n , γ > 0 C\in S_+^n,\gamma>0 C ∈ S + n , γ > 0
minimize tr ( C X ) − log det X + γ ∑ i > j ∣ X i j ∣
\text { minimize } \quad \operatorname{tr}(C X)-\log \operatorname{det} X+\gamma \sum_{i>j}\left|X_{i j}\right|
minimize t r ( C X ) − log d e t X + γ i > j ∑ ∣ X i j ∣
我們取 f ( X ) = tr ( C X ) − log det X , g ( X ) = γ ∑ i > j ∣ X i j ∣ f(X)=\operatorname{tr}(C X)-\log \operatorname{det} X,\quad g(X)=\gamma \sum_{i>j}\left|X_{i j}\right| f ( X ) = t r ( C X ) − log d e t X , g ( X ) = γ ∑ i > j ∣ X i j ∣
X = prox t f ( X ^ ) ⟺ C − X − 1 + ( 1 / t ) ( X − X ^ ) X=\text{prox}_{tf}(\hat{X}) \iff C-X^{-1}+(1/t)(X-\hat{X}) X = prox t f ( X ^ ) ⟺ C − X − 1 + ( 1 / t ) ( X − X ^ ) ,這個方程可以通過對 X ^ − t C \hat{X}-tC X ^ − t C 進行特徵值分解求解
X = prox t g ( X ^ ) X=\text{prox}_{tg}(\hat{X}) X = prox t g ( X ^ ) 可以通過軟閾值(soft-thresholding)求解
例子 2 :考慮等式約束的優化問題
min f ( x ) s.t. x ∈ V
\begin{aligned}
\min \quad& f(x)\\
\text{s.t.} \quad& x\in V
\end{aligned}
min s.t. f ( x ) x ∈ V
等價於 g = δ V g=\delta_V g = δ V
x k + 1 = prox g ( y k ) y k + 1 = y k + P V ( 2 x k + 1 − y k ) − x k + 1
\begin{array}{l}
x_{k+1}=\operatorname{prox}_{g}\left(y_{k}\right) \\
y_{k+1}=y_{k}+P_V\left(2 x_{k+1}-y_{k}\right)-x_{k+1}
\end{array}
x k + 1 = p r o x g ( y k ) y k + 1 = y k + P V ( 2 x k + 1 − y k ) − x k + 1
例子 3 :考慮這種複合形式 min f 1 ( x ) + f 2 ( A x ) \min f_1(x)+f_2(Ax) min f 1 ( x ) + f 2 ( A x ) ,可以引入等式約束
min f 1 ( x ) + f 2 ( y ) s.t. A x = y
\begin{aligned}
\min \quad& f_1(x)+f_2(y) \\
\text{s.t.} \quad& Ax=y
\end{aligned}
min s.t. f 1 ( x ) + f 2 ( y ) A x = y
取 f ( x 1 , x 2 ) = f 1 ( x 1 ) + f 2 ( x 2 ) f(x_1,x_2)=f_1(x_1)+f_2(x_2) f ( x 1 , x 2 ) = f 1 ( x 1 ) + f 2 ( x 2 ) ,他的近似點算子是可分的
prox t f ( x 1 , x 2 ) = ( prox t f 1 ( x 1 ) , prox t f 2 ( x 2 ) )
\operatorname{prox}_{t f}\left(x_{1}, x_{2}\right)=\left(\operatorname{prox}_{t f_{1}}\left(x_{1}\right), \operatorname{prox}_{t f_{2}}\left(x_{2}\right)\right)
p r o x t f ( x 1 , x 2 ) = ( p r o x t f 1 ( x 1 ) , p r o x t f 2 ( x 2 ) )
然後像例子 2 一樣,向超平面 [ A , − I ] [ x 1 , x 2 ] T = 0 [A,-I][x_1,x_2]^T=0 [ A , − I ] [ x 1 , x 2 ] T = 0 做個投影。
2. ADMM
交替方向乘子法(Alternating Direction Method of Multipliers)也是一個很重要而且很受歡迎的算法,下一節還會詳細講,這裏主要是看看他與 DR-splitting 的聯繫。
這裏還是先給出結論:DR-splitting 中取 ρ k = 1 \rho_k=1 ρ k = 1 ,應用在對偶問題上,就等價於原問題的 ADMM 算法 。我們先推導對偶問題上的 DR-splitting 迭代形式,然後再引出 ADMM 方法。
對可分離的凸優化問題
( P ) min f 1 ( x 1 ) + f 2 ( x 2 ) s.t. A 1 x 1 + A 2 x 2 = b ( D ) max − b T z − f 1 ∗ ( − A 1 T z ) − f 2 ∗ ( − A 2 T z )
\begin{aligned}
(P)\min \quad& f_1(x_1)+f_2(x_2) \\
\text{s.t.} \quad& A_1x_1+A_2x_2=b \\
(D)\max \quad& -b^{T} z-f_{1}^{*}\left(-A_{1}^{T} z\right)-f_{2}^{*}\left(-A_{2}^{T} z\right)
\end{aligned}
( P ) min s.t. ( D ) max f 1 ( x 1 ) + f 2 ( x 2 ) A 1 x 1 + A 2 x 2 = b − b T z − f 1 ∗ ( − A 1 T z ) − f 2 ∗ ( − A 2 T z )
取 g ( z ) = b T z + f 1 ⋆ ( − A 1 T z ) , f ( z ) = f 2 ⋆ ( − A 2 T z ) g(z)=b^{T} z+f_{1}^{\star}\left(-A_{1}^{T} z\right), f(z)=f_{2}^{\star}\left(-A_{2}^{T} z\right) g ( z ) = b T z + f 1 ⋆ ( − A 1 T z ) , f ( z ) = f 2 ⋆ ( − A 2 T z ) ,DR 方法爲
u + = prox t g ( z + w ) , z + = prox t f ( u + − w ) , w + = w + z + − u +
u^{+}=\operatorname{prox}_{t g}(z+w), \quad z^{+}=\operatorname{prox}_{t f}\left(u^{+}-w\right), \quad w^{+}=w+z^{+}-u^{+}
u + = p r o x t g ( z + w ) , z + = p r o x t f ( u + − w ) , w + = w + z + − u +
第一步 :他等價於計算
x ^ 1 = argmin x 1 ( f 1 ( x 1 ) + z T ( A 1 x 1 − b ) + t 2 ∥ A 1 x 1 − b + w / t ∥ 2 2 ) u + = z + w + t ( A 1 x ^ 1 − b )
\begin{aligned}
\hat{x}_{1} &=\underset{x_{1}}{\operatorname{argmin}}\left(f_{1}\left(x_{1}\right)+z^{T}\left(A_{1} x_{1}-b\right)+\frac{t}{2}\left\|A_{1} x_{1}-b+w / t\right\|_{2}^{2}\right) \\
u^{+} &=z+w+t\left(A_{1} \hat{x}_{1}-b\right)
\end{aligned}
x ^ 1 u + = x 1 a r g m i n ( f 1 ( x 1 ) + z T ( A 1 x 1 − b ) + 2 t ∥ A 1 x 1 − b + w / t ∥ 2 2 ) = z + w + t ( A 1 x ^ 1 − b )
這個證明很不直觀,上一節分析 PPA 與 ALM 的關係的時候,證明了一個很不直觀的結論:對 h ( z ) = g ⋆ ( z ) + f ⋆ ( − A T z ) h(z)=g^{\star}(z)+f^{\star}\left(-A^{T} z\right) h ( z ) = g ⋆ ( z ) + f ⋆ ( − A T z ) ,有
z + = prox t h ( z ) = z + t ( A x ^ − y ^ ) ( x ^ , y ^ ) = argmin x , y ( f ( x ) + g ( y ) + z T ( A x − y ) + t 2 ∥ A x − y ∥ 2 2 )
\begin{aligned}z^+&=\text{prox}_{th}(z) = z+t(A\hat{x}-\hat{y}) \\(\hat{x}, \hat{y})&=\underset{x, y}{\operatorname{argmin}}\left(f(x)+g(y)+z^{T}(A x-y)+\frac{t}{2}\|A x-y\|_{2}^{2}\right)\end{aligned}
z + ( x ^ , y ^ ) = prox t h ( z ) = z + t ( A x ^ − y ^ ) = x , y a r g m i n ( f ( x ) + g ( y ) + z T ( A x − y ) + 2 t ∥ A x − y ∥ 2 2 )
第二步 :與第一個式子是類似的,等價於
x ^ 2 = argmin x 2 ( f 2 ( x 2 ) + z T A 2 x 2 + t 2 ∥ A 1 x ^ 1 + A 2 x 2 − b ∥ 2 2 z + = z + t ( A 1 x ^ 1 + A 2 x ^ 2 − b )
\begin{array}{l}\hat{x}_{2}=\underset{x_{2}}{\operatorname{argmin}}\left(f_{2}\left(x_{2}\right)+z^{T} A_{2} x_{2}+\frac{t}{2}\left\|A_{1} \hat{x}_{1}+A_{2} x_{2}-b\right\|_{2}^{2}\right. \\z^{+}=z+t\left(A_{1} \hat{x}_{1}+A_{2} \hat{x}_{2}-b\right)\end{array}
x ^ 2 = x 2 a r g m i n ( f 2 ( x 2 ) + z T A 2 x 2 + 2 t ∥ A 1 x ^ 1 + A 2 x 2 − b ∥ 2 2 z + = z + t ( A 1 x ^ 1 + A 2 x ^ 2 − b )
第三步 :w + = t A 2 x ^ 2 w^+=tA_2\hat{x}_2 w + = t A 2 x ^ 2
現在我們就可以引出 ADMM 方法了,他包括三個步驟
x k + 1 , 1 = argmin x ~ 1 ( f 1 ( x ~ 1 ) + z k T A 1 x ~ 1 + t 2 ∥ A 1 x ~ 1 + A 2 x k , 2 − b ∥ 2 2 ) x k + 1 , 2 = argmin x ~ 2 ( f 2 ( x ~ 2 ) + z k T A 2 x ~ 2 + t 2 ∥ A 1 x k + 1 , 1 + A 2 x ~ 2 − b ∥ 2 2 ) z k + 1 = z k + t ( A 1 x k + 1 , 1 + A 2 x k + 1 , 2 − b )
\begin{aligned}x_{k+1,1}&=\underset{\tilde{x}_{1}}{\operatorname{argmin}}\left(f_{1}\left(\tilde{x}_{1}\right)+z_{k}^{T} A_{1} \tilde{x}_{1}+\frac{t}{2}\left\|A_{1} \tilde{x}_{1}+A_{2} x_{k, 2}-b\right\|_{2}^{2}\right) \\x_{k+1,2}&=\underset{\tilde{x}_{2}}{\operatorname{argmin}}\left(f_{2}\left(\tilde{x}_{2}\right)+z_{k}^{T} A_{2} \tilde{x}_{2}+\frac{t}{2}\left\|A_{1} x_{k+1,1}+A_{2} \tilde{x}_{2}-b\right\|_{2}^{2}\right) \\z_{k+1}&=z_{k}+t\left(A_{1} x_{k+1,1}+A_{2} x_{k+1,2}-b\right)\end{aligned}
x k + 1 , 1 x k + 1 , 2 z k + 1 = x ~ 1 a r g m i n ( f 1 ( x ~ 1 ) + z k T A 1 x ~ 1 + 2 t ∥ A 1 x ~ 1 + A 2 x k , 2 − b ∥ 2 2 ) = x ~ 2 a r g m i n ( f 2 ( x ~ 2 ) + z k T A 2 x ~ 2 + 2 t ∥ A 1 x k + 1 , 1 + A 2 x ~ 2 − b ∥ 2 2 ) = z k + t ( A 1 x k + 1 , 1 + A 2 x k + 1 , 2 − b )
前兩步分別對應了增廣拉格朗日函數的兩部分,分別對 x 1 , x 2 x_1,x_2 x 1 , x 2 進行優化。與原本的 ALM 算法相比,ALM 是每次對 ( x 1 , x 2 ) (x_1,x_2) ( x 1 , x 2 ) 進行聯合優化,即
( x k + 1 , 1 , x k + 1 , 2 ) = arg min x 1 , x 2 L t ( x 1 , x 2 , z k ) z k + 1 = z k + t ( A 1 x k + 1 , 1 + A 2 x k + 1 , 2 − b )
\begin{aligned}(x_{k+1,1},x_{k+1,2}) = \arg\min_{x_1,x_2} L_t(x_1,x_2,z_k) \\z_{k+1} = z_k + t\left(A_{1} x_{k+1,1}+A_{2} x_{k+1,2}-b\right)\end{aligned}
( x k + 1 , 1 , x k + 1 , 2 ) = arg x 1 , x 2 min L t ( x 1 , x 2 , z k ) z k + 1 = z k + t ( A 1 x k + 1 , 1 + A 2 x k + 1 , 2 − b )
另外我們前面還講到了 dual PG 方法跟 ALM 也很像,也是增廣拉格朗日函數先對 x 1 x_1 x 1 優化再對 x 2 x_2 x 2 優化,但注意他跟 ADMM 不同的地方在於:前者對 x 1 x_1 x 1 優化的時候不包含後面的二次正則項,而 ADMM 則包含,寫出來對比一下就知道了
( d u a l P G ) x ^ = argmin x ( f ( x ) + z T A x ) y ^ = argmin y ( g ( y ) − z T y + t 2 ∥ A x ^ − y ∥ 2 2 ) ( A D M M ) x k + 1 , 1 = argmin x ~ 1 ( f 1 ( x ~ 1 ) + z k T A 1 x ~ 1 + t 2 ∥ A 1 x ~ 1 + A 2 x k , 2 − b ∥ 2 2 ) x k + 1 , 2 = argmin x ~ 2 ( f 2 ( x ~ 2 ) + z k T A 2 x ~ 2 + t 2 ∥ A 1 x k + 1 , 1 + A 2 x ~ 2 − b ∥ 2 2 )
\begin{aligned}
(dual\ PG)\hat{x} &=\underset{x}{\operatorname{argmin}}\left(f(x)+z^{T} A x\right) \\
\hat{y} &=\underset{y}{\operatorname{argmin}}\left(g(y)-z^{T} y+\frac{t}{2}\|A \hat{x}-y\|_{2}^{2}\right) \\
(ADMM) x_{k+1,1}&=\underset{\tilde{x}_{1}}{\operatorname{argmin}}\left(f_{1}\left(\tilde{x}_{1}\right)+z_{k}^{T} A_{1} \tilde{x}_{1}+\frac{t}{2}\left\|A_{1} \tilde{x}_{1}+A_{2} x_{k, 2}-b\right\|_{2}^{2}\right) \\
x_{k+1,2}&=\underset{\tilde{x}_{2}}{\operatorname{argmin}}\left(f_{2}\left(\tilde{x}_{2}\right)+z_{k}^{T} A_{2} \tilde{x}_{2}+\frac{t}{2}\left\|A_{1} x_{k+1,1}+A_{2} \tilde{x}_{2}-b\right\|_{2}^{2}\right)
\end{aligned}
( d u a l P G ) x ^ y ^ ( A D M M ) x k + 1 , 1 x k + 1 , 2 = x a r g m i n ( f ( x ) + z T A x ) = y a r g m i n ( g ( y ) − z T y + 2 t ∥ A x ^ − y ∥ 2 2 ) = x ~ 1 a r g m i n ( f 1 ( x ~ 1 ) + z k T A 1 x ~ 1 + 2 t ∥ A 1 x ~ 1 + A 2 x k , 2 − b ∥ 2 2 ) = x ~ 2 a r g m i n ( f 2 ( x ~ 2 ) + z k T A 2 x ~ 2 + 2 t ∥ A 1 x k + 1 , 1 + A 2 x ~ 2 − b ∥ 2 2 )
3. 收斂性分析
DR 方法可以看成是一個不動點迭代,因此要證明收斂性,我們需要證明以下兩個結論:
y k y_k y k 收斂到 F ( y ) F(y) F ( y ) 的不動點 y ⋆ y^\star y ⋆
x k + 1 = prox f ( y k ) x_{k+1}=\text{prox}_f(y_k) x k + 1 = prox f ( y k ) 收斂到 x ⋆ = prox f ( y ⋆ ) x^\star=\text{prox}_f(y^\star) x ⋆ = prox f ( y ⋆ )
在證明收斂性之前,需要先定義兩個函數
F ( y ) = y + prox g ( 2 prox f ( y ) − y ) − prox f ( y ) G ( y ) = y − F ( y ) = prox f ( y ) − prox g ( 2 prox f ( y ) − y )
\begin{aligned}F(y) &=y+\operatorname{prox}_{g}\left(2 \operatorname{prox}_{f}(y)-y\right)-\operatorname{prox}_{f}(y) \\G(y) &=y-F(y) \\&=\operatorname{prox}_{f}(y)-\operatorname{prox}_{g}\left(2 \operatorname{prox}_{f}(y)-y\right)\end{aligned}
F ( y ) G ( y ) = y + p r o x g ( 2 p r o x f ( y ) − y ) − p r o x f ( y ) = y − F ( y ) = p r o x f ( y ) − p r o x g ( 2 p r o x f ( y ) − y )
需要用到的是這兩個函數的 firmly nonexpansive(co-coercive with parameter 1) 的性質
( F ( y ) − F ( y ^ ) ) T ( y − y ^ ) ≥ ∥ F ( y ) − F ( y ^ ) ∥ 2 2 for all y , y ^ ( G ( y ) − G ( y ^ ) ) T ( y − y ^ ) ≥ ∥ G ( y ) − G ( y ^ ) ∥ 2 2
\begin{aligned}(F(y)-F(\hat{y}))^{T}(y-\hat{y}) &\geq\|F(y)-F(\hat{y})\|_{2}^{2} \quad \text { for all } y, \hat{y} \\(G(y)-G(\hat{y}))^{T}(y-\hat{y}) &\geq\|G(y)-G(\hat{y})\|_{2}^{2}\end{aligned}
( F ( y ) − F ( y ^ ) ) T ( y − y ^ ) ( G ( y ) − G ( y ^ ) ) T ( y − y ^ ) ≥ ∥ F ( y ) − F ( y ^ ) ∥ 2 2 for all y , y ^ ≥ ∥ G ( y ) − G ( y ^ ) ∥ 2 2
證明 :令 x = prox f ( y ) , x ^ = prox f ( y ^ ) x=\text{prox}_f(y),\hat{x}=\text{prox}_f(\hat{y}) x = prox f ( y ) , x ^ = prox f ( y ^ ) ,v = prox g ( 2 x − y ) , v ^ = prox g ( 2 x ^ − y ^ ) v=\operatorname{prox}_{g}(2 x-y), \quad \hat{v}=\operatorname{prox}_{g}(2 \hat{x}-\hat{y}) v = p r o x g ( 2 x − y ) , v ^ = p r o x g ( 2 x ^ − y ^ )
根據 F ( y ) = y + v − x , F ( y ^ ) = y ^ + v ^ − x ^ F(y)=y+v-x,F(\hat{y})=\hat{y}+\hat{v}-\hat{x} F ( y ) = y + v − x , F ( y ^ ) = y ^ + v ^ − x ^ 有
( F ( y ) − F ( y ^ ) ) T ( y − y ^ ) ≥ ( y + v − x − y ^ − v ^ + x ^ ) T ( y − y ^ ) − ( x − x ^ ) T ( y − y ^ ) + ∥ x − x ^ ∥ 2 2 = ( v − v ^ ) T ( y − y ^ ) + ∥ y − x − y ^ + x ^ ∥ 2 2 = ( v − v ^ ) T ( 2 x − y − 2 x ^ + y ^ ) − ∥ v − v ^ ∥ 2 2 + ∥ F ( y ) − F ( y ^ ) ∥ 2 2 ≥ ∥ F ( y ) − F ( y ^ ) ∥ 2 2
\begin{array}{l}(F(y)-F(\hat{y}))^{T}(y-\hat{y}) \\\quad \geq \quad(y+v-x-\hat{y}-\hat{v}+\hat{x})^{T}(y-\hat{y})-(x-\hat{x})^{T}(y-\hat{y})+\|x-\hat{x}\|_{2}^{2} \\\quad=(v-\hat{v})^{T}(y-\hat{y})+\|y-x-\hat{y}+\hat{x}\|_{2}^{2} \\\quad=(v-\hat{v})^{T}(2 x-y-2 \hat{x}+\hat{y})-\|v-\hat{v}\|_{2}^{2}+\|F(y)-F(\hat{y})\|_{2}^{2} \\\quad \geq\|F(y)-F(\hat{y})\|_{2}^{2}\end{array}
( F ( y ) − F ( y ^ ) ) T ( y − y ^ ) ≥ ( y + v − x − y ^ − v ^ + x ^ ) T ( y − y ^ ) − ( x − x ^ ) T ( y − y ^ ) + ∥ x − x ^ ∥ 2 2 = ( v − v ^ ) T ( y − y ^ ) + ∥ y − x − y ^ + x ^ ∥ 2 2 = ( v − v ^ ) T ( 2 x − y − 2 x ^ + y ^ ) − ∥ v − v ^ ∥ 2 2 + ∥ F ( y ) − F ( y ^ ) ∥ 2 2 ≥ ∥ F ( y ) − F ( y ^ ) ∥ 2 2
其中用到了 prox \text{prox} prox 算子的firm nonexpansiveness 性質
( x − x ^ ) T ( y − y ^ ) ≥ ∥ x − x ^ ∥ 2 2 , ( 2 x − y − 2 x ^ + y ^ ) T ( v − v ^ ) ≥ ∥ v − v ^ ∥ 2 2
(x-\hat{x})^{T}(y-\hat{y}) \geq\|x-\hat{x}\|_{2}^{2}, \quad(2 x-y-2 \hat{x}+\hat{y})^{T}(v-\hat{v}) \geq\|v-\hat{v}\|_{2}^{2}
( x − x ^ ) T ( y − y ^ ) ≥ ∥ x − x ^ ∥ 2 2 , ( 2 x − y − 2 x ^ + y ^ ) T ( v − v ^ ) ≥ ∥ v − v ^ ∥ 2 2
證畢。
然後我們就可以根據以下的不動點迭代方程證明前面提到的收斂性
y k + 1 = ( 1 − ρ k ) y k + ρ k F ( y k ) = y k − ρ k G ( y k )
\begin{aligned}y_{k+1} &=\left(1-\rho_{k}\right) y_{k}+\rho_{k} F\left(y_{k}\right) \\&=y_{k}-\rho_{k} G\left(y_{k}\right)\end{aligned}
y k + 1 = ( 1 − ρ k ) y k + ρ k F ( y k ) = y k − ρ k G ( y k )
其中需要假設 F F F 的不動點存在,且滿足 0 ∈ ∂ f ( x ) + ∂ g ( x ) 0\in\partial f(x)+\partial g(x) 0 ∈ ∂ f ( x ) + ∂ g ( x ) ,以及鬆弛變量 ρ k ∈ [ ρ min , ρ max ] , 0 < ρ min < ρ max < 2 \rho_k\in [\rho_{\min},\rho_{\max}],0<\rho_{\min}<\rho_{\max}<2 ρ k ∈ [ ρ min , ρ max ] , 0 < ρ min < ρ max < 2 。
證明 :設 y ⋆ y^\star y ⋆ 爲 F ( y ) F(y) F ( y ) 的不動點(也即 G ( y ) G(y) G ( y ) 的零點),考慮第 k k k 步迭代
∥ y + − y ⋆ ∥ 2 2 − ∥ y − y ⋆ ∥ 2 2 = 2 ( y + − y ) T ( y − y ⋆ ) + ∥ y + − y ∥ 2 2 = − 2 ρ G ( y ) T ( y − y ⋆ ) + ρ 2 ∥ G ( y ) ∥ 2 2 ≤ − ρ ( 2 − ρ ) ∥ G ( y ) ) ∥ 2 2 ≤ − M ∥ G ( y ) ) ∥ 2 2
\begin{aligned}\left\|y^{+}-y^{\star}\right\|_{2}^{2}-\left\|y-y^{\star}\right\|_{2}^{2} &=2\left(y^{+}-y\right)^{T}\left(y-y^{\star}\right)+\left\|y^{+}-y\right\|_{2}^{2} \\&=-2 \rho G(y)^{T}\left(y-y^{\star}\right)+\rho^{2}\|G(y)\|_{2}^{2} \\&\leq-\rho(2-\rho) \| G(y)) \|_{2}^{2} \\&\leq-M \| G(y)) \|_{2}^{2}\end{aligned}
∥ ∥ y + − y ⋆ ∥ ∥ 2 2 − ∥ y − y ⋆ ∥ 2 2 = 2 ( y + − y ) T ( y − y ⋆ ) + ∥ ∥ y + − y ∥ ∥ 2 2 = − 2 ρ G ( y ) T ( y − y ⋆ ) + ρ 2 ∥ G ( y ) ∥ 2 2 ≤ − ρ ( 2 − ρ ) ∥ G ( y ) ) ∥ 2 2 ≤ − M ∥ G ( y ) ) ∥ 2 2
其中 M = ρ min ( 2 − ρ max ) M=\rho_{\min}(2-\rho_{\max}) M = ρ min ( 2 − ρ max ) 。上式表明
M ∑ k = 0 ∞ ∥ G ( y k ) ∥ 2 2 ≤ ∥ y 0 − y ⋆ ∥ 2 2 , ∥ G ( y ) ∥ 2 → 0
M \sum_{k=0}^{\infty}\left\|G\left(y_{k}\right)\right\|_{2}^{2} \leq\left\|y_{0}-y^{\star}\right\|_{2}^{2}, \quad \| G(y)\|_2\to 0
M k = 0 ∑ ∞ ∥ G ( y k ) ∥ 2 2 ≤ ∥ y 0 − y ⋆ ∥ 2 2 , ∥ G ( y ) ∥ 2 → 0
還可以得到 ∥ y k − y ⋆ ∥ 2 \| y_k-y^\star\|_2 ∥ y k − y ⋆ ∥ 2 是單調不增的,因此 y k y_k y k 有界。
由於 ∥ y k − y ⋆ ∥ 2 \| y_k-y^\star\|_2 ∥ y k − y ⋆ ∥ 2 單調不增,故極限 lim k → ∞ ∥ y k − y ⋆ ∥ 2 \lim_{k\to \infty} \| y_k-y^\star\|_2 lim k → ∞ ∥ y k − y ⋆ ∥ 2 存在;又由於 y k y_k y k 有界,故存在收斂子序列。
記 y ˉ k \bar{y}_k y ˉ k 爲一個收斂子序列,收斂值爲 y ˉ \bar{y} y ˉ ,根據 G G G 的連續性有 0 = lim k → ∞ G ( y ˉ k ) = G ( y ˉ ) 0=\lim _{k \rightarrow \infty} G\left(\bar{y}_{k}\right)=G(\bar{y}) 0 = lim k → ∞ G ( y ˉ k ) = G ( y ˉ ) ,因此 y ˉ \bar{y} y ˉ 是 G G G 的l零點,且極限 lim k → ∞ ∥ y k − y ˉ ∥ 2 \lim_{k\to \infty} \| y_k-\bar{y}\|_2 lim k → ∞ ∥ y k − y ˉ ∥ 2 存在。
接着需要證明唯一性,假設 u ˉ , v ˉ \bar{u},\bar{v} u ˉ , v ˉ 是兩個不同的極限點,收斂極限 lim k → ∞ ∥ y k − u ˉ ∥ 2 , lim k → ∞ ∥ y k − v ˉ ∥ 2 \lim_{k\to \infty} \| y_k-\bar{u}\|_2,\lim_{k\to \infty} \| y_k-\bar{v}\|_2 lim k → ∞ ∥ y k − u ˉ ∥ 2 , lim k → ∞ ∥ y k − v ˉ ∥ 2 存在,因此
∥ u ˉ − v ˉ ∥ 2 = lim k → ∞ ∥ y k − u ˉ ∥ 2 = lim k → ∞ ∥ y k − v ˉ ∥ 2 = 0
\|\bar{u}-\bar{v}\|_{2}=\lim _{k \rightarrow \infty}\left\|y_{k}-\bar{u}\right\|_{2}=\lim _{k \rightarrow \infty}\left\|y_{k}-\bar{v}\right\|_{2}=0
∥ u ˉ − v ˉ ∥ 2 = k → ∞ lim ∥ y k − u ˉ ∥ 2 = k → ∞ lim ∥ y k − v ˉ ∥ 2 = 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:對偶原理
凸優化學習筆記 12:KKT條件
凸優化學習筆記 13:KKT條件 & 互補性條件 & 強對偶性
凸優化學習筆記 14:SDP Representablity
最優化方法 15:梯度方法
最優化方法 16:次梯度
最優化方法 17:次梯度下降法
最優化方法 18:近似點算子 Proximal Mapping
最優化方法 19:近似梯度下降
最優化方法 20:對偶近似點梯度下降法
最優化方法 21:加速近似梯度下降方法
最優化方法 22:近似點算法 PPA
最優化方法 23:算子分裂法 & ADMM
最優化方法 24:ADMM