學習率
此條目需要精通或熟悉人工智能的編者參與及協助編輯。 |
在機器學習和統計學中,學習率(英語:Learning rate)是優化算法中的一個可調參數,它決定了每次迭代的步長,使得優化向損失函數的最小值前進。[1]它影響到新學習到的信息在多大程度上取代了舊信息,暗示了機器學習模型 "學習 "的速度。在自適應控制中,學習率通常被稱為增益(Gain)。[2]
設置學習率需要在收斂速度和過沖(Overshooting)之間進行權衡。學習時的前進方向通常由損失函數的負梯度決定,而學習率決定了在這個方向上邁出多大一步。過高的學習率會使邁一大步,超過最小值;但過低的學習率會導致收斂速度變慢,或收斂於局部最小值。[3]
為了加速收斂,防止振盪和陷入不理想的局部極小值,學習率在訓練過程中往往按照計劃或自適應改變。[4]
學習率計劃表
初始學習率速率可以參考系統默認值,也可以使用其他方式選擇。學習率計劃表在學習過程中改變學習率,最常見的是在epochs或iterations之間改變。學習率的改變通常由兩個參數決定:衰減(Decay)和動量(Momentum)。目前常見的學習率修改方式是基於時間、基於步驟或基於指數的。[4] 衰減的作用是將學習過程穩定在一個好的、沒有振盪的位置(當恆定學習率過高時,學習過程可能會在最小值附近震盪)。衰減率通常由超參數控制。
動量類似於從山上滾下來的球,我們希望球在最低點(對應於最低的誤差)停留。當梯度方向長期一致時,動量可以加快學習速度(提高學習率),也能通過跳過局部最小值。動量由類似於球質量的超參數控制,而這一參數必須手動選擇。當動量過大時,球會滾過希望找到的最小值;當動量過低時,它將不起作用。計算動量的公式比計算衰減的公式更複雜,但在常用的深度學習庫(如Keras)中已經實現。
基於時間的學習計劃表會根據前一個迭代的學習率改變學習率。考慮到衰減的因素,學習率更新公式為:
其中 是學習率。 是衰減參數,而 是迭代步驟。
基於步的學習計劃表根據預先定義的步長改變學習率。通常定義為:
其中 是在第 步的學習率, 初始學習率, 是每次下降時學習率的變化程度(0.5代表減半), 對應下降率(即下降的頻率,10代表每10此迭代下降一次)。向下取整函數( )將小於1的數改為0。
指數式學習計劃表與基於步的學習計劃表類似,但使用的不是步,而是遞減的指數函數。考慮到衰減的數學公式是:
其中 是衰減參數。
自適應學習率
學習率計劃表存在的問題是,學習率變換方式取決於超參數,而超參數必須為手動選擇。許多不同類型的自適應梯度下降算法解決這個問題(如Adagrad、Adadelta、RMSprop和Adam[5]),這些算法通常內置於深度學習庫。[6]
參考文獻
- ^ Murphy, Kevin P. Machine Learning: A Probabilistic Perspective. Cambridge: MIT Press. 2012: 247. ISBN 978-0-262-01802-9.
- ^ Delyon, Bernard. Stochastic Approximation with Decreasing Gain: Convergence and Asymptotic Theory. Unpublished Lecture Notes (Université de Rennes). 2000. CiteSeerX 10.1.1.29.4428 .
- ^ Buduma, Nikhil; Locascio, Nicholas. Fundamentals of Deep Learning : Designing Next-Generation Machine Intelligence Algorithms. O'Reilly. 2017: 21. ISBN 978-1-4919-2558-4.
- ^ 4.0 4.1 Patterson, Josh; Gibson, Adam. Understanding Learning Rates. Deep Learning : A Practitioner's Approach. O'Reilly. 2017: 258–263. ISBN 978-1-4919-1425-0.
- ^ Murphy, Kevin. Probabilistic Machine Learning: An Introduction. Probabilistic Machine Learning: An Introduction (MIT Press). 2021 [10 April 2021]. (原始內容存檔於2021-04-11).
- ^ Brownlee, Jason. How to Configure the Learning Rate When Training Deep Learning Neural Networks. Machine Learning Mastery. 22 January 2019 [4 January 2021]. (原始內容存檔於2019-06-20).