ADMM——交替方向乘子法

  ADMM(Alternating Direction Method of Multipliers,交替方向乘子法)是一種優化算法,主要用於解決分佈式、大規模和非光滑的凸優化問題。ADMM通過將原始問題分解爲多個易於處理的子問題來實現優化。它結合了兩種經典優化方法:梯度下降法(gradient descent)和拉格朗日乘子法(Lagrangian multiplier method)。

ADMM

算法

  ADMM考慮如下形式的凸優化問題:

$\min\limits_{x,z} f(x) + g(z)$
$ s.t.\,\, Ax + Bz = c $

  其中$x$和$z$是優化變量,$f(x)$和$g(z)$是凸函數,$A,B,c$是已知的係數矩陣與向量。爲了解決這個問題,首先引入拉格朗日乘子$y\in R$,構造增廣拉格朗日函數$L(x, z, y)$:

$\displaystyle L(x, z, y) = f(x) + g(z) + y^T(Ax + Bz - c) + \frac{\rho}{2} ||Ax + Bz - c||^2$

  其中$\rho > 0$是一個超參數,定義算法迭代步伐。相較於普通拉格朗日函數,增廣拉格朗日函數多了二範數約束,能更好地處理約束條件並加速算法的收斂。

  ADMM算法通過以下迭代步驟進行優化直到收斂:

  1、更新$x$:$x^{k+1} = \text{arg}\min\limits_x L(x, z^k, y^k)$
  2、更新$z$:$z^{k+1} = \text{arg}\min\limits_z L(x^{k+1}, z, y^k)$
  3、更新$y$:$y^{k+1} = y^k + \rho(Ax^{k+1} + Bz^{k+1} - c)$

  收斂條件如:$\|x^{k+1}-x^{k}\|$與$\|z^{k+1}-z^{k}\|$小於一定閾值。

爲什麼可以優化到最小值

  ADMM的收斂性可以從兩個方面來理解:

  可分離性:在ADMM的迭代過程中,$x$和$z$的優化問題是分開進行的。這意味着我們可以獨立地解決$f(x)$和$g(z)$的優化問題。在每一步迭代中,我們都在嘗試最小化原始問題的目標函數。

  拉格朗日乘子法的收斂性:拉格朗日乘子法的目標是找到滿足原始問題約束條件的最優解。在ADMM的迭代過程中,通過調整拉格朗日乘子$y$來強化原始問題的約束條件,從而保證算法在全局範圍內收斂到滿足約束條件的可行解。

  綜上所述,ADMM算法可以在全局範圍內收斂到原始優化問題的最小值,因爲它能夠在每次迭代中分別優化目標函數,並逐漸強化約束條件。

  直觀理解:如果滿足約束條件,迭代的前兩步總是會使$f(x)$與$g(z)$變小,而第3步只是更新$y$,因此總體的迭代過程是單向讓原始優化問題$f(x)+g(z)$變小的。而一旦約束不滿足,第3步對$y$的更新就是約束對的前兩步更新的反抗。如果前兩步更新使約束不滿足,那麼在第3步$y$就會更新,使約束在下一次迭代的前兩步產生相應的梯度。

  參考: https://blog.csdn.net/weixin_44655342/article/details/121899501

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