傳統(tǒng)觀點認(rèn)為,太大的學(xué)習(xí)率不利于優(yōu)化深度神經(jīng)網(wǎng)絡(luò),而相比固定的學(xué)習(xí)率而言,變化的學(xué)習(xí)率更能提供快速的收斂?;诖?,本文作者基于理論基礎(chǔ)提出了一個計算深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率的新方法。實驗結(jié)果證明了該方法的有效性。
訓(xùn)練神經(jīng)網(wǎng)絡(luò)受到幾個問題的困擾。這些問題包括梯度消失、梯度爆炸 [7,3] 和過擬合。包括不同激活函數(shù) [14,17]、批歸一化 [12]、新穎的初始化方案 [9] 以及 Dropout[26] 在內(nèi)的多種進(jìn)展都為這些問題提供了解決方案。
但是,一個更基本的問題是為不同的超參數(shù)尋找最優(yōu)值,而對這個問題而言學(xué)習(xí)率可以說是最重要的。眾所周知,學(xué)習(xí)率太小會導(dǎo)致收斂變慢,但是太大的學(xué)習(xí)率又會導(dǎo)致發(fā)散 [2]。近期的研究一致認(rèn)為,與固定的學(xué)習(xí)率相比,變化的學(xué)習(xí)率調(diào)度系統(tǒng)能夠提供更快的收斂 [20,23]。而覺得不應(yīng)使用較大學(xué)習(xí)率的傳統(tǒng)經(jīng)驗也被認(rèn)為有問題,可能導(dǎo)致「超收斂」和規(guī)則效應(yīng)(regularizing effect)[25]。本文的實驗結(jié)果和這個說法是一致的;但是作者沒有使用循環(huán)的學(xué)習(xí)率,而是提出了一種基于理論基礎(chǔ)來計算自適應(yīng)學(xué)習(xí)率的新方法。
據(jù)作者所知,這是首次提出具有理論基礎(chǔ)的自適應(yīng)學(xué)習(xí)率調(diào)度器并且在標(biāo)準(zhǔn)數(shù)據(jù)集和網(wǎng)絡(luò)架構(gòu)上進(jìn)行實證研究。所以,本文的貢獻(xiàn)是雙重的。首先,作者基于損失函數(shù)的利普希茨常數(shù)(Lipschitz),提出了一個用于在深度神經(jīng)網(wǎng)絡(luò)的隨機梯度下降中計算最優(yōu)學(xué)習(xí)率的新理論框架。其工作表明,在激活函數(shù)的特定選擇方面,僅最后兩層的激活函數(shù)是計算學(xué)習(xí)率時所需要的。其次,作者為幾個常用的損失函數(shù)計算了理想的學(xué)習(xí)率,并用這些公式實驗性地證明了其方法的有效性。
本文方法利用了損失函數(shù)的函數(shù)屬性,僅對損失函數(shù)做了兩個最小限度的假設(shè):它必須是利普希茨連續(xù)的 [19], 且至少是一階可微的。常用的損失函數(shù)都滿足這兩個條件。
論文:A novel adaptive learning rate scheduler for deep neural networks
論文地址:https://arxiv.org/abs/1902.07399
摘要:優(yōu)化深度神經(jīng)網(wǎng)絡(luò)在很大程度上被認(rèn)為是一個經(jīng)驗過程,它需要手動調(diào)節(jié)幾個參數(shù),例如學(xué)習(xí)率、權(quán)重衰減以及隨機失活率(dropout rate)??梢哉f,學(xué)習(xí)率是這些需要調(diào)節(jié)的參數(shù)中最重要的一個,它在最近的工作中也得到了更多的關(guān)注。在本文中,我們提出了一個計算深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率的新方法。我們推導(dǎo)了動態(tài)計算學(xué)習(xí)率的理論框架,然后展示了在標(biāo)準(zhǔn)數(shù)據(jù)集和模型架構(gòu)上的實驗結(jié)果來證明該方法的有效性。
理論框架
對一個使用 Sigmoid、ReLU 或者 softmax 激活函數(shù)的神經(jīng)網(wǎng)絡(luò)來說,很容易表現(xiàn)出這樣的現(xiàn)象:反向傳播時朝著淺層的方向梯度會越來越小。因此,最后一層的梯度是反向傳播過程中計算出的梯度中最大的一個。如果 是第 l 層節(jié)點 i 到節(jié)點 j 的權(quán)重,并且 L 是總的層數(shù),那么:
本質(zhì)上,公式 (1) 表示誤差對最后一層權(quán)重的最大梯度比誤差對網(wǎng)絡(luò)中任何權(quán)重的梯度都要大。顯然這也可以擴展到偏置(bias)。換句話說,找到最后一層的最大梯度就確定了誤差的利普希茨常數(shù)的上確界,這里的梯度都是根據(jù)每一層的權(quán)重參數(shù)來取的。
我們現(xiàn)在分析得出了不同類型問題的理論上確界。這些數(shù)值的倒數(shù)可以用作梯度下降的學(xué)習(xí)率。在任何一層中,我們都會有這種計算:
因此,最后一層中任何權(quán)重的梯度都是通過下面的鏈?zhǔn)椒▌t來計算的:
第三部分是不能解析計算的;我們將它記作 K_z?,F(xiàn)在看一下不同類型的問題,并計算這些組成部分。
實驗
下面我們展示了在一些公開數(shù)據(jù)集上的實驗結(jié)果和細(xì)節(jié)。雖然我們的結(jié)果不是最先進(jìn)的,但我們的重點是憑經(jīng)驗證明隨機梯度下降是可以通過更大的學(xué)習(xí)率來進(jìn)行的,而不是像通常理解的那樣只能用小一些的學(xué)習(xí)率。我們所有的實驗都是在特斯拉 P100 GPU 上運行的,如果沒有特殊說明,模型也是使用(沒有動量或者權(quán)重衰減的)隨機梯度下降優(yōu)化器進(jìn)行優(yōu)化的。在 CIFAR 數(shù)據(jù)集上,我們和 [10] 一樣僅使用了翻轉(zhuǎn)和平移增強方案。在所有實驗中,原始圖像的像素數(shù)值都除以 255。
在 MNIST 上的實驗只使用了一個自適應(yīng)學(xué)習(xí)率,而因為利普希茨常數(shù),學(xué)習(xí)率在每個 epoch 中都會被重新計算。
圖 1 展示了訓(xùn)練集和驗證集上準(zhǔn)確率和損失函數(shù)隨著 epoch 的變化而變化。圖 2 展示了在各個 epoch 計算的學(xué)習(xí)率。請注意,與 CIFAR-10(圖 5)和 CIFAR-100(圖 6)中計算的自適應(yīng)學(xué)習(xí)率不同,MNIST 的學(xué)習(xí)率從高得多的值開始。
圖 5 展示了不同時間的學(xué)習(xí)率隨。正如相關(guān)文獻(xiàn)所表明的,自適應(yīng)方案會自動選擇一個衰減的學(xué)習(xí)率。
圖 5:CIFAR-10 上自適應(yīng)學(xué)習(xí)率隨著時間的變化而變化
圖 6 展示了在各個 epoch 的學(xué)習(xí)率。與 CIFAR-10 一樣,前兩個 epoch 會以很小的學(xué)習(xí)率開始(10^(-8)),但是模型會快速適應(yīng)不斷變化的權(quán)重。
圖 6: CIFAR-100 上隨著時間變化的自適應(yīng)學(xué)習(xí)率。