「穿越擁擠山谷」:一次深度學習優化器大閱兵

2021-02-13 數據實戰派

圖片出處:unsplash.com

深度學習的目標是通過不斷調整網絡參數,使其能夠對輸入做各種非線性變換擬合輸出,本質上就是函數尋找最優解的過程。而優化器(optimizer)通常指的就是更新參數的算法。近年來,數百種的優化方法噴湧而出,這些大規模隨機優化方法推動著各種各樣的深度學習任務的發展。

考慮到選擇正確的優化算法並有效地調整其超參數,可能會在很大程度上影響學習模型的訓練速度和最終性能,如何選擇優化器則是深度學習中最關鍵的設計決策之一。

這並非易事。隨機優化方法一直是學術界和工業界研究的焦點,與此同時,許多從業者和研究人員在缺乏明確的理論支撐和經驗性的結果證明的情況下,決策往往基於軼聞證據 (anecdotal evidence)。

正因如此,不少從業者對這些方法的基準測試給予的極大的興趣和關注。

例如,2019 年 Schneider 等人引入了一個稱為 DEEPOBS 的基準測試框架,其中包括廣泛的現實深度學習測試問題,以及用於評估優化器的標準化程序;2020 年,Metz 等人提出了 TASKSET 框架,這是一個優化問題集關注更小但更多的測試問題。

Choi 等人 (2019) 和 Sivaprasad 等人 (2020) 都對基準過程的具體方面進行了分析。後者使用 DEEPOBS 來說明優化器的相對性能在很大程度上取決於所使用的超參數微調方法。而前者的分析剛好支持了這一點,指出 「超參數搜索空間可能是解釋排名的唯一最重要的因素。他們進一步強調了優化器間的層次關係,證明了只要有足夠的超參數調優,更通用的優化器則永遠不會被超越。

而在近期一篇發表於 arxiv 的研究中,一個研究小組針對當下特別受歡迎的深度學習優化器進行了一次 「大閱兵」:他們展開了大規模的標準化基準測試,在 8 個深度學習問題上評估了 14 個優化器,調整了幾十個超參數設置,最全面概括了優化器的各種可能的選擇。

研究人員手動收集整理了一份針對深度學習問題使用的優化器清單,稱得上是所有此類主題最詳盡的一個。

穿越擁擠的山谷

這篇名為 「Descending through a Crowded Valley -- Benchmarking Deep Learning Optimizers」(穿越擁擠的山谷 —— 深度學習優化器的基準測試)的研究中,研究小組為每個優化器手動選擇超參數搜索空間,並基於先前發布的結果、先前的經驗或預調優的試驗來測試問題。這項工作的目標很明確,在保證調整 budget 較少的情況下,識別性能良好的優化器,特別是在沒有先驗知識的情況下,比如,在特定測試問題中運行良好的超參數值。

這項工作也與自適應方法的經驗泛化研究有關,如 2017 年 Wilson 等人的研究,該研究一度引發了廣泛的討論,即自適應方法 (如 ADAM) 的泛化效果是否比標準一階方法 (如 SGD) 的更差。

誠然,不管是新的優化器的作者,還是其他從業者,都不可能將其工作與每個可能的競爭方法進行比較。考慮到通用性,研究小組評估了來自不同學科的 8 個不同的真實世界的深度學習問題的性能,從已有的 100 多個優化器中挑選出 14 個進行基準測試。

100 多個優化器列表以及挑選出 14 個優化器列表。圖片出處:arXiv

這些並不一定反映了 「最佳」 的優化算法,但都帶有明顯的特徵:要麼是業內人士和研究人員常用的,要麼是最近引起了足夠的關注和興趣的。這些優化器之間是否存在顯著差異,或者它們是否天生就是冗餘的,也是這項工作調查的問題之一。

圖 1: 每年 ArXiv 標題和摘要提及的 14 個優化器的次數對比。圖片出處:arXiv

對於每個測試問題和優化器,研究小組將評估三種不同調優 budget 和四種選定的學習速率調度器(learning rate schedules)的所有可能組合,涵蓋的組合空間可以達到 1, 344 種可能配置和大約 3, 5000 次單獨運行。

所有可能的組合圖如下:

圖片出處:arXiv

第一種 budget 只包含 1 次運行,使用原作者提供的默認值,觀察優化器的表現;其他 budget 包括 25 次和 50 次調優,分別用於所謂的小 budget 和大 budget 設置。為了降低成本和增強可行性,研究小組只使用單一的種子進行調優,然後使用不同的種子重複最佳設置 10 次。採用隨機搜索的方法對大 budget 和小 budget 的參數進行優化。

另外,為了保持配置空間的可行性,研究小組只將調度應用於學習率:

恆定的學習速率調度;

餘弦衰減作為平滑衰減的一個例子;

帶有熱重啟調度的餘弦作為循環學習率的例子;

從預熱調度中得到梯形調度。

最終,測試問題包括總結的 8 個優化任務,分別作為 「small」(P1-P4) 和 「large」(P5-P8) 問題集,共同構成默認的 DEEPOBS 集合。

實驗中使用的測試問題。圖片出處:arXiv

諸多優化器 「開箱即用」 的具體效果

通過將每個優化器的一次性結果與所有 14 個優化器的優化版本進行比較,可以構建為 14×14 的性能增益矩陣。圖 2 用 5 個測試問題說明這一點,通過正號和綠色單元格輔助顯示了改進效果。所有問題的詳細圖表均在附錄中進行呈現。

以圖 2 為例,最大矩陣的左下角單元格顯示,在這個特定問題上,使用較小 budget 調優的 AMSBOUND (1) 比使用默認參數的 SGD (14) 性能要好 2.5%。

圖 2:從未調優的優化器 (y 軸,一次性) 切換到調優的優化器 (x 軸,小 budget)。圖片出處:arXiv

圖 2 中的綠色行表示使用默認設置的優化器表現得很 「糟糕」,因為任一競爭對手通過調優都可以將其打敗。圖中可以觀察到,MOMENTUM、NAG 和 SGD 的默認設置表現不佳。

一般來說,研究小組的直覺思維是非自適應優化方法需要更多的調優,才能達到好的性能,AMSGRAD 和 ADADELTA 也是如此。不能僅僅局限在默認的參數上,這些方法很可能在具體的任務中還存在更佳的選擇。而白色和紅色行則表示性能良好的默認設置,換句話說,即使是調優的優化器也不會明顯優於此算法。

ADAM、NADAM、RADAM、以及 AMSBOUND 和 ADABOUND 在幾個測試問題上都出現了白色或紅色的行,這也就支持了經驗法則,即自適應方法具有運行良好的默認參數。相反,綠色 (或紅色) 列突出顯示,這些優化器在經過調優後比所有未調優的優化方法性能更好 (或更差)。研究小組並沒有在不同的任務中一致地觀察到這些列。

這就支持了以下結論:優化器的性能嚴重依賴於具體的問題,不存在跨工作負載的單一最佳優化器。

那麼,調優和調度又有多大幫助?

研究小組考慮通過改變 budget 和調度實現的最終性能,以量化調優和應用無參數調度的有用性。

圖 3:灰色線條 (—),用三次樣條曲線進行平滑,僅用於視覺引導) 顯示了在所有 8 個測試問題上,14 個優化器在某個調優和調度方面的相對改進 (與沒有調度的一次性調優相比)。所有線條的中間值以橙色 (—) 繪製,陰影區域 (T) 表示第 25 和第 75 百分位之間的區域。圖片出處:arXiv

如圖 3 所示,雖然沒有為任何單獨個體設置的明確趨勢 (灰色線),但在中間值中,研究小組觀察到儘管收益存在遞減,然而增加 budget 確實會提高性能。例如,使用沒有任何調度的大 budget 與沒有調度的默認參數相比,平均相對性能提高了大約 3.3%。

類似地,應用無參數調度 (即未調優) 也可以提高中值性能。例如,與默認參數相比,大型調優 budget 加上梯形學習率調度對中值的改進提升大約 5.3%。然而,儘管這些趨勢保持在中間值,個體效應在優化器和測試問題之間仍變化很大,從圖 3 中表示個體的灰色線的噪聲結構中可以明顯看出這一點。

研究價值及未來方向

論文最後,研究小組再次強調的是,面對開發新的隨機優化方法的大量研究,從業者面臨著一項幾乎不可能完成的任務:不僅要從這個不斷增長的列表中選擇一種方法,而且還要猜測或調整它們的超參數,甚至在優化過程中不斷調整它們。儘管社區做出了努力,但目前還沒有一種方法可以明顯地主導競爭。

而他們的這項研究,有望為深度學習的優化方法提供一個較廣泛的基準。

通過分析成千上萬次的優化器運行,他們給出了以下三點總結:

(1)在不同的任務中,優化器的性能有很大的差異;

(2)用默認超參數評估多個優化器的工作方式與為固定優化器調整超參數的工作方式的效果大致相同;

(3)雖然沒有清楚辨別出在所有測試的工作負載中明顯佔主導地位的優化器,但測試的一些算法表現出高度可變的性能,通常會在實驗中產生有競爭力的結果。

這揭示了這一擁擠賽道上的整體趨勢:首先,儘管許多方法的性能具備競爭力,但總有一部分方法會在整個問題範圍上表現出色,處於領先地位。

其次,調優和嘗試其它優化器同樣有用。研究小組所有的實驗結果都進行了開源,提供具有挑戰性和良好調優的基線,有助於在評估新的優化方法時進行更有意義的比較,而不需要任何進一步的計算工作,為後續更有意義的、非增量的研究提供動力。

當然,研究小組的開放數據集也將允許更多技術性的觀察,例如,重新運行的穩定性就是一個經常被忽視的挑戰。與使用不同的隨機種子重新調優或簡單地重新運行單一方法相比,不同優化器的性能分布驚人相似。因此,如果未來還有新的方法在概念和功能上接近現有方法的話,其發展究竟能帶來多少前瞻性的見解是值得深究的。

研究小組表示,希望像這樣的基準工作能夠推動社區超越局限,發明出更好的優化器,且更專注於關鍵挑戰,比如實現真正強有力且高效的自動內循環調優。

[1]論文:DESCENDING THROUGH A CROWDED VALLEY — BENCHMARKING DEEP LEARNING OPTIMIZERS:https://arxiv.org/pdf/2007.01547.pdf

關於數據實戰派

數據實戰派希望用真實數據和行業實戰案例,幫助讀者提升業務能力,共建有趣的大數據社區。

相關焦點

  • [機器學習基礎二] 深度學習優化器一覽
    本文為機器學習基礎 第二篇Hello大家好,本期將和大家一起分享和討論一下深度學習中的一個基礎組件:Optimizer,也就是優化器。
  • 可以丟掉SGD和Adam了,新的深度學習優化器Ranger:RAdam + LookAhead強強結合
    Lookahead 是 Ranger 優化器的其中一半,是由著名的深度學習研究員 Geoffrey Hinton 在 2019 年 7 月的一篇新論文「LookAhead optimizer: k steps forward, 1 step back「中介紹的。LookAhead 的靈感來自於最近在理解神經網絡損失曲面方面的進展,並提出了一種全新的穩定深度學習訓練和收斂速度的方法。
  • 最強深度學習優化器Ranger開源:RAdam+LookAhead強強結合,性能更優速度更快
    AI 前線導讀:Ranger 優化器將 RAdam 與 Lookahead 這兩大新興成果加以結合,共同構建起一套用於深度學習的優化器。為了證明其功效,本文作者團隊最近利用 Ranger 優化器捕捉了 FastAI 全球排行榜上的 8 項上榜記錄。
  • 自Adam 出現以來,深度學習優化器發生了什麼變化?
    :Phúc Lê機器之心編譯參與:高璇、王淑婷Adam 自出道以來,就一直是最流行的深度學習優化器Super-Convergence: Very Fast Training of Neural Networks Using Large Learning Rates》)這個來自 Andrej Karpathy 的笑話或多或少是我深度學習項目的一套流程
  • 深度學習優化器算法詳解:梯度更新規則+缺點+如何選擇
    文 | 不會停的蝸牛CSDN AI專欄作家在很多機器學習和深度學習的應用中,我們發現用的最多的優化器是
  • SGD、Adam優化器
    2.梯度下降法調優梯度下降法就好比一個蒙著眼睛的人下山,每次在負梯度最大的方向,向前走一步,走出一步後,比較前後的的落差,若落差小於一定閾值,則認為到達山谷,若落差大於閾值,則繼續向前走,直到到達山谷。在梯度下降法中調優比較重要的是3個因素,步長、初始值、歸一化(1)步長:又稱學習率,決定了在梯度下降迭代的過程中,每一步沿梯度負方向前進的長度。
  • 優化器怎麼選?一文教你選擇適合不同ML項目的優化器
    優化器是深度學習領域的重要組成模塊之一,執行深度學習任務時採用不同的優化器會產生截然不同的效果。這也是研究者們不遺餘力「煉丹」的原因之一。常見的優化算法包括梯度下降(變體 BGD、SGD 和 MBGD)、Adagrad、Adam、Momentum 等,如此繁多的優化器應該如何做出抉擇呢?
  • 在機器學習項目中該如何選擇優化器
    介紹為你的機器學習項目選擇一個好的優化器是非常困難的。熱門的深度學習庫,如PyTorch或TensorFlow,提供了廣泛的優化器的選擇,不同的優化器,每個都有自己的優缺點。它由兩個主要段落組成:在第一部分,我將向你快速介紹最常用的優化器。在第二部分中,我將為你提供一個三步計劃來為你的項目選擇最好的優化器。一些最常用的優化器在深度學習中,幾乎所有流行的優化器都基於梯度下降。這意味著他們反覆估計給定的損失函數L的斜率,並將參數向相反的方向移動(因此向下爬升到一個假設的全局最小值)。
  • 光伏功率優化器應用效果深度分析
    光伏功率優化器應用效果深度分析 本文以山東某2MW山地電站為例,就光伏功率優化器應用效果進行分析。在安裝豐郅光伏功率優化器後,優化區域發電量提升92%,平均每個組串每天多發電7.07度。該電站組件間間距不足形成遮擋,周圍樹木和電線桿也對部分組件形成遮擋,因為是山地電站,不同組串採光也有差異。
  • Adam真的是最好的優化器嗎?有人認為不過是神經網絡進化的結果
    但近日,波士頓大學的一位助理教授做出了一個假設,他認為 Adam 或許不是最佳的優化器,只是神經網絡的訓練使其成為了最佳。Adam 優化器是深度學習中最流行的優化器之一。它適用於很多種問題,包括帶稀疏或帶噪聲梯度的模型。其易於精調的特性使得它能夠快速獲得很好的結果,實際上,默認的參數配置通常就能實現很好的效果。
  • 那些年「號稱」要超越Adam的優化器
    近日一篇NeurIPS 2020 Spotlight論文引起了深度學習社區的關注,這篇論文來自耶魯大學、伊利諾伊大學香檳分校等研究機構,提出了一種全新的深度學習優化器AdaBelief,論文一開頭就亮出了自己的三個招牌:3.保證一定的訓練穩定性,可以提升GAN網絡的訓練效果。
  • 要得到最強的優化器,只需要把RAdam和LookAhead合二為一
    雷鋒網 AI 科技評論按:今年 7 月,「深度學習教父」Geoffrey Hinton 和他的團隊發表了一篇關於深度神經網絡優化器的論文,介紹了一種新的優化器「LookAhead」 (《LookAhead optimizer: k steps forward, 1 step back》,https://arxiv.org/abs/1907.08610)。
  • 【DL知識拾貝】Pytorch版本第三篇:優化器大匯總
    前言當目標函數確定後,深度學習的訓練任務就是最小化目標函數,也就是這裡所說的優化方法(優化器)。其實,任何最大化問題都可以很容易地轉化為最小化問題,只需令目標函數的相反數為新的目標函數即可。深度學習中絕大多數目標函數都很複雜。
  • PyTorch 學習筆記(七):PyTorch的十個優化器
    項目代碼:https://github.com/tensor-yu/PyTorch_Tutorial系列回顧:PyTorch提供了十種優化器,在這裡就看看都有哪些優化器。參數:params(iterable)- 參數組(參數組的概念請查看 3.2 優化器基類:Optimizer),優化器要管理的那部分參數。lr(float)- 初始學習率,可按需隨著訓練過程不斷調整學習率。
  • 深度學習100問-11:什麼是學習率衰減?
    深度學習100問Author:louwillMachine Learning
  • 使用Python從頭開始實現深度學習庫
    理解深度學習平臺基本構建基礎的初學者指南。深度學習已在短時間內從簡單的神經網絡演變為非常複雜的架構。為了支持這種快速擴展,在此過程中開發了許多不同的深度學習平臺和庫。這些庫的主要目標之一是提供用於構建和訓練深度學習模型的易於使用的界面,使用戶可以將更多的精力放在手頭的任務上。
  • 重磅盤點:過去8年中深度學習最重要的想法
    在深度學習領域,很多技術都可以跨域多個應用領域,包括計算機視覺,自然語言,語音識別和強化學習等等。在計算機視覺領域使用過深度學習的人,可能很快就能將類似的技術應用到自然語言研究中,即使特定的網絡結構有所不同,但其概念,實現方法和代碼基本一致。
  • 4K電影《大閱兵·2019》葡語版登陸安哥拉 引發熱烈反響
    當地時間11月3日下午5點,中央廣播電視總臺製作的葡語版4K電影《大閱兵·2019》在安哥拉最大的商業電視臺貝殼電視臺的周日黃金時段首播,這也是該電影在非洲大陸的首映
  • 2012年至今,細數深度學習領域這些年取得的經典成果
    該論文也被視作深度學習領域的經典之作。從原理來看,深度學習與神經網絡緊密相關:神經網絡由一層一層的神經元構成,層數越多,神經網絡越深,而所謂「深度學習」就是模擬人類大腦,運用深層神經網絡對輸入進行「思考」、「分析」並獲得目標輸出的過程。
  • 從頭開始構建最先進的深度學習模型
    導讀:近日,Fast.ai 發布一門新課程——從零開始學深度學習(Deep Learning from the Foundations),該課程由 Jeremy Howard 教授,展示了如何從頭開始構建最先進的深度學習模型。