Mirror descent: 統一框架下的first order methods
在之前的文章(Fenchel-Lengendre Duality觀點下的優化演算法們(I):前言)中,我提及了我想先相對深入地探討一下mirror descent這一類演算法。Mirror descent這個名字這幾年也是越來越響亮了,然而日常交流中我發現可能很多同學還是沒有很好的理解它。
Mirror descent第一次引起人們的廣泛注意是在20年前,Aharon Ben-Tal,Tamar Margalit和Arkadi Nemirovski三人在一篇paper中引用了該方法,解決了在一個幾百萬維的單純形(unit simplex )上的凸優化問題,並應用在了 positron emission tomography (PET,也就是題圖大家在醫院中常看到的那個儀器所用的技術)相關的三維醫學圖像重構問題(是一個最大似然問題,Maximum Likelihood Estimate)。
The Ordered Subsets Mirror Descent Optimization Method with Applications to Tomography Read More: http://epubs.siam.org/doi/abs/10.1137/S1052623499354564他們的成功之處便是拓展了其實是在歐式距離上定義的projected gradient descent method,利用了一種更general的proximal gradient descent method的觀點,也就是重新定義了這種gradient descent演算法中的「距離」。具體來說,在上述問題中,即所謂的simplex setup,如果選取的「距離」為entropy function(熵函數),這類proximal algorithm在做prox step的時候(也就是投影,projection)在simplex上基本上是免費(free)的。因此,他們成功給出了如上所述的一個大規模凸優化的演算法解決方案。
因此,從這個意義上我們知道proximal algorithm是一種比傳統的gradient descent方法更general(適用於任何合理的"非歐式(non Euclidean)"距離)的觀點,本文我們主要就探究這一點。當然,對於mirror descent演算法還可以有很多其它的理解方式,如在Fenchel-Duality觀點系列的下一篇我會討論澤園的觀點:gradient descent演算法可以看作從primal space出發的某種upper bounding,mirror descent演算法可以看作從primal-dual space出發的某種lower bounding,也請期待。本文主要的參考資料是Ben-Tal和Nemirovski的如下講義第五章,和本校Prof. Robert Freund的「地下講義」。
Lectures on Modern Convex Optimization我們本文考慮的general問題為:
其中, 是我們的目標函數,它可以被分解為兩個函數之和: 是convex且光滑(比如Lipschitz連續)的, 是convex但可以不光滑,不過至少有一些方便計算的性質。另外, 是有限維的向量空間。
具體的例子比如說Lasso Regression, , , ,我們知道 是處處可導的,而 雖然不可導但是也是很容易處理的。或者 也可以表達任意的凸集約束,即取 且 。當然這個時候我們希望凸集 的結構不太複雜(比如ball,box或unit simplex)。
一些必要的預備知識。
首先是範數(norm)。我們用 表示向量空間 上的範數,那麼我們在對偶空間 所取的一點 的範數定義是: ,這也是 的對偶範數。
容易驗證我們有「範數的對偶的對偶是它自己」。 且我們指出以下兩條性質:
- (H?lders inequality)
給定一個strongly convex的函數 我們定義Bregman divergence function為 。
我們指出, 便是mirror descent algorithm更general的關鍵,即是用來刻畫各種非歐距離的要素。在proximal algorithm的框架里,它也被稱作prox(imal) function/prox(imal) term等等,因為它便是用來衡量兩個點 的接近(proximity)程度的。 有很多性質,如它也是strongly convex的(given ),它不對稱, 等等,更深層次的探討可以見我之前的一個回答:
如何理解Bregman divergence?本節最後,我們指出mirror descent演算法分析里需要用的一個核心引理(「三點」性質),它最早由Paul Tseng發現:
引理1(Three-Point Property):對任意凸函數 和Bregman function ,對給定一點 定義 ,則我們有
熟悉projected gradient演算法分析的同學可能已經注意到了, 其實相當於做了一步projection(實際上,在mirror descent的分析里這一步叫做prox(imal) step)。而這個性質即表明了任給兩點 ,將 看成 演算法迭代1次之後的結果,他們所導致的目標函數上的差可以用 三個點之間的距離lower bound住,這也是保證mirror descent演算法能收斂的關鍵,我們可以由此導出mirror descent每一步都在降低 的值。這個引理的證明只需要利用convexity和 的性質,留作練習。
本節我們假設 可微,且導數Lipschitz連續: ,並證明mirror descent的收斂速度定理。那麼我們General 的prox gradient algorithm可以表示如下:即給定初始值 ,
注意到上式其實有很多對min來說的常數項(只是為了分析方便),等價於
本節我們證明收斂性定理:
定理1(光滑mirror descent收斂速度): .
顯然,在以上定理的基礎上,如果我們考慮 ,即「半徑」為 的範圍內,令最優解 就有 也就是說,為了達到 的絕對誤差,我們需要 步。
我們的證明還需要一個額外的引理,對導數L-Lipshitz連續的函數 我們有如下的二次函數上界:
引理2:
證明基於微積分基本定理,留作練習。
現在我們就有了足夠的預備知識,可以證明本節主要定理了(非常短)!具體來說,我們進行如下推導:
也就是說我們得到了 ,也就是說演算法每步的效果大概是 ,如果我們在這個式子中取 則得到 ,即mirror descent每步確實遞減了 ,再對這個式子兩邊對t求和,經過裂項相消就能得到定理1。
思考題1:對比gradient descent的收斂性分析,你發現有什麼相似的地方么,對應的區別在哪裡?(提示:考慮gradient descent中的 )以及,如果我們取 我們的演算法會是怎麼樣的?(提示:gradient descent?!)
思考題2:L不知道的情況如何繼續用這個演算法,這裡我們假設理論分析也找不到一個合適的L的上界。(提示:利用引理2,然後考慮line search方法)
本節我們討論前一節mirror descent演算法的variant: 不再可微(即問題nonsmooth)的情況(當然,仍然是convex的),我們引入次梯度(subgradient)的記號 ,即 當且僅當 然後我們假設 Lipschitz連續:
這個時候,我們的prox subgradient演算法如下:給定初始值 我們需要定義一列步長(stepsizes) ,並每步進行如下迭代:
其中 ,也就是說我們利用次梯度代替梯度來進行迭代。另外,我們的步長選取也和光滑情況不太一樣。
我們指出,subgradient method不能保證演算法每步一定能減小 的值!收斂速度定理如下。
定理2(非光滑mirror descent收斂速度):
也就是說,如果我們同樣考慮 ,且 ,那麼為了達到絕對誤差 我們如果選取 ,我們需要至少 步,和定理1一比較我們就知道subgradient method確實是比graident method(即光滑情況下)要慢了1個次方的。當然,這是為了估計步數,我們指出一般來說一個更合理的步長選擇應該是
思考題3:在 的情況下化簡定理2。
思考題4:證明定理2。(提示:利用下面兩個引理,考慮 的一個下界,其中 ,即 和 的一階線性近似的差的下界)
引理3:
引理4:
本節我們考慮如何對光滑情況下的mirror descent進行加速。注意,不光滑情況的subgradient method一般來說沒有加速的辦法。我們的給出accelerated prox subgradient演算法如下:給定初始值 我們需要定義一列步長(stepsizes) 並每步進行如下迭代:
- 定義
這種Nesterov式的加速方法,其幾何意義是不容易理解的,我這裡不多做贅述。我們指出,一種常用的步長為:
可以想像的是,加速方法的證明比前兩節會更複雜一些(雖然說如果你理解的足夠好,完整的proof篇幅也是不長的),我們這裡就步介紹了,只介紹主要結果(假設步長已經如上選取好了)。
定理3(光滑情況下加速演算法的收斂速度):
也就是說,同樣考慮 ,我們知道絕對誤差 達到 的步數是 ,比smooth情況下naive的mirror descent又快了1個次方!也就是說,實際上在光滑情況下你永遠應該考慮使用加速版本(除非你要用coordinate descent,沒有對應的加速方法,不過本文我們不討論這點了)
思考題5:思考加速演算法的幾何意義。這點其實歷史上已經有很多著名的討論了。
思考題6:證明定理3。(其實你仍然只需要利用Bregman function和convex function的性質,引理1,引理2,但需要你有更好的理解:))
本節我們討論mirror descent演算法的實際應用:在unit simplex上的凸優化問題,也就是讓題頭那篇paper名聲大噪的原因。此時,我們的 可以是任意可微凸函數,不過本節為了討論方便起見我們認為它是光滑可微的。也就是說,我們本節考慮 是 的indicator function,即在 的時候取值0,不然取值 且我們考慮所謂的simplex/entropy setup,讓我們的Bregman function由entropy function組成:
也就是說,prox step實際上就是要計算 我們指出,這一步實際上是free的,即有closed form如下:
思考題7:證明上述迭代公式成立。(提示:entropy的引入很關鍵,strongly convex的unit simplex約束優化問題)
也就是說,這一步實際上相當於只是作normalization!而且實際上,由於都是exponents,實際update的時候可能只需要update很少的一部分component(這裡涉及到numerical details,略過),另外,這一步也可以再被並行化!
於是,我們看到了mirror descent的一個具體應用,當然,為了更好的理解其優勢我們需要作如下的思考。
思考題8:考慮對同樣問題的projected gradient descent的演算法複雜度。(提示:主要比較projection的複雜度)
思考題9:給出對同樣問題的accelerated mirror descent演算法。
本文的最後,我們指出一些extensions。首先是first order methods在online learning中的自然應用,比如我們的問題改變定義,即我們在每個時間 都有一個adversary選擇一個 並report它在 的(sub)gradient給我們。那麼顯然我們的演算法可以直接用來進行"learning",我們的regret是 (注意這裡我們假設了目標 是固定的),即我們的演算法可以某種程度上minimize這個regret。
當然,更有意思的地方在於比如 是IID(獨立同分布)地從一個分布中被選取,mirror descent仍然能保證 的regret,with high probability(熟悉bandit的同學應該知道UCB,Thompson sampling這些演算法都有這樣的regret bound)。這其實是利用了mirror descent也可以用來處理stochastic optimization問題的性質,不過我之前也說了先只針對deterministic的優化問題/演算法所以這方面也不深入討論了。
對mirror descent有興趣的同學可以參閱題頭和其它一些相關的參考文獻。之後我應該會介紹澤園的觀點,在duality觀點下比較gradient descent和mirror descent,以及他們的coupling->Nestrovs accelerated gradient descent,敬請期待!
Mirror descent and nonlinear projected subgradient methods for convex optimizationApproximation accuracy, gradient methods, and error bound for structured convex optimizationIntroduction to Online Optimization - Sébastien Bubeck
推薦閱讀:
※Advanced SystemCare—一款當前最流行的電腦優化軟
※關於網站優化進行的好與不好究竟有哪些不同?
※【優化演算法】一文搞懂RMSProp優化演算法