從梯度下降演算法的角度來說,通過選擇合適的學習率,可以使梯度下降法得到更好的效能。學習率,即引數到達最優值過程的速度快慢,如andrew ng的stanford公開課程所說,假如你從山峰的最高點根據梯度下降法尋找最優值,當你學習率過大,即下降的快,步子大,那麼你很可能會在某一步跨過最優值,當你學習率過小時,每次下降一厘公尺,這將走到何年何月呀,用術語來說就是,長時間無法收斂。因此,學習率直接決定著學習演算法的效能表現。
學習率是深度學習中的乙個重要的超參,如何調整學習率是訓練出好模型的關鍵要素之一。在通過sgd求解問題的極小值時,梯度不能太大,也不能太小。太大容易出現超調現象,即在極值點兩端不斷發散,或是劇烈**,總之隨著迭代次數增大loss沒有減小的趨勢;太小會導致無法快速地找到好的下降的方向,隨著迭代次數增大loss基本不變。
因此,我們常常用一些退火的方法調整學習率。學習率調整方法基本上有兩種
1. 基於經驗的手動調整。 通過嘗試不同的固定學習率,如0.1, 0.01, 0.001等,觀察迭代次數和loss的變化關係,找到loss下降最快關係對應的學習率。
2. 基於策略的調整。
2.1 fixed 、exponential、polynomial
2.2. 自適應動態調整。adadelta、adagrad、ftrl、momentum、rmsprop、sgd
分層學習率設定和學習率衰減(pytorch)
在使用bert或者其它預訓練模型進行微調,下接其它具體任務相關的模組時,會面臨這樣乙個問題,bert由於已經進行了預訓練,引數已經達到了乙個較好的水平,如果要保持其不會降低,學習率就不能太大,而下接結構是從零開始訓練,用小的學習率訓練不僅學習慢,而且也很難與bert本體訓練同步。因此在訓練時候就需要...
TensorFlow 學習率的設定
為了解決學習率不能過大不能過小的問題,tensorflow提供了靈活的學習率設定方法 指數衰減法 tensorflow.train.exponential decay learing rate,global step,decay steps,decay rate,staircase false,na...
機器學習,引數之 學習率設定
1,機器學習中的學習率設定 學習率控制的是引數的更新速度,學習率設定過大,會導到損失函式在極小值附近來回變化,不收斂,學習率設定過小,會導到學習速度變慢。tensorflow中提供了學習率衰減機制,可以開設定乙個較大的學習率和乙個衰減係數,讓損失函式在剛開始 以的較快的速度下降,隨著訓練次數增加,學...