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