深度學習筆記(2):2.9 學習率衰減 | 2.10 局部最優問題

2.9 學習率衰減

今天來講一下關於學習率衰減(learning rate decay)的問題。首先說一下爲什麼要衰減學習率,如下圖所示:

假設我們使用mini-batch梯度下降法,之前我們已經講過它的一些特點,比如路徑曲折不直接、有噪音(路徑曲折不直接和有噪音是一回事)、在最優值附近波動不收斂。也許在剛開始學習時,我們可以承受較大的步長帶來的代價,但是隨着不斷學習至開始收斂時,通過慢慢的減少學習率,減少步長,我們可以使梯度在最優值附近更小的區域內波動,使結果更準確穩定。

我們在之前的博文中講過1 epoch表示遍歷一次完整的數據集,我們希望學習率能夠隨着訓練過程不斷減少,而epoch可以作爲這個參數影響學習率的大小,因爲epoch的數值表示訓練已經遍歷了數據集幾次。

在這裏,我們令\alpha =\frac{1}{1+decayrate*epochnum}\alpha _{0},epochnum就是epoch數值,decay-rate(衰減率)是我們要選擇的超參數。

上圖舉了一個具體的例子,若\alpha _{0}=0.2,decay-rate=1,那麼\alpha的值隨着epoch的值改變如上表所示,這裏老師寫法錯誤,\alpha的值應該是0.1,0.067,0.05,0.04等等。總之,\alpha的值是隨着epoch的值增加而不斷減少的。

除了剛纔介紹的方法,我們還有一些其他定義\alpha衰減的方法如上圖所示。

比如指數衰減(exponentially decay)方法,令\alpha =0.95^{epochnum}\alpha _{0}

或者加一個超參數k,令\alpha =\frac{k}{\sqrt{epochnum}}\alpha _{0},或者\alpha =\frac{k}{\sqrt{t}}\alpha _{0},這裏t是mini-batch的大小;

或者是離散化下降(discrete staircase)的方法,在一小段時間內梯度保持不變。我曾經使用過proximal gradient方法,這個算法首先設定一個學習率,然後計算一個不等式,如果不等式成立,那麼不更新學習率,若等式不成立,那麼令\alpha =0.5\alpha,然後接着訓練。那麼就會有上圖中distance staircase這樣的情況。

再或者,就是手動調試啦。

2.10 局部最優問題

在前期對高維神經網絡認識還不夠深的時候,大家多擔心優化算法,害怕求解會困在局部最優。隨着對高維神經網絡認識的加深,大家想法發生了很大轉變,現在我們再來談一下對局部最優和優化算法的理解。如下圖所示:

以前,大家認爲神經網絡中會有很多局部最優(local optimal),如上圖左側所示,在三維情況中,圖中所標示的藍點都是局部最優,所以認爲神經網絡訓練困在局部最優是最嚴重的問題,我們將低維中的問題直接套在高維下是不切實際的,實際上,在高維情況下,局部最優出現的情況很少,而右側圖出現的機率更大,爲什麼呢?我們來分析一波。

右側的情況我們稱爲鞍點(saddle point),我們發現綠點處梯度爲0,即它在每個方向上導數都爲0。在高維情況下,如果梯度爲0,那麼在每個方向它既有可能是凸函數,也有可能是凹函數,比如綠點,在w1方向上它是凸函數,但在w2方向上它是凹函數,所以綠點不是一個局部最優,而是鞍點。看到這裏你可能知道了,如果一個點是局部最優,那麼在每個方向上都應該是凸函數。在20000維的情況中,在所有梯度爲0的點中,局部最優出現的概率是2^{-20000},鞍點出現的概率是1-2^{-19999}(除了局部最優,還有全是凹函數的情況)。

對於鞍點和局部最優,可以理解爲是扔多枚硬幣的過程,這些硬幣全爲正面就是局部最優解,有部分爲正面就爲鞍點,硬幣的個數就是數據的維度,如果維度越高,那麼出現局部最優的概率就越低,但鞍點的數目卻是呈指數增長。

至於鞍點爲什麼叫鞍點,吳老師的神畫工可以很好地告訴我們原因。

除了因爲局部最優在高維中出現的概率小,我們不必爲它太過煩惱(一定要注意是在高維情況下),還有就是局部最優本來也並非想象中那麼可怕,我們擔心的是找到的解和全局最優相差很大,因爲最重要的是要找到相對較低的局部最優值。實踐中也會發現最優解附近的解泛化效果通常要比最優解好。

局部最優不是問題,那麼什麼是問題呢?平原(plateaus)問題。平原是指鞍點周圍梯度很小的平穩區域。

平原會使訓練變得很慢,因爲梯度長時間接近0。假設從左上開始訓練,因爲梯度太小,訓練很慢,經過很長一段時間後到達鞍點,然後因爲優化算法的左右擾動,可能最終會跳出平穩段,沿着紅色箭頭繼續下降。

總之,局部最優問題幾乎不是我們需要優先考慮的問題。首先,出現概率很小,其次,問題嚴重性不高。真正需要我們考慮的是鞍點周圍區域平原帶來的訓練緩慢問題,改進的優化算法momentum,RMSprop,Adam能夠大大提高計算速度,幫助神經網絡快速離開平穩段。

 

版權聲明:尊重博主原創文章,轉載請註明出處https://blog.csdn.net/kkkkkiko/article/details/81411530

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