從梯度下降到Fista


前言:

  FISTA(A fast iterative shrinkage-thresholding algorithm)是一種快速的迭代閾值收縮算法(ISTA)。FISTA和ISTA都是基於梯度下降的思想,在迭代過程中進行了更為聰明(smarter)的選擇,從而達到更快的迭代速度。理論證明:FISTA和ISTA的迭代收斂速度分別為O(1/k2)和O(1/k)。

  本篇博文先從解決優化問題的傳統方法“梯度下降”開始,然后引入ISTA,最后再上升為FISTA。文章主要參考資料如下:
  [1] A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems。

  [2] Proximal Gradient Descent for L1 Regularization

  [3] 線性回歸及梯度下降

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------我是分割線-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

正文:

  考慮以下線性轉換問題:b = Ax + w  (1)

  例如在圖像模糊問題中,A為模糊模板(由未模糊圖像通過轉換而來),b為模糊圖像,w為噪聲。並且,A和b已知,x為待求的系數。

  求解該問題的的傳統方法為最小二乘法,思想很簡單粗暴:使得重構誤差||Ax-b||2最小。即:

  對f(x) = ||Ax-b||2求導,可得其導數為:f'(x) = 2AT(Ax-b)。對於該問題,令導數為零即可以取得最小值(函數f(x)為凸函數,其極小值即為最小值)。

  1)如果A為非奇異矩陣,即A可逆的話,那么可得該問題的精確解為x=A-1b。

  2)如果A為奇異矩陣,即A不可逆,則該問題沒有精確解。退而求其次,我們求一個近似解就好,||Ax-b||2<= ϵ。

  其中,||x||1為懲罰項,用以規范化參數x。該例子使用L1范數作為懲罰項,是希望x盡量稀疏(非零元素個數盡可能少),即b是A的一個稀疏表示。||Ax-b||2<=ϵ則為約束條件,即重構誤差最小。問題(3)也可以描述為:

  式子(4)即為一般稀疏表示的優化問題。希望重構誤差盡可能小,同時參數的個數盡可能少。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------我是分割線-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  

  考慮更為一般的情況,我們來討論梯度下降法。有無約束的優化問題如下:

  梯度下降法基於這樣的觀察:如果實值函數F(x)在點a處可微且有定義,那么函數F(x)在點a沿着梯度相反的方向 -∇F(a) 下降最快。

  基於此,我們假設f(x)連續可微(continuously differentiable)。如果存在一個足夠小的數值t>0使得x2 = x1 - t∇F(a),那么:

  F(x2) <= F(x1)

  梯度下降法的核心就是通過式子(6)找到序列{xk},使得F(xk) <= F(xk-1)。

  下圖詳細說明了梯度下降的過程:

  

  從上圖可以看出:初始點不同,獲得的最小值也不同。因為梯度下降法求解的是局部最小值,受初值的影響較大。如果函數f(x)為凸函數的話,則局部最小值亦為全局最小值。這時,初始點只對迭代速度有影響。

  再回頭看一下式子(6),我們使用步長tk和導數∇F(xk)來控制每一次迭代時x的變化量。再看一下上面那張圖,彩色繽紛那張。對於每一次迭代,我們當然希望F(x)的值降得越快越好,這樣我們就能更快速得獲得函數的最小值。因此,步長tk的選擇很重要。

  如果步長tk太小,則找到最小值的迭代次數非常多,即迭代速度非常慢,或者說迭代的收斂速度很慢;而步長太大的話,則會出現overshoot the minimum的現象,即不斷在最小值左右徘徊,跳來跳去的,如下圖所示:

  

  然而,tk最后還是作用在xk-1上,得到xk。因此,更為朴素的思想應該是:序列{xk}的個數盡可能小,即每一次迭代步伐盡可能大,函數值減少得盡可能多。那么就是關於序列{xk}的選擇了,如何更好的選擇每一個點xk,使得函數值更快的趨近其最小值。

  ISTA和FISTA求解最小化問題的思想就是基於梯度下降法的,它們的優化在於對{xk}的選擇上。這里我們不講證明,只講思想。想看證明的話,請看參考資料[1]

  下面來講ISTA(Iterative shrinkage-thresholding algorithm),即迭代閾值收縮算法。

  先從無約束的優化問題開始,即上面的式子(5):

  

  這時候,我們還假設了f(x)滿足Lipschitz連續條件,即f(x)的導數有下界,其最小下界稱為Lipschitz常數L(f)。這時,對於任意的L>=L(f),有:

     (7)

  基於此,在點xk附近可以把函數值近似為:

    (8)

  在梯度下降的每一步迭代中,將點xk-1處的近似函數取得最小值的點作為下一次迭代的起始點xk,這就是所謂的proximal regularization算法(其中,tk=1/L)。

      (9)

  上面的方法只適合解決非約束問題。而ISTA要解決的可是帶懲罰項的優化問題,引入范數規范化函數g(x)對參數x進行約束,如下:

                  (10)

  使用更為一般的二次近似模型來求解上述的優化問題,在點y,F(x) := f(x) + g(x)的二次近似函數為:

                (11)

  該函數的最小值表示為:

                     (12)

  忽略其常數項f(y)和∇F(y),結合式子(11)和(12),PL(y)可以寫成:

                (13)

  顯然,使用ISTA解決帶約束的優化問題時的基本迭代步驟為:

                                               (14)

  固定步長的ISTA的基本迭代步驟如下(步長t = 1/L(f)):

  

  然而,固定步長的ISTA的缺點是:Lipschitz常數L(f)不一定可知或者可計算。例如,L1范數約束的優化問題,其Lipschitz常數依賴於ATA的最大特征值。而對於大規模的問題,非常難計算。因此,使用以下帶回溯(backtracking)的ISTA:

  

  理論證明:ISTA的收斂速度為O(1/k);而FISTA的收斂速度為O(1/k2)。實際應用中,FISTA亦明顯快於ISTA。其證明過程還是看這篇文章:[1]

  FISTA與ISTA的區別在於迭代步驟中近似函數起始點y的選擇。ISTA使用前一次迭代求得的近似函數最小值點xk-1,而FISTA則使用另一種方法來計算y的位置。理論證明,其收斂速度能夠達到O(1/k2)。固定步長的FISTA的基本迭代步驟如下:

  

  當然,考慮到與ISTA同樣的問題:問題規模大的時候,決定步長的Lipschitz常數計算復雜。FISTA與ISTA一樣,亦有其回溯算法。在這個問題上,FISTA與ISTA並沒有區別,上面也說了,FISTA與ISTA的區別僅僅在於每一步迭代時近似函數起始點的選擇。更加簡明的說:FISTA用一種更為聰明的辦法選擇序列{xk},使得其基於梯度下降思想的迭代過程更加快速地趨近問題函數F(x)的最小值。

  帶回溯的FISTA算法基本迭代步驟如下:

  

  值得注意的是,在每一步迭代中,計算近似函數的起止點時,FISTA使用前兩次迭代過程的結果xk-1,xk-1,對其進行簡單的線性組合生成下一次迭代的近似函數起始點yk。方法很簡單,但效果卻非常好。當然,這也是有理論支持的。

  FISTA算法就介紹到這里啦!如果有什么講的不夠明白的地方,還希望各位看客指點。

  

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM