2017年深度學習優化算法進展_第1頁
2017年深度學習優化算法進展_第2頁
2017年深度學習優化算法進展_第3頁
2017年深度學習優化算法進展_第4頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2017 年深度學習優化算法最新進展:如何改進 SGD 和 Adam 方法?行者武松 2018-01-01 16:59:00 瀏覽 2952 評論 0本文來自 AI 新量子位(QbitAI)深度學習的基本目標,就是尋找一個泛化能力強的最小值,模型的快速性和可靠性也是一個加分點。隨機梯度下降( SGD)方法是 1951 年由 Robbins 和 Monro 提出的1,至今已有 60 年歷史。在當前的深度學習研究中,這種方法,一般被用在反向過程中。近年來,研究提出一些新的優化算法,使用了不同方程來更新模型參數。2015 年 Kingma 和 Ba 提出的 Adam 方法18,可看作是目前最常用的優

2、化算法之一。這表明,從學習工作者的角度來說,深度學習優化中的最佳方法在很大程度上是保持不變的。然而,今年還有很多新的方法提出,這可能會影響接下來在模型優化中所使用的方法。在這篇文章中,Ruder 從他的角度,介紹了深度學習優化方法中一些振奮人心的工作和可能的發展方向。閱讀這篇文章時,要熟悉 SGD 方法和自適應學習率方法,如 Adam 方法。改進 Adam 方法摘要: 本文來自 AI 新量子位(QbitAI) 深度學習的基本目標,就是尋找一個泛化能力強的最小值,模型的快速性和可靠性也是一個加分點。 隨機梯度下降(SGD)方法是 1951 年由Robbins 和 Monro 提出的1,至今已有

3、60 年歷史。· 性能· 算法· 深度學習盡管,像 Adam 這樣的自適應學習率方法使用十分廣泛,但是,在物體識別17和翻譯 3等研究任務中,很多前沿的研究成果仍然在使用傳統的帶動量 SGD 方法。Wilson 等人在最新研究中15給出一些理由來說明,與帶動量 SGD 方法相比,自適應學習率方收斂于不同的極小值,且結果通常不大理想。從經驗上得出,在物體識別、字符級語言建模和句法分析等任務中, 自適應學習率方法得到的極小值通常比帶動量 SGD 方法得到的極小值要差。這似乎與直覺相反,因為 Adam 方法有很好的收斂機制,且其自適應學習率會比傳統的 SGD 方法表現得

4、更好。但是, Adam 和其他自適應學習率方法也有一些局限性。解耦衰減在一些數據集上, Adam 方法的泛化能力比帶動量 SGD 方法要差的一衰減( weight decay) 。個可能是衰減常被用于圖像分類問題中,即在每次參數更新后,把衰減率 Wt 與權重 t 相乘,其中衰減率 Wt 略小于 1:這能防止權重變得過大。因此這取決于施加在 Loss 上的衰減也可以理解為一種 L2 正則化項, 衰減率 Wt:衰減方法一般可作為上述的正則化項,或是直接修改梯度,通常在很多神經網絡庫中有調用函數。在動量和 Adam 算法的更新方程中,通衰減與 L2 正則化不一樣。過與其他衰減項相乘來修改梯度值時,所

5、以因此, Loshchilov 和 Hutter 在 2017 年提出“解耦衰減”19,與原始定義相同,在每次參數更新后通過這種方法來更新梯度。帶動量和衰減的 SGD 方法( SGDW)按照以下方式更新梯度: 其中, 為學習率, 第二個方程的第三解耦衰減。同樣地, 我衰減的 Adam 方法( AdamW): 們得到帶其中, mt 和 m t 是第一時刻的偏差和偏差校正估計值, vt 和 v t 是第二時刻的偏差和偏差校正估計值, 1 和 2 是相應的衰減率,且加入相同的衰減項。作者表示,這種方法大幅提高了 Adam 方法的泛化能力, 且在圖像分類數據集上與帶動量 SGD 方法效果相當。另外,它

6、將學習率的選擇過程與衰減的選擇過程分離開,這能更好地實現超參數優化,因為超參數間不再互相依賴。它還把優化器的實現與衰減的實現過程,這有助于構建更簡潔和可重用的代碼,參考 fast.ai AdamW/SGDW implementation( fastai/pull/46/files) 。固定指數移動平均值最近的一些研究( Dozat and Manning, 201713、Laine and Aila, 201716)通過實驗發現,調低 2 值,影響了 Adam 方法中過去平方梯度的指數移動平均值的貢獻度。一般來說, 2 的默認值為 0.999,設置為 0.99 或 0.9 后,在不同任務中表現

7、更好,這表明可能存在指數移動平均值的問題。ICLR 2018 正在審核的一篇文章 On the Convergence of Adam andBeyond()研究了這個問題,指出過去平方梯度的指數移動平均值是自適應學習率方法泛化能力不佳的另一個。自適應學習速率方法的,是通過過去平方梯度的指數移動平均值來更新參數,例如 Adadelta, RMSprop 和 Adam。研究指數平均的貢獻度,這個思路的性很好,能防止學習率隨著訓練而變得極小,這也是 Adagrad 方法的關鍵缺陷。但是,梯度的短期記憶性在其他情況下變成了阻礙。在 Adam 方法收斂到一個次優解時,我們觀察到一些小批次樣本貢獻了大幅

8、且有效的信息梯度,但是這種情況很少發生,指數平均后減小了它們的影響,導致模型收斂性差。作者給出了一個簡單的凸優化問題,可以看到 Adam 方法中也存在這種現象。作者提出了一種新算法 AMSGrad 來解決這個問題, 它使用過去平方梯度的最大值來更新參數,而不是先前的指數平均。AMSGrad 方法的更新過程如下,這里不帶有偏差校正估計: 實驗表明,在小數據集和 CIFAR-10 數據集上,這種方法的性能比 Ada m 方法更好。調整學習率在許多情況下, 我們不需要改進和調整模型結構, 而是該調整超參數。在語言建模中的一些最新研究表明,與更復雜的模型相比,調整 LSTM 參數20和正則化參數21就

9、可以得到最先進的性能。在深度學習優化中,一個重要的超參數就是學習率 。實際上,在 SG D 方法中,需要構建一個合適的學習率退火方案,來得到一個良好的收斂最小值。人們會認為,像 Adam 這樣的自適應學習率方法,對不同的學習率更具有魯棒性,因為這些方法能自我更新學習率。但是,即使對于這些方法,好的學習率和最佳的學習率也可能有很大的差別( Andrej KarpathyVerified account 說最佳學習率是 3e-4arpathy/status/)。Zhang 在 2017 年的一個研究表明2,在調整學習率退火方案和動量參數后,該 SGD 方法的性能與 Adam 有得一拼,而且收斂速度

10、更快。另一方面,我們可能認為 Adam 方法中學習率的自適應性可能模仿了學習速率退火,但是一個明確的退火方案仍然是有幫助的。因為,如果我們把 SGD 方法中的學習率退火添加到 Adam 中,它能在表現得比 SGD 方法更好,且更快地收斂4。翻譯任務中事實上,學習率退火方案似乎是一種新的特征工程,因為我們發現,改進的學習率退火方案能模型的最終收斂性能。Vaswani 等人在 2017 年給出了一個有趣的例子14。在模型調參時, 通常需要進行大規模的超參數優化,這個文章的創新點在把學習率退火方案當作是要優化的具體焦點。作者使用了 Adam方法,其中 1 =0.9,和非默認參數2 =0.98、=10

11、- 9 ,這可以說對學習率 來說是最精細的退火方案之一: 其中 dm是模型參數的數目,且 warmup_steps 為 4000。Smith 等人在 2017 年的另一篇5揭示了學習率和批次大小間的一個有趣關聯。這兩個超參數通常被認為是相互的, 但是他們發現,減小學習率相當于增加批次大小,而后者能提高并行訓練速度。反過來想,我們可以減少模型更新次數,并通過提高學習率和縮放批次大小來提高訓練速度。這個發現影響到大規模深度學習的訓練過程,可在不需要超參數調整的前提下,重新調整現有的訓練計劃。熱重啟( warm restarts)帶重啟的 SGD 方法另一個最近提出的有效方法是 SGDR6, Los

12、hchilov 和 Hutter 用熱重啟方式來替代學習率退火制度,來改進 SGD 方法。在每次重啟時,學習率初始化為某個值,然后逐漸減少。重要的是,這種重啟可隨時進行, 因為優化不是從頭開始, 而是從模型在上一個步驟收斂的參數開始的。關鍵在于,通過一個積極的余弦退火方案來調整學習率,這會很快地降低學習率,如下所示: 其中 imin 和 im ax 是第 i 次訓練時學習率的變化區間, Tcu r 表示從上次重啟后已完成的迭代次數,且 Ti 規定了下一次重啟的迭代次數。與常規的學習率退火方案相比, 熱重啟方法( Ti =50, Ti=100 和 Ti=200) 的性能如圖 1 所示。圖 1:

13、加入熱重啟的學習率方法性能變化重啟后,用一個高的初始學習率能從根本上把參數從先前收斂的最小值彈射到損失函數曲面的不同區域。這種積極的退火機制使模型能快速收斂到一個新且更好的解決方案。作者通過觀察還發現,使用熱重啟的隨機梯度下降方法的所需時間比學習率退火機制少了 24 倍,并能達到相當或更好的性能。使用熱重啟的學習率退火也叫做循環變化學習率,最初由 Smith22提出。fast.ai 學生給出了另外兩篇文章,討論了熱重啟和循環變化學習率, 地址如下: ning-rate-5e99554f163b快照集成( Snapshot ensembles)快照集成是一種最近由 Huang 提出的巧妙方法7,

14、即在訓練單個模型時使用熱重啟來組裝一個集合,且基本上無額外的代價。這種方法可以訓練一個單模型,按照之前看到的余弦退火制度收斂,然后保存模型參數,并進行熱重啟,重復這些步驟 M 次。最后,所有保存的模型快照形成一個集合。在圖 2 中可以看到,常用的 SGD 優化在誤差曲面上的性能與快照集成過程的性能差異。圖 2: SGD 與快照集成一般來說,集成是否取決于組合中每個模型的多樣性。因此,快照集成依賴于余弦退火方案的能力,使得模型在每次重啟后能夠收斂到不同的局部最優值。作者證明,這在實踐中是成立的,在 CIFAR-10、CI FAR-100 和 SVHN 上取得了很好的效果。帶重啟的 Adam 方法

15、熱重啟最初在 Adam 方法中并不適用,因為它的衰減不正常。在固定Adam衰減后,Loshchilov 和 Hutter 在 2017 年同樣地把熱重啟擴展到中。其中, im in = 0, im a x=1,得到: 建議開始時選取較小的 Ti(迭代次數在 1-10 之間),并在每次重啟時將其乘以一個系數 Tm u l t ,如 2。學習優化之一是 Andrychowicz 等人撰寫的 Learning to lear去年最有趣的n by gradient descent by gradient descent,也是 reddit 網友選出的“2016 年最佳”23。他們訓練了 LSTM 優化

16、器,用于在訓練主要模型時更新參數。不幸的是,學習單獨的 LSTM 優化器,或是使用預先訓練好的 LSTM 優化器進行優化,都會大大增加模型訓練的復雜度。今年還有一篇很有影響力的“learning to learn”,使用 LSTM 來生成特定領域語言的模型結構24。雖然搜索過程需要大量的, 但是所發現的結構可以用來取代已有的結構。這個搜索過程已經被證明是有效的,并且在語言建模方面取得最先進的效果,并且在 CIFAR-10 上取得了很有競爭力的結果。同樣的搜索策略也可以應用于任何已經被手工定義其關鍵過程的其他領域,其中一個領域就是深度學習的優化算法。正如以前所看到的,優化算法十分符合這個規則:它

17、們都使用了過去梯度的指數移動平均值( 如動量) 和過去平方梯度的指數移動平均值( 如 Adadelta, RMSpro p, Adam)的組合25。Bello 等人8定義了一個特定領域的語言,由對優化有用的基元組成, 如這些指數移動平均值。然后,他們從所有可能的更則空間中采樣更則,使用此更則來訓練模型,并基于測試集上訓練模型的性能來更新 RNN器。完整流程如圖 3 所示。圖 3: 神經優化搜索特別是,他們還定義了兩個更新方程,即 PowerSign 和 AddSign。Po werSign 的更新公式如下: 其中, 是一個超參數, 通常設為 e 或者 2; f(t)設為 1, 或是衰減函數(隨

18、著時間步 t 重新執行線性、循環或衰減),其中 mt 是過去梯度的移動平均值。通常,設置 = e,且無衰減。注意到,更新通過 f( t ) 或 1 / f ( t ) 來縮放梯度,取決于梯度方向和移動平均值是否一致。這表明,這種類似動量的過去梯度和當前梯度之間的相似性是優化深度學習模型的關鍵信息。AddSign 定義如下: 其中, 通常設置為 1 或 2,與上面類似,這次的尺度更新為 +f(t)或 f(t),取決于梯度方向的一致性。作者指出, PowerSign 和 AddSign在 CIFAR-10 上的表現優于 Adam、RMSprop 和帶動量 SGD 方法,并能很好地轉換到其他任務中,如 ImageNet 分類和翻譯。理解泛化優化問題與泛化能力是密切相關的,因為模型收斂的最小值決定了模型的泛化能力。因此,優化問題的進展與理解這種極小值泛化能力的理論進展是密切相關的,且能更深入地理解深度學習中的泛化能力。但是,我們對深度神經網絡泛化能力的理解仍然很淺顯。最近的研究表明,可能是局部極小值的數量隨參數數量呈指數型增長9。考慮到目前深度學習結構中參數數量巨大,這樣的模型能收斂且泛化能力較好,特別是考慮到它們可以完全記住隨機輸入10,這似乎看起來很神奇10。Keskar 等人11認為最小值的指出,批次梯度下降所找到的是泛化能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論