理解ADMM, ALM和Split Bergman
引言
在圖像去模糊,低光照圖像增強和去噪等任務時,我們都會引入各種先驗或約束項來緩解這些t逆問題(inverse problems)的病態性(ill-posedness)。比如,我們會用, 等約束圖像的光滑性,或者梯度的稀疏性。在貝葉斯框架,如最大後驗估計(MAP), 變分法(variational method),求解這些問題都需要相關的優化算法。在很多文章中都會說,我用了啥方法求解,對於我這個優化理論的小白來說,實在是一頭霧水。我本來打算系統地學習優化理論,但是我發現,等自己什麼都瞭解一下再去做科研黃花菜都涼了。且不說都學不學得會,就算學會了也不一定都能用到。於是我決定不再做一個“倉鼠”, 總是收藏各種資源。我要把在解決具體問題過程中遇到的相關算法喫透。
以下介紹ADMM, ALF和Split Bergman,算作一個知識輸出。一方面有利於自己組織知識結構,另一方面也希望可以給同行做點微不足道的貢獻。
Alternating Direction Method of Multipliers
ADMM: 交替方向乘子法(Alternating Direction Method of Multipliers,ADMM)是求解約束問題的最優化算法框架, 通常解決的是等式優化問題。主要思路就是“各個擊破,分而治之”,將一個大的全局的問題分解爲幾個子問題(sub-problem):原始變量、分裂變量以及對偶變量(即拉格朗日系數,Lagrange coefficient)三種變量的交替更新^ 1。從其命名我們可以知道,“交替”是一個很重要的策略。這個算法是每個子問題就是求解一個分量,與此同時固定其他分量。整個優化就是一個大循環,大循環中有幾個小循環,這些小循環就是子問題的優化過程^ 2
Augmented Lagrangian Multipliers
ALM: 在談增廣拉格朗日函數(Augmented Lagrangian Multipliers, ALM)前,我們要講Lagrangian Multipliers,這就是高數課本中的那個拉格朗日(他來了!他來了!)函數,那時我們要求解一個目標函數的極值,另外要有一個限制條件。
我們那個時候是怎麼做的呢?我們會構造一個新的函數。值得注意的是就是上面所說的拉格朗日系數,也就是對偶變量。然後我們會分別對求偏導: 。
對於ALM, 我們要關注的是"Augmented",所謂“增廣”,大白話就是加了東西嘛?在LF基礎上, ALM加了對約束增加一個懲罰項(這是一個二次懲罰項)。這篇博文中講,之所以加上這麼一個懲罰項,是因爲LF還不夠“凸”(越“凸”越強,我笑了!)。引入懲罰就是把約束問題變成非約束問題^ 3(”非約束“和”凸“是等價的概念嘛?如果你有相關理論解釋請留言吧!)。在另外一篇博文中分析了爲什麼加的是懲罰項是二次的原因:
至於爲什麼加的是二次懲罰項,主要因爲我們求解的問題有個前提:針對於等式約束或者小於等於型不等式約束,恰能用二次懲罰項建模
在某乎中有人評論道:
Lagrange Multiplier可以看成是linear penalty,Augmented Lagrangian可以看成是linear+quadratic penalty。Augmented Lagrangian等式約束更容易被滿足,即Augmented Lagrangian的收斂性更強,收斂速度也會快一些。
總而言之,針對於上面舉的一個LM例子,最終的ALF表示爲:
針對於這個ALF函數,ADMM的流程如下:
- 求解(同時固定),
- 求解(同時固定),
- 求解(上面已經得到了),
小結
我們針對ALM和ADMM做一個小小的總結:
- LF收斂困難,但是函數幾個方向是可以分解的。
- 爲提高收斂性,ALF在LF基礎上引入二次懲罰項,但二次懲罰項破壞了LF的可分解特性
- ADMM就是爲了解耦同時又可以保證ALF的收斂性而被提出(只是衆多方法中的一種,歡迎補充)。因此有人總結道:ADMM=Augmented Lagrangian+Alternating Direction Minimization, 即ALF早就有了,ADMM只是一種交替優化的一種方式^ 4。
Splitt Bregman
Splitt Bregman: 在約束圖像梯度方面,比更稀疏,但也更難以求解。分裂Bregman迭代算法是爲了求解正則約束的優化問題的(這篇文章談到ADMM也可以求解正則約束問題)。本質上與ADMM一樣, 並無區別,這篇博文談到分裂Bregman只是縮放版的ADMM(截至本文完成時,我只是一個門外漢,先蹲個坑,以後會比較兩者區別)。
最後貼一個S. Boyd的論文中ADMM的Matlab代碼網頁,這裏有許多examples.
這裏還有一篇文章對S. Boyd的2011年的文章《Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers》翻譯和總結,推薦閱讀:
[1] http://joegaotao.github.io/cn/2014/02/admm