泛統計理論初探——探討梯度下降學習率優化技巧

數據挖掘-梯度下降學習率優化簡介

學習率優化方法簡介
   本文準備介紹的主要內容是在梯度下降方法中,對於學習速率這個超參數的優化思路。在之前的三篇文章裏,分別介紹了對梯度本身的優化的常見策略和技巧,但是沒有對學習速率的優化進行介紹,因此本文來介紹幾種常見的學習速率優化技巧。
   在最早的批量梯度下降或者隨機梯度下降方法中,學習速率這個參數是一個常數,比如0.1,但是在神經網絡的發展過程中,經常會出現一些問題,常見的就是陷入局部最優值和梯度下降速度特別慢很難收斂情況。因爲傳統的梯度下降方法的學習速率是一個較小的常數,那麼勢必會導致在很多時候梯度下降緩慢,並且當週圍地形平坦的時候,陷入一個局部最優值而無法繼續下降。與此同時,如果學習率一直很大會造成震盪的情況,即在最優點附近來回震盪並且無法下降到局部最優點。所以後來研究者們又找到了一些函數對學習速率進行優化,常見的比如指數衰減、餘弦衰減、逆時衰減等優化技巧。下面我們來對各個衰減技巧進行簡介。
   逆時衰減公式如下,當前學習率是和當前狀態時間t呈反比關係的,也就是t越大即迭代的次數越多,就會導致下一次學習率的變小。其中β是衰減率,顯然β越大的情況會使得學習率更爲快速地下降。一般看實際問題爲準,如果需要迭代多次的可以將β設置的小一些,比如0.01,如果不需要多次迭代則可以將β設置的大一些。
在這裏插入圖片描述
   指數衰減公式如下,β定義爲衰減率,和上述的逆時衰減的含義一樣,值得注意的是β的值是小於1的常數,那麼顯然當前學習率是和當前狀態時間t呈反比關係的,也就是迭代的次數越多,就會導致下一次學習率的變小。如果β的值設置的較小的話,則學習率就會衰減的較快,對於β值的設置也是以實際問題爲準,一般可以先設置0.5,然後查看下降的速率和最後的收斂情況是否滿足使用者要求,如果下降的偏快或者偏慢就可以調整β值再進行下降。
在這裏插入圖片描述
   自然指數衰減的公式如下,β依舊定義爲衰減率,和指數衰減的思路相似,也是使用一個指數函數來進行學習率的衰減,但是自然指數衰減是以自然數e爲底的函數,t也就是迭代的次數越多會使得整體的學習速率變得越慢,顯然β設置的較大的時候,學習率衰減的非常快。一般β的值可以設置爲0.1,隨着實際問題進行調整,自然指數衰減的β參數如果設置的有問題會導致整體的梯度下降速度變得極其緩慢,所以β不建議設置的很大。
在這裏插入圖片描述
   餘弦衰減的公式如下所示,公式通過利用餘弦cos函數在某個區間的單調 遞減特性來進行學習率的計算,其中需要注意的是t爲當前狀態迭代次數,而T則是總的迭代次數,也就是說該公式需要提前指定總的迭代次數,比如500次,纔可以進行學習率的計算。顯然利用餘弦公式的特性不會陷入那種學習速率越來越慢的情況,可能在某種程度上會比前三種方法的效果稍微好一些。
在這裏插入圖片描述
   其實在上述的優化技巧之後,還有另一種優化思路,也就是週期性學習率的調整,一般有三角循環學習率和帶熱重啓的梯度下降方法,其中三角循環的學習率是一種循環學習率的處理思路,和上面的餘弦衰減有些相似,因爲都是對學習速率的週期性衰減。而帶熱重啓的梯度下降方法則是在某個週期後進行重啓,在重啓之前的每個小週期都是使用餘弦衰減來降低學習率,那麼這樣就可以避免梯度下降到後期非常緩慢或者震盪的情況。
   總的來說,上述幾種衰減技巧比常數的學習率在梯度下降的效果會稍微好點,但是在迭代後期會存在衰減速度巨慢的情況,但是週期性學習率調整的思路是比較好的,因爲週期性的重啓可以幫助學習率週期性的調整,但是需要確定重啓的週期,如果該重啓週期過大或者過小都會存在問題。本人認爲,使用者需要關注幾種學習率衰減的技巧原理,比較多種技巧在實際問題的下降速度等特性,在某些情況甚至可以使用學習率預熱的思路進行處理。因爲學習率是和梯度等同重要的組成部分,所以使用者在遇到實際問題的時候要仔細觀察和設定該參數。

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