Adam真的是最好的優化器嗎?有人認為不過是神經網絡進化的結果 - 知乎

語言: CN / TW / HK
提到優化器,大多數人會想到 Adam。自 2015 年推出以來,Adam 一直是該領域的「王者」。但近日,波士頓大學的一位助理教授做出了一個假設,他認為 Adam 或許不是最佳的優化器,只是神經網絡的訓練使其成為了最佳。

機器之心報道,作者:杜偉、魔王。

Adam 優化器是深度學習中最流行的優化器之一。它適用於很多種問題,包括帶稀疏或帶噪聲梯度的模型。其易於精調的特性使得它能夠快速獲得很好的結果,實際上,默認的參數配置通常就能實現很好的效果。Adam 優化器結合了 AdaGrad 和 RMSProp 的優點。Adam 對每個參數使用相同的學習率,並隨着學習的進行而獨立地適應。此外,Adam 是基於動量的算法,利用了梯度的歷史信息。基於這些特徵,在選擇優化算法時,Adam 往往是「當仁不讓」。

但近日,波士頓大學助理教授 Francesco Orabona 提出了一種假設,他認為「不是 Adam 最佳,而是神經網絡的訓練使其變成最佳」。他在一篇文章中詳述了自己的假設,原文內容如下:

我從事在線和隨機優化的研究已經有段時間了。2015 年 Adam 被提出的時候,我就已經身處這個領域了。Adam 由現谷歌高級研究科學家 Diederik P. Kingma 和多倫多大學助理教授 Jimmy Ba 在論文《ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION》中提出。

Adam 算法

這篇論文很好,但算不上突破,從當前標準來看更是如此。首先,理論很脆弱:對於一種應該處理非凸函數隨機優化的算法給出了 regret guarantee。其次,實驗也很脆弱:近來完全一樣的實驗會遭到徹徹底底地拒絕。後來有人發現了證明中存在誤差,並且 Adam 算法還無法在某些一維隨機凸函數上實現收斂。儘管有着這樣那樣的問題,Adam 依然被認為是優化算法中的「王者」。

所以需要明確一點:我們都知道,Adam 不總能使你實現最佳性能,但大多數時候,人們認為可以利用 Adam 的默認參數在處理某個深度學習問題上實現至少次優的性能。換句話説,Adam 被認為是現今深度學習的默認優化器。那麼,Adam 成功的祕訣是什麼呢?

近年來,人們發表了大量論文,試圖解釋 Adam 及其性能。從「自適應學習率」(自適應什麼?沒人真的瞭解)到動量和尺度不變性,Adam 的方方面面都有了相應解讀。但是,所有這些分析並沒有給出關於其性能的最終答案

很明顯,自適應學習率等這些因素中的大多數對任何函數的優化過程都是有益的,但我們仍不清楚,為什麼這些因素按照這樣的組合形式就能使 Adam 成為最佳算法。各個要素之間的均衡如此微妙,以至於解決非收斂問題所需的微小變化也被認為會帶來比 Adam 稍差的性能。

但是,這一切的可能性有多大呢?我的意思是,Adam 真的是最好的優化算法嗎?在一個如此「年輕」的領域中,幾年前就實現最佳深度學習優化的可能性又有多大呢?對 Adam 的驚人性能是否存在另一種解釋呢?

於是,我提出了一個假設,但在解釋它之前,我們有必要簡單談談應用深度學習社區。

谷歌機器學習研究員 Olivier Bousquet 曾在一次演講中,將深度學習社區描述為一個巨型遺傳算法:社區研究人員正以半隨機的方式探索所有算法和架構的變體。在大型實驗中持續有效的算法得到保留,無效的則遭到摒棄。我們需要注意的是,這一過程似乎與論文被拒與否無關:社區太大也很活躍,好的 idea 即使被拒也能得到保留並在數月後轉變成最佳實踐,例如 Loshchilov 和 Hutter 的研究《Decoupled Weight Decay Regularization》。類似地,已發表論文中的 idea 被數百人嘗試復現,而無法復現的就被殘忍拋棄。這一過程創造出了許多啟發式方法,即在實驗中一直輸出優秀結果,但壓力也在於「一直」。的確,儘管是基於非凸公式的方法,但深度學習方法的性能非常可靠。(注意,深度學習社區對「名人」有着極大的傾向性,並非所有 idea 都能得到同等的關注……)

那這一巨型遺傳算法與 Adam 之間有什麼聯繫呢?仔細觀察深度學習社區的 idea 創造過程後,我發現了一個規律:人們創建的新架構往往優化算法是固定不變的,而大多數情況下,優化算法是 Adam。這是因為,Adam 是默認優化器。

我的假設來了:Adam 對於多年前已有的神經網絡架構來説是不錯的優化算法,於是人們一直創建 Adam 有效的新架構。我們可能看不到 Adam 無效的架構,因為這類 idea 早已被拋棄了!這類 idea 要求同時設計新架構和新的優化器,而這是非常困難的任務。也就是説,大多數情況下,社區研究人員只需改進一組參數(架構、初始化策略、超參數搜索算法等),而保持優化器為 Adam。

我確定很多人不會相信這一假設,他們會列出所有 Adam 不是最優優化算法的特定問題,比如動量梯度下降是最優優化算法。但是,我想指出兩點:

  • 我並不是在描述一個自然法則,而只是陳述社區傾向,而這一傾向可能影響了一些架構和優化器的共同演化;
  • 我有證據可以支持這一假設。

如果我的論斷為真,則我們預計 Adam 在深度神經網絡上效果優異,但在另外一些模型上效果很糟。而這的確發生了!例如,Adam 在簡單的凸和非凸問題上表現糟糕,例如 Vaswani 等人《Painless Stochastic Gradient: Interpolation, Line-Search, and Convergence Rates》中的實驗:

現在似乎到了丟棄深度神經網絡特定設置(初始化、權重、損失函數等)的時候了,Adam 失去了其適應性,其魔法一樣的默認學習率必須得到再次調整。注意,你可以將線性預測器寫成一個一層的神經網絡,但 Adam 在這種情形下表現並不好。因此,深度學習架構的所有特定選擇的演化可能是為了讓 Adam 的效果越來越好,而上述簡單問題並不具備這類特性,因此 Adam 在其中喪失了光彩。

總之,Adam 可能是最好的優化器,因為深度學習社區僅僅在探索架構 / 優化器共同搜索空間中的一小塊區域。如果真的是這樣,那麼對於一個因為專注於機器學習算法的狹窄區域而放棄凸方法的社區而言真是頗具諷刺意味。就像 Facebook 首席 AI 科學家 Yann LeCun 所言:「鑰匙掉在黑暗處,我們卻要在看得見的燈光下尋找。」

「新奇」假設引網友熱議

這位助理教授的假設在 reddit 上引發了網友熱議,但也只是給出了模稜兩可的觀點,誰也無法證明該假設是否成立。

有位網友認為該假設可能不完全正確但很有趣,並提出了進一步的觀點:Adam 與其他方法在簡單 MLP 上的表現孰優孰劣?與通用優化問題的損失表面相比,或許只是神經網絡的損失表面使得它們自然地適配 Adam。如果 Adam 在 MLP 上表現更差,那麼證據就更充足了。

另一位網友也認為存在着這種可能。Adam 推出之後的大多數論文都在使用它,人們發現的其他一些高效架構也依賴於它,對於使用 NAS 或類似方法的架構來説更是如此了。但在實踐中,很多架構也能很好地適配其他優化器。並且,現在很多新論文也在使用 Ranger 等其他優化器。此外,關於 Adam 的另一種説法是,如果它真的自適應,那我們就不需要學習率查找器(finder)和調度器(scheduler)了。

原文鏈接:https://parameterfree.com/2020/12/06/neural-network-maybe-evolved-to-make-adam-the-best-optimizer/reddit

鏈接:https://www.reddit.com/r/MachineLearning/comments/k7yn1k/d_neural_networks_maybe_evolved_to_make_adam_the/