速度媲美Adam,性能堪比SGD:北大、浙大學霸本科生提出全新優化算法AdaBound

2018 年 12 月 21 日,ICLR 2019 論文接收結果揭曉。據統計,ICLR 2019 共收到 1591 篇論文投稿,相比去年的 996 篇增加了 60%。ICLR 2019 共接收論文 500 篇,其中 oral 論文 24 篇、poster 論文 476 篇。git

今天,咱們發現了一篇有趣的論文,該研究提出了一種新型優化方法 AdaBound,「和 Adam同樣快、和 SGD同樣好」。據瞭解,四位做者 Liangchen Luo、Yuanhao Xiong、Yan Liu、Xu Sun 均來自國內。共同一做駱梁宸和 Yuanhao Xiong 分別來自北京大學和浙江大學,Yan Liu 來自南加州大學,Xu Sun 來自北京大學。並且一做駱梁宸是北京大學的本科生……(長江後浪推前浪嚶 :)github

做者在 reddit 網站發帖介紹了這項研究,並提供了 PyTorch 實現。他們目前在 MNIST 和 CIFAR-10 數據集作了測試,但因爲計算資源有限而沒法選擇 ImageNet 等大數據集。此外,做者還表示 AdaBound 能夠直接經過 pip 安裝,不過使用 AdaBound 不意味着不用調參,只不過 AdaBound 能夠幫助你們減小所須要的時間。算法

爲何這篇論文很重要?網絡

正如做者所言,AdaBound 最重要的屬性是「和 Adam 同樣快、和 SGD 同樣好」。其中「快」表示收斂快,深度學習模型只須要更少的算力就能收斂到最優解;而「好」表示收斂的結果好,收斂後的模型要有更高的準確率的更好的泛化性。框架

以下所示這張訓練圖展現了 AdaBound 的主要優點,其中測試準確率曲線越平滑表示最優化算法越穩定,模型的訓練會少走「彎路」。而若給定 Epoch,垂直線上的高度表示收斂的快慢,測試準確率越高則收斂得越快。AdaGrad 收斂快是衆所周知的,但 AdaBound 也能這麼快就很是使人吃驚了。機器學習

此外,最右邊近乎水平的曲線則代表各最優化算法已經完成收斂,曲線的水平高低則代表了收斂的好壞,固然測試準確率越高則代表收斂的最優解越好。咱們能夠看到,AdaBound 和 AMSbound 確實是收斂得最好,而 SGDM 甚至都比 Adam 收斂得好。函數

在去年 ICLR 2018 的最佳論文《On the convergence of Adam and Beyond》中,做者首次分析了爲何 Adam 等新提出的方法會收斂得很差,該論文提出的 AMSGrad 嘗試解決這個問題。可是在這篇新論文中,北大駱梁宸等研究者代表 AMSGrad 實際上也沒有解決問題,所以他們提出了新的解決方案:AdaBound。post

爲何 Adam 不行?性能

目前 Adam 能夠說是最經常使用的最優化器,它和傳統的隨機梯度降低有不少不一樣。SGD 保持單一的學習率來更新全部權重,學習率在訓練過程當中並不會改變,Adam 則經過計算梯度的一階矩估計和二階矩估計,爲不一樣的參數設計獨立的自適應性學習率。學習

聽起來 Adam 好像高級了不少,但在 Reddi 等人的 ICLR 2018 最佳論文中,他們表示 Adam 等算法在經驗上常會收斂得比帶動量的 SGD 方法差,他們證實了致使該問題的一個緣由是這些算法使用了指數滑動平均(exponential moving average)操做。這也是去年的研究重點,不少研究者嘗試改良 Adam 以解決收斂差這個問題。

在 AdaBound 這篇論文中,北大等研究者代表當用 Adam 訓練的模型接近收斂時,學習率基本上由小於 0.01 的學習率和大於 1000 的學習率組成,這就代表訓練的最後階段確實存在學習率過小或太大的問題。在做者對這個現象進行深刻研究後,他們表示極端學習率確實存在潛在不良影響。算法在不解決這個問題的狀況下不可能得到很好的泛化性能,所以咱們須要以某種方法限制 Adam 在訓練後期的學習率。

鑑於這個觀察 Adam 也就能改良成 AdaBound 了。

這篇論文幹了什麼?

AdaBound 這篇論文首先對 ADAM 進行了實證研究,並說明在訓練結束時,學習率存在極大和極小兩種狀況。該結果與 Wilson 等人(2017)提出的觀點一致,後者認爲自適應方法的泛化性能較差要歸因於不穩定和極端的學習率。實際上,AMSGRAD 中的關鍵思想——引入非遞增學習率,可能有助於減輕極大學習率形成的不良影響,雖然它忽略了較小學習率的可能影響。AdaBound 論文的做者進一步提供了簡單凸優化問題的示例,以闡明自適應方法的極小學習率如何致使沒法收斂。在這種狀況下,可證實 RMSPROP 和 ADAM 沒法收斂到最優解,且無論初始步長 α 有多大,ADAM 都沒法與 scale-down term 對抗。

基於以上分析,做者提出了 ADAM 和 AMSGRAD 的新變體,分別是 ADABOUND 和 AMSBOUND,新變體不會受到極端學習率的消極影響。做者對這些自適應方法中的學習率應用了動態邊界,其中上下界被初始化爲 0 和無窮大,並且它們都能平滑收斂至恆定的最終步長。新變體在訓練初期可視爲自適應方法,而後逐漸隨着步長的增長轉化爲 SGD(或帶動量的 SGD)。使用該框架中能夠得到快速的初始訓練進程和良好的最終泛化能力。

論文:Adaptive Gradient Methods with Dynamic Bound of Learning Rate

論文地址:openreview.net/pdf?id=Bkg3…

摘要:自適應優化方法(如 AdaGrad、RMSprop、Adam)旨在經過調整學習率上的元素級縮放項來獲取快速的訓練過程。儘管這些方法很廣泛,但它們與 SGD 相比泛化性能較差,甚至會因爲不穩定和極端的學習率致使沒法收斂。近期研究提出了一些新算法(如 AMSGrad)來解決這個問題,但這些算法相比現有算法並無太大改進。這篇論文展現了極端學習率會致使性能很差。此外,該論文還提供了 Adam 和 AMSGrad 的新變體——AdaBound 和 AMSBound,它們對學習率使用動態邊界,以實現從自適應方法到 SGD 的逐步平滑過渡,爲收斂提供理論依據。做者在多個流行任務和模型上進行了實驗,而這在以前的研究中是匱乏的。實驗結果代表這些新變體可以彌合自適應方法和 SGD 之間的泛化差距,同時在訓練早期保持更高的學習速度。此外,這些新變體相比原版有巨大改進,尤爲是對於複雜深度網絡。

極端學習率致使的沒法收斂

在這部分中,研究者經過初步的實驗和嚴格的證實闡述了當前自適應方法的主要缺陷。如上所述,根據觀察結果 ADAM 這樣的自適應方法表現比 SGD 要差。Reddi 等人(2018)提出了 AMSGRAD 來解決這個問題,但最近的研究指出 AMSGRAD 並無明顯的改進。Reddi 等人表示與 ADAM 相比,AMSGRAD 的學習率更小,但他們僅認爲較大的學習率是形成 ADAM 表現糟糕的緣由。然而,較小的學習率可能也是陷阱。所以,本研究的做者認爲極大和極小學習率都是致使 ADAM 泛化能力平平的緣由。

動態邊界的自適應矩估計

這部分介紹了該研究開發的新優化方法,並提供了收斂性分析。該研究旨在設計一個最優化策略,它可以結合自適應優化方法的優點(即快速的初始化進度)和 SGD 良好的泛化性能。直觀地說,研究者但願構建一種算法,可以在訓練早期表現得像自適應方法,在訓練後期表現得像 SGD。

受梯度裁剪(一種實踐中經常使用的技術,用於裁剪大於閾值的梯度以免梯度爆炸)的啓發,本文研究者對 ADAM 中的學習率進行了裁剪,提出了 ADABOUND,如算法 2 所示。考慮在 ADAM 中應用如下操做:

經過逐元素地裁剪學習率,它使得輸出限制在 [η_l , η_u] 內。因而可知,α = α* 的 SGD(M) 可視爲 η_l = η_u = α*。至於 ADAM,它的範圍則至關於 η_l = 0 以及 η_u = ∞。如今咱們能夠經過如下步驟提供新的策略。咱們將 η_l 和 η_u 做爲 t 的函數,而不是常數的上下界,其中η_l(t) 是非遞減函數,在 t=0 時它從 0 開始,漸近收斂至 α*;η_u(t) 是非遞增函數,在 t=0 時它從 ∞ 開始,也漸近收斂至 α ∗。在這種設定下,ADABOUND 在開始表現得像 ADAM,由於上下界對學習率的影響很是小,然後面逐漸表現得像 SGD(M),由於邊界變得愈來愈受限。研究者證實了 ADABOUND 的如下關鍵結果:

不難看出 ADABOUND 的後悔值(regret)上限是 O(sqrt(T))。與 Reddi 等人(2018)的作法相似,研究者可使用更謹慎的動量衰減率 β_1t = (β_1)/t,仍確保 O( sqrt(T)) 的後悔值。值得一提的是,咱們還能夠在 AMSGRAD 中加入動態邊界。由此產生的算法 AMSBOUND 也保持了 O(sqrt(T)) 的後悔值,而收斂的證實基本與理論 4 同樣(詳見附錄 F)。在下一部分中,咱們會看到在一些已知的任務上,AMSBOUND 具備與 ADABOUND 類似的性能。

實驗

在此部分,研究者對不一樣的模型進行實證研究,將新方法與經常使用優化方法進行對比,包括 SGD(M)、ADAGRAD、ADAM 和 AMSGRAD。實驗着重於三個任務:MNIST 圖像分類任務、CIFAR-10 圖像分類任務、在 PTB 上的語言建模任務。

表 2:本文實驗所用模型概述

圖 2 展現了每一個優化方法在訓練和測試集上的學習曲線。研究者發如今訓練上,全部的算法都能達到近 100% 的準確率。而在測試上,SGD 比 ADAM 和 AMSGAD 自適應方法表現略好。

圖 2:前饋神經網絡在 MNIST 上的訓練(左)與測試(右)準確率

圖 3 中,ADABOUND 和 AMSBOUND 甚至超越了 SGDM 1%。儘管自適應方法的泛化能力相對較差,但該研究提出的方法經過爲自適應學習率分配邊界克服了這一缺陷,使得 DenseNet 和 ResNet 在 CIFAR-10 測試集上幾乎取得了最佳準確率。

圖 3:DenseNet-121 和 ResNet-34 在 CIFAR-10 上的訓練與測試準確率

而後做者在 PTB 數據集上訓練一些 LSTM,固定預算下運行 200 個 epoch。他們使用困惑度做爲性能評估的標準,結果如圖 4。

圖 4:在 PTB 上使用不一樣層的 LSTM 對比 SGD、ADAM、ADABOUND 和 AMSBOUND 困惑度曲線

匿名評審結果

這篇論文已被 ICLR 2019 接收,評審得分爲:7,4,6。

匿名評審 2 給出了 7 分,Ta 認爲做者在多個經常使用機器學習測試集中驗證了所提出 ADAM 和 AMSGrad 新變體的效果,同時對凸優化問題提供了詳細的證實,也所以 ADAM 後悔值(regret)不能收斂爲零。

但 Ta 同時認爲這篇論文中的證實仍然不夠有說服力。性能差的狀況確實存在,但這沒法說明算法的平均性能,而這在實踐中很關鍵。此外,這篇論文的驗證數據集較少,數據集規模也不夠大,該評審建議做者在較大的數據集上進行實驗,以使結果更具說服力。

做者對此迴應道,他們在 CIFAR-100 等較大數據集和其它任務上也進行了實驗,結果都很不錯。以後會把相關結果添加到論文中。

匿名評審 3 打出了 4 分(rejection)。Ta 對論文的技術細節提出了幾點質疑,主要涉及 η_u 和 η_l 的公式及結果、研究結果在其它算法上是否有一樣的效果、學習率的選擇和變化圖等方面。

匿名評審 1 給出了 6 分,Ta 認爲這篇論文提出了一個簡單的方法來避免標準自適應方法中的學習率極端行爲,但理論不足,沒法說明該方法相比標準自適應方法的優點。

reddit 討論

這篇論文在 reddit 上也引發了大量討論。

不少人對該研究表示讚揚,還有一些人詢問該研究是否針對 GAN、遷移學習進行了實驗,以及是否有 TensorFlow 實現。做者表示暫未針對 GAN 和遷移學習進行實驗,且因爲對 TensorFlow 不太瞭解,所以暫時沒有 TensorFlow 實現。

reddit 用戶 Berecursive 就實驗結果的持續性(consistent)提問:若是我將一樣的實驗運行 100 次,那麼我會獲得比較合理的訓練和測試偏差的方差分佈。一般偏差圖的形狀是一致的,可是若是你要繪製方差圖,則其範圍會因任務而變得很是寬泛。對於優化方法而言,結果的一致性也是一個重要的度量標準。

做者對此的迴應是:我在特定超參數設置下運行了 3-5 次,發如今相同設置下 AdaBound 的學習曲線很接近。以前我並不知道如何繪製方差圖,稍後會進行嘗試。此外,我在附錄 G 中就 AdaBound 的一致性問題進行了一些額外實驗研究,使用的是不一樣的超參數設置。此外,咱們還提供了 Jupyter notebook,能夠幫助可視化和復現。

此外,與匿名評審 2 相似,reddit 用戶 alper111 也對實驗用數據集 CIFAR-10 提出了質疑:使用 CIFAR-10 來測試泛化偏差有些奇怪吧?這個數據集中的樣本與訓練數據集中的樣本有很大的重複性。

論文做者對此的迴應是:CIFAR-10 是一個完備的基準數據集,徹底可使用,近似重複問題並不能改變這個事實。此外,使用 CIFAR-10 數據集方便與其它基於該數據集的結果進行對比。

相關文章
相關標籤/搜索