1506.01186-Cyclical Learning Rates for Training Neural Networks

1506.01186-Cyclical Learning Rates for Training Neural Networks

論文中提出了一種循環調整學習率來訓練模型的方式。算法

以下圖:angular2

經過循環的線性調整學習率,論文做者觀察到的一種比較典型的曲線以下圖:學習

圖中,使用循環調整方式的模型,雖然訓練中準確度有很大的波動,可是這種波動並不影像模型很快的收斂,而且以更快的速度收斂到了固定學習率或者學習率衰減方案中能達到的最高準確率。優化

這種方式須要設置的超參有三個, min bound,max bound ,step size。設計

step size通常選擇epoch的step數的2-8倍。例如一個epoch裏面有500步,則2000做爲step size是不錯的選擇。blog

肯定step size以後,使用一個簡短的訓練來肯定 min-max bound,在一個訓練裏,以循環學習率的方式,線性的提高學習率,畫出學習率與準確率關係的曲線。模型準確率最快增加的學習率適合用來作min bound,模型準確率增加減緩甚至直接出現負增加的地方,適合做max bound。以下圖中所示:it

模型一開始就出現了很快的準確率增加,因此選擇0.001做爲min bound,而0.005的位置出現了負增加,這裏做爲max bond。io

另外論文提出了另外兩種變種:angular

  • triangular2; the same as the triangular policy except the learning rate difference is cut in half at the end of each cycle. This means the learning rate difference drops after each cycle.cli

    每次cycle之間才作一次lr decay

  • exp range; the learning rate varies between the minimum and maximum boundaries and each boundary value declines by an exponential factor of gamme^iteration

    隨着每一個iteration都作一次lr decay

論文還嘗試把循環學習率與各類優化算法都結合了一下,可是看結果,除了nestrov動量法,其餘幾種優化算法的效果都很差。

這是能夠理解的,由於除了單純的動量法,其餘幾種方法,都會針對學習率進行動態的調整。而循環學習率引入的學習率循環變化必然會破壞學習率動態調整的某些特性。因此結果就變得沒法估計。

另外,針對學習率固定decay的效果與循環學習率的對比,論文做者單獨設計了一個實驗,循環學習率只循環一次,在學習率達到最小的時候,就固定住,或者作decay,再也不上升,可是最後的結果,仍是不如循環學習率的效果好。

這種循環學習率的方式,彷佛是由於循環引入了更多的隨機性?讓梯度有了更多的機會往不一樣的方向探索?

論文中沒有提出很好的理論解釋。

相關文章
相關標籤/搜索