自適應學習率排程器瞭解一下?

機器之心發表於2019-02-28

訓練神經網路受到幾個問題的困擾。這些問題包括梯度消失、梯度爆炸 [7,3] 和過擬合。包括不同啟用函式 [14,17]、批歸一化 [12]、新穎的初始化方案 [9] 以及 Dropout[26] 在內的多種進展都為這些問題提供瞭解決方案。

但是,一個更基本的問題是為不同的引數尋找最優值,而對這個問題而言學習率可以說是最重要的。眾所周知,學習率太小會導致收斂變慢,但是太大的學習率又會導致發散 [2]。近期的研究一致認為,與固定的學習率相比,變化的學習率排程系統能夠提供更快的收斂 [20,23]。而覺得不應使用較大學習率的傳統經驗也被認為有問題,可能導致「超收斂」和規則效應(regularizing effect)[25]。本文的實驗結果和這個說法是一致的;但是作者沒有使用迴圈的學習率,而是提出了一種基於理論基礎來計算自適應學習率的新方法。

據作者所知,這是首次提出具有理論基礎的自適應學習率排程器並且在標準資料集和網路架構上進行實證研究。所以,本文的貢獻是雙重的。首先,作者基於損失函式的利普希茨常數(Lipschitz),提出了一個用於在深度神經網路隨機梯度下降中計算最優學習率的新理論框架。其工作表明,在啟用函式的特定選擇方面,僅最後兩層的啟用函式是計算學習率時所需要的。其次,作者為幾個常用的損失函式計算了理想的學習率,並用這些公式實驗性地證明了其方法的有效性。

本文方法利用了損失函式的函式屬性,僅對損失函式做了兩個最小限度的假設:它必須是利普希茨連續的 [19], 且至少是一階可微的。常用的損失函式都滿足這兩個條件。

論文:A novel adaptive learning rate scheduler for deep neural networks

自適應學習率排程器瞭解一下?

論文地址:https://arxiv.org/abs/1902.07399

摘要:最佳化深度神經網路在很大程度上被認為是一個經驗過程,它需要手動調節幾個引數,例如學習率權重衰減以及隨機失活率(dropout rate)。可以說,學習率是這些需要調節的引數中最重要的一個,它在最近的工作中也得到了更多的關注。在本文中,我們提出了一個計算深度神經網路學習率的新方法。我們推導了動態計算學習率的理論框架,然後展示了在標準資料集和模型架構上的實驗結果來證明該方法的有效性。

理論框架

對一個使用 Sigmoid、ReLU 或者 softmax 啟用函式神經網路來說,很容易表現出這樣的現象:反向傳播時朝著淺層的方向梯度會越來越小。因此,最後一層的梯度是反向傳播過程中計算出的梯度中最大的一個。如果 自適應學習率排程器瞭解一下?是第 l 層節點 i 到節點 j 的權重,並且 L 是總的層數,那麼:

自適應學習率排程器瞭解一下?

本質上,公式 (1) 表示誤差對最後一層權重的最大梯度比誤差對網路中任何權重的梯度都要大。顯然這也可以擴充套件到偏置(bias)。換句話說,找到最後一層的最大梯度就確定了誤差的利普希茨常數的上確界,這裡的梯度都是根據每一層的權重引數來取的。

我們現在分析得出了不同型別問題的理論上確界。這些數值的倒數可以用作梯度下降學習率。在任何一層中,我們都會有這種計算:

自適應學習率排程器瞭解一下?

因此,最後一層中任何權重的梯度都是透過下面的鏈式法則來計算的:

自適應學習率排程器瞭解一下?

第三部分是不能解析計算的;我們將它記作 K_z。現在看一下不同型別的問題,並計算這些組成部分。

實驗

下面我們展示了在一些公開資料集上的實驗結果和細節。雖然我們的結果不是最先進的,但我們的重點是憑經驗證明隨機梯度下降是可以透過更大的學習率來進行的,而不是像通常理解的那樣只能用小一些的學習率。我們所有的實驗都是在特斯拉 P100 GPU 上執行的,如果沒有特殊說明,模型也是使用(沒有動量或者權重衰減的)隨機梯度下降最佳化器進行最佳化的。在 CIFAR 資料集上,我們和 [10] 一樣僅使用了翻轉和平移增強方案。在所有實驗中,原始影像的畫素數值都除以 255。

在 MNIST 上的實驗只使用了一個自適應學習率,而因為利普希茨常數,學習率在每個 epoch 中都會被重新計算。

圖 1 展示了訓練集和驗證集準確率損失函式隨著 epoch 的變化而變化。圖 2 展示了在各個 epoch 計算的學習率。請注意,與 CIFAR-10(圖 5)和 CIFAR-100(圖 6)中計算的自適應學習率不同,MNIST 的學習率從高得多的值開始。

自適應學習率排程器瞭解一下?

圖 5 展示了不同時間的學習率隨。正如相關文獻所表明的,自適應方案會自動選擇一個衰減的學習率

自適應學習率排程器瞭解一下?

圖 5:CIFAR-10 上自適應學習率隨著時間的變化而變化

圖 6 展示了在各個 epoch 的學習率。與 CIFAR-10 一樣,前兩個 epoch 會以很小的學習率開始(10^(-8)),但是模型會快速適應不斷變化的權重

自適應學習率排程器瞭解一下?

圖 6: CIFAR-100 上隨著時間變化的自適應學習率

相關文章