1.找到最優學習率的方法
(1)笨方法——指數提高學習率
從0.0001開始嘗試,然后用0.001,每個量級的學習率都去跑一下網絡,然后觀察一下loss的情況,選擇一個相對合理的學習率,但是這種方法太耗時間了。
(2)簡單的啟發方法【有時間總結】
參考:https://arxiv.org/pdf/1506.01186.pdf,3.3節
(3)皮爾森檢測法篩選最優學習率
讀:《深度學習用於天文圖像空間碎片和恆星分類》
2015 年 Leslie N. Smith 在其論文里提出了一種選擇學習率的方法,就是從一個最低的學習率開始訓練網絡,依次指數提高學習率,然后畫出損失圖,可以有效地選取最優學習率。(Cyclical Learning Rates for Training Neural Networks)這是一個可行的方法,但仍有一定的不確定性。【這應該就是(1)指數提高學習率】
我們所搭建的神經網絡的權重一開始是隨機產生的,就像一幅地圖,出生的位置是隨機的,但目的地卻是唯一的,這樣單次的成功並不意味着這個學習率就是最好的,隨機性導致的不確定性使得我們要考慮尋找一個更加穩定的學習率參數。本文選用的是皮爾森檢驗的篩選學習率參數的方法。
在最開始的試驗中,我們采用逐步下降的學習率來訓練我們的卷積神經網絡模型,但都沒有取得良好的結果。於是,改變策略采用固定的學習率。
固定學習率幾個好處:首先在學習率足夠低的情況下具有更高的概率收斂到局部最優解。其次是每次訓練的時間較為穩定,不會有劇烈的波動。雖然固定的學習率在機器學習中很少被使用到,但是本文處理數據的特殊性,恰巧適用這種方法。
雖然現在大量的搭建神經網絡的文章使用的也是固定的學習率,但是目前並沒有明確的計算公式,大都是根據經驗來定學習率參數。
在本文里,我們使用皮爾森檢驗法來篩選可用的學習率。由於最初的參數是隨機的,所以即使同一學習率也會出現有的時候可以訓練成功,有的時候訓練失敗。對此,我們使用皮爾森檢測的目的就是篩選成功概率最高的學習率。首先假設:
Η0:每次試驗訓練的成功收斂的概率大於等於 0.8。
皮爾森檢測公式為:
其中k = 2,𝑝1= 0.8,n = 5,𝑝2= 0.2, 經查表得𝜒20.05 = 3.84,帶入公式里面計算得當𝑛𝑖大於等於 2.25 的時候才能滿足𝜒2< 𝜒20.05(1)。所以,我們可以得出結論,只有當 5 次實驗中成功 3 次及以上才能確定該學習率滿足Η0條件,即每次試驗訓練的成功收斂概率大於等於 0.8。
經過皮爾森檢測的結果,我們在尋找合適的學習率的原則就是馴練五次,成功收斂三次即是合格。之后把經篩選出的合格的學習率再每一組挑選訓練時成功收斂的 20 組結果來計算最后的分類正確率,取正確率高的一組為最后選取的學習率參數。【不理解,為什么是20個為一組??】
2.學習率重要性
目前深度學習使用的都是非常簡單的一階收斂算法,梯度下降法,不管有多少自適應的優化算法,本質上都是對梯度下降法的各種變形,所以初始學習率對深層網絡的收斂起着決定性的作用,w=w−α∂loss(w)/∂w
如果學習率太小,會導致網絡loss下降非常慢,如果學習率太大,那么參數更新的幅度就非常大,就會導致網絡收斂到局部最優點,或者loss直接開始增加,如下圖所示。
參考:
https://blog.csdn.net/whut_ldz/article/details/78882871
梯度下降算法:https://blog.csdn.net/hrkxhll/article/details/80395033