圖片出處:unsplash.com
深度學習的目標是通過不斷調整網絡參數,使其能夠對輸入做各種非線性變換擬合輸出,本質上就是函數尋找最優解的過程。而優化器(optimizer)通常指的就是更新參數的算法。近年來,數百種的優化方法噴湧而出,這些大規模隨機優化方法推動著各種各樣的深度學習任務的發展。
考慮到選擇正確的優化算法並有效地調整其超參數,可能會在很大程度上影響學習模型的訓練速度和最終性能,如何選擇優化器則是深度學習中最關鍵的設計決策之一。
這並非易事。隨機優化方法一直是學術界和工業界研究的焦點,與此同時,許多從業者和研究人員在缺乏明確的理論支撐和經驗性的結果證明的情況下,決策往往基於軼聞證據 (anecdotal evidence)。
正因如此,不少從業者對這些方法的基準測試給予的極大的興趣和關注。
例如,2019 年 Schneider 等人引入了一個稱為 DEEPOBS 的基準測試框架,其中包括廣泛的現實深度學習測試問題,以及用於評估優化器的標準化程序;2020 年,Metz 等人提出了 TASKSET 框架,這是一個優化問題集關注更小但更多的測試問題。
Choi 等人 (2019) 和 Sivaprasad 等人 (2020) 都對基準過程的具體方面進行了分析。後者使用 DEEPOBS 來說明優化器的相對性能在很大程度上取決於所使用的超參數微調方法。而前者的分析剛好支持了這一點,指出 「超參數搜索空間可能是解釋排名的唯一最重要的因素。他們進一步強調了優化器間的層次關係,證明了只要有足夠的超參數調優,更通用的優化器則永遠不會被超越。
而在近期一篇發表於 arxiv 的研究中,一個研究小組針對當下特別受歡迎的深度學習優化器進行了一次 「大閱兵」:他們展開了大規模的標準化基準測試,在 8 個深度學習問題上評估了 14 個優化器,調整了幾十個超參數設置,最全面概括了優化器的各種可能的選擇。
研究人員手動收集整理了一份針對深度學習問題使用的優化器清單,稱得上是所有此類主題最詳盡的一個。
穿越擁擠的山谷
這項工作也與自適應方法的經驗泛化研究有關,如 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
關於數據實戰派
數據實戰派希望用真實數據和行業實戰案例,幫助讀者提升業務能力,共建有趣的大數據社區。