2018 年 12 月 21 日,ICLR 2019 論文接收結果揭曉。據統計,ICLR 2019 共收到 1591 篇論文投稿,相比去年的 996 篇增長了 60%。ICLR 2019 共接收論文 500 篇,其中 oral 論文 24 篇、poster 論文 476 篇。
今天,我們發現了一篇有趣的論文,該研究提出了一種新型優化方法 AdaBound,「和 Adam一樣快、和 SGD一樣好」。據瞭解,四位作者 Liangchen Luo、Yuanhao Xiong、Yan Liu、Xu Sun 均來自國內。共同一作駱樑宸和 Yuanhao Xiong 分別來自北京大學和浙江大學,Yan Liu 來自南加州大學,Xu Sun 來自北京大學。而且一作駱樑宸是北京大學的本科生……(長江後浪推前浪嚶 :)
作者在 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。
為什麼 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 展示了每個優化方法在訓練和測試集上的學習曲線。研究者發現在訓練上,所有的演算法都能達到近 100% 的準確率。而在測試上,SGD 比 ADAM 和 AMSGAD 自適應方法表現略好。
圖 3 中,ADABOUND 和 AMSBOUND 甚至超越了 SGDM 1%。儘管自適應方法的泛化能力相對較差,但該研究提出的方法通過為自適應學習率分配邊界克服了這一缺陷,使得 DenseNet 和 ResNet 在 CIFAR-10 測試集上幾乎取得了最佳準確率。
然後作者在 PTB 資料集上訓練一些 LSTM,固定預算下執行 200 個 epoch。他們使用困惑度作為效能評估的標準,結果如圖 4。
匿名評審結果
這篇論文已被 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 資料集方便與其它基於該資料集的結果進行對比。