学习速率 learning rate
學習速率的選取策略
運用梯度下降算法進行優化時,權重的更新規則中,在梯度項前會乘以一個系數,這個系數就叫學習速率 ααα :
-
如果學習速率太小,則會使收斂過慢。
-
如果學習速率太大,則會導致代價函數振蕩,迭代過快,梯度下降法可能會越過最低點,甚至可能發散。
-
學習速率的取值取決于數據樣本,可以多取一些值,從大到小,分別運行算法,看看迭代效果,如果損失函數在變小,說明取值有效,否則要增大步長。
-
例如:把學習速率設置為 0.01,然后觀察 training cost 的走向,如果cost 在減小,可以逐步地調大學習速率,試試 0.1,1.0 如果 cost 在增大,那就得減小學習速率,試試0.001,0.0001。經過一番嘗試之后,可以大概確定學習速率的合適的值。
學習速率的調節
-
在優化的過程中,learning rate應該是逐步減小的,越接近“山谷”的時候,邁的“步伐”應該越小。
-
人工調節
可以先對 learning rate 設置初始值,如:0.25,迭代到一定程度時,如:第20個epoch時候,將 learning rate 除以10,設置為0.025。
-
自動調節
一個簡單有效的做法就是,當驗證集的準確率不再提高時,可以讓 learning rate 減半或除以10,然后繼續迭代。
參考的配置
AlexNet 以及 VGG 中的學習率設定:
- 學習率初始設定為 0.01,然后當驗證集準確率停止改善時,減少10倍。學習率總共降低3次。
The heuristic which we followed was to divide the learning rate by 10 when the validation error rate stopped improving with the current learning rate. The learning rate was initialized at 0.01 and reduced three times prior to termination.
總結
以上是生活随笔為你收集整理的学习速率 learning rate的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 目标函数、损失函数、代价函数
- 下一篇: 特征缩放 feature scaling