由北大、浙大兩位本科生為主開發(fā)的AdaBound算法,速度與Adam不相上下,性能媲美SGD,近期被ICLR 2019收錄,網(wǎng)友驚呼太酷太強(qiáng)大。昨天,論文的第一作者、北大大四學(xué)生駱梁宸向新智元進(jìn)行了詳細(xì)解讀。
本科生又一次刷新了AI的新成績(jī)。
最近,來(lái)自北大和浙大的兩位大四學(xué)生,開發(fā)了一種名為AdaBound的算法,能夠?qū)崿F(xiàn)更快的訓(xùn)練速度和更好的性能,速度與Adam不相上下,性能媲美SGD。
AdaBound算法相關(guān)論文Adaptive Gradient Methods with Dynamic Bound of Learning Rate已經(jīng)被AI頂會(huì) ICLR 2019收錄。
值得一提的是,論文一作第一次在GitHub上公布AdaBound代碼之后,就獲得了300多贊,評(píng)論中無(wú)數(shù)人感嘆:實(shí)在是太酷了!
昨天,論文一作、北京大學(xué)的駱梁宸向新智元解讀了AdaBound算法。
以下是他的分享:
AdaBound算法:像Adam一樣快,又像SGD一樣好的優(yōu)化器
以隨機(jī)梯度下降 (SGD) 為代表的一階優(yōu)化算法自上世紀(jì)50年代被提出以來(lái),在機(jī)器學(xué)習(xí)領(lǐng)域被廣泛使用,如今也是我們訓(xùn)練模型時(shí)最為常用的工具。
但是,由于SGD在更新參數(shù)時(shí)對(duì)各個(gè)維度上梯度的放縮是一致的,這有可能導(dǎo)致訓(xùn)練速度緩慢,并且在訓(xùn)練數(shù)據(jù)分布極不均很時(shí)訓(xùn)練效果很差。為了解決這一問(wèn)題,近些年來(lái)涌現(xiàn)了許多自適應(yīng)學(xué)習(xí)方法,包括 Adam、AdaGrad、RMSprop 等。其中 Adam 由于其快速的收斂速度,成為了如今最流行的 Optimizer 之一。
然而,在許多最新的State of The Art 中,研究者們沒有使用新穎流行的自適應(yīng)學(xué)習(xí)方法,而是仍然使用“過(guò)時(shí)的” SGD 或是其 +momentum 和 +nesterov 變種,這是為什么呢?事實(shí)上,Wilson 等人在其NeurIPS 2017的研究中指出,自適應(yīng)方法雖然可以在訓(xùn)練早期展現(xiàn)出快速的收斂速度,但其在測(cè)試集上的表現(xiàn)卻會(huì)很快陷入停滯,并最終被 SGD 超過(guò)。
ICLR 2018的最佳論文中,作者提出了名為 AMSGrad 的新方法試圖更好的避免這一問(wèn)題,然而他們只提供了理論上的收斂性證明,而沒有在實(shí)際數(shù)據(jù)的測(cè)試集上進(jìn)行試驗(yàn)。而后續(xù)的研究者在一些經(jīng)典 benchmarks 比較發(fā)現(xiàn),AMSGrad 在未知數(shù)據(jù)上的最終效果仍然和 SGD 有可觀的差距。
我們每個(gè)人都希望在訓(xùn)練模型時(shí)可以收斂的又快又好,但似乎目前來(lái)看我們很難同時(shí)做到這兩點(diǎn),或者至少我們需要對(duì)現(xiàn)有優(yōu)化算法的超參數(shù)進(jìn)行精細(xì)的調(diào)整。機(jī)器學(xué)習(xí)和深度學(xué)習(xí)社區(qū)如今非常需要一個(gè)像 Adam 一樣快,又像 SGD 一樣好的優(yōu)化器。
關(guān)鍵點(diǎn):限制極大和極小的實(shí)際學(xué)習(xí)率
最早的對(duì)各類流行的自適應(yīng)學(xué)習(xí)器和 SGD 進(jìn)行系統(tǒng)的比較分析的工作來(lái)自上文提及的 Wilson 等,在他們的文章中,首次用系統(tǒng)的實(shí)驗(yàn)和樣例問(wèn)題指出了自適應(yīng)方法的性能問(wèn)題。Wilson 等同時(shí)猜測(cè),自適應(yīng)方法較差的泛化性能有可能是來(lái)源于訓(xùn)練后期不穩(wěn)定的極端學(xué)習(xí)率。然而,他們并沒有給出更多關(guān)于這一猜測(cè)的原因,包括理論分析或?qū)嶒?yàn)。
沿著這一思路,在Adaptive Gradient Methods with Dynamic Bound of Learning Rate 這篇文章中,作者首先進(jìn)行了初步的實(shí)驗(yàn)來(lái)作參考:他們?cè)?ResNet-34 中隨機(jī)選取了 9 個(gè)卷積核和 1 個(gè)全連接層偏置向量,并從中再各隨機(jī)取樣一個(gè)維度的變量,統(tǒng)計(jì)其在 CIFAR-10 上訓(xùn)練末期的學(xué)習(xí)率。
采樣參數(shù)的學(xué)習(xí)率。每個(gè)單元格包含一個(gè)通過(guò)對(duì)學(xué)習(xí)率進(jìn)行對(duì)數(shù)運(yùn)算得到的值。顏色越淺的單元格代表越小的學(xué)習(xí)率。
我們可以看到,當(dāng)模型接近收斂時(shí),學(xué)習(xí)率中有大量的極端值(包含許多小于 0.01 和大于 1000 的情況)。這一現(xiàn)象表明在實(shí)際訓(xùn)練中,極端學(xué)習(xí)率是實(shí)際存在的。
而還有兩個(gè)關(guān)鍵問(wèn)題沒有明確:
(1) 過(guò)小的學(xué)習(xí)率是否真的對(duì)模型收斂產(chǎn)生不良影響?
(2) 實(shí)際的學(xué)習(xí)率很大程度上取決于初始學(xué)習(xí)率的設(shè)定,我們可不可以通過(guò)設(shè)定一個(gè)較大的學(xué)習(xí)率還避免這一影響呢?
于是,作者繼續(xù)給出了理論證明:
這一結(jié)果表明了極端學(xué)習(xí)率的潛在負(fù)面影響,在有效解決這一問(wèn)題之前,我們很可能無(wú)法使用自適應(yīng)學(xué)習(xí)器得到足夠好的最終模型;需要設(shè)法對(duì)訓(xùn)練末期 Adam 的學(xué)習(xí)率做出限制。
AdaBound:對(duì)學(xué)習(xí)率進(jìn)行動(dòng)態(tài)裁剪
為了解決這一問(wèn)題,我們希望能有一種優(yōu)化器可以結(jié)合 Adam 和 SGD 的優(yōu)勢(shì),即分別是訓(xùn)練早期快速的收斂速度和訓(xùn)練末期好的最終性能。或者直觀的形容,我們希望它在訓(xùn)練早期像 Adam,而在訓(xùn)練末期更像 SGD。
基于這一思路,作者通過(guò)對(duì)學(xué)習(xí)率進(jìn)行動(dòng)態(tài)裁剪,提出了 Adam 和 AMSGrad 的變種,AdaBound 和 AMSBound。這一方法受到在工程實(shí)現(xiàn)中非常常用的梯度裁剪技術(shù)的啟發(fā)。只不過(guò)這時(shí)裁剪發(fā)生在學(xué)習(xí)率而非梯度上。考慮如下的裁剪操作:
其中 Clip 可以將實(shí)際學(xué)習(xí)率限制在下界和上界?
之間。很容易發(fā)現(xiàn),SGD 和 Adam 分別是應(yīng)用梯度裁剪的特殊情況:學(xué)習(xí)率為?
的 SGD 可視為
;Adam 可視為
,?
。其他取值則介于兩者之間。那么,如果用兩個(gè)關(guān)于 t 的函數(shù)來(lái)取代固定值作為新的上下界,其中
從 0 逐漸收斂至
,
從
也逐漸收斂至
在這一設(shè)置下,在訓(xùn)練早期由于上下界對(duì)學(xué)習(xí)率的影響很小,算法更加接近于 Adam;而隨著時(shí)間增長(zhǎng)裁減區(qū)間越來(lái)越收緊,模型的學(xué)習(xí)率逐漸趨于穩(wěn)定,在末期更加貼近于 SGD。AMSBound 可以對(duì) AMSGrad 采用類似的裁剪得到。
實(shí)驗(yàn)結(jié)果
作者將 AdaBound/AMSBound 和其他經(jīng)典的學(xué)習(xí)器在一些 benchmarks 上進(jìn)行了實(shí)驗(yàn)驗(yàn)證,包括:SGD (或 momentum 變種)、AdaGrad、Adam、AMSGrad。以下是作者在論文中提供的學(xué)習(xí)曲線。
可以看到,在幾項(xiàng) CV 和 NLP 的 benchmark 任務(wù)中,AdaBound/AMSBound 都在訓(xùn)練前期可以快速且平滑收斂的情況下,同時(shí)在末期得到了優(yōu)秀的最終性能,可以取得與 SGD 類似甚至更好的結(jié)果。
額外驚喜:對(duì)超參數(shù)更低的敏感性
AdaBound還帶給我們一個(gè)額外驚喜:它對(duì)超參數(shù)相對(duì)更不敏感,尤其是和 SGD(M) 比較。這一結(jié)果是非常意外也非常讓人驚喜的,因?yàn)檫@意味著AdaBound 有更高的魯棒性。通過(guò)使用這一新型優(yōu)化器,我們可能大大節(jié)省花在調(diào)整超參數(shù)上的時(shí)間。在常見的情形下,使用其默認(rèn)參數(shù)即可取得相對(duì)優(yōu)秀和穩(wěn)定的最終結(jié)果。
當(dāng)然,作者也同樣指出,盡管 AdaBound 相對(duì) SGD 更加穩(wěn)定,但這并不意味著我們可以一勞永逸再也不需要調(diào)整超參了,機(jī)器學(xué)習(xí)沒有銀彈。一個(gè)模型的最終結(jié)果取決于方方面面的因素,我們?nèi)匀恍枰Y(jié)合具體問(wèn)題和數(shù)據(jù)特征具體分析,對(duì) AdaBound 做出合適的調(diào)整。而 AdaBound 最大的優(yōu)勢(shì)在于,你很可能用在這上邊的時(shí)間會(huì)比以前少很多!
代碼已在GitHub開源
AdaBound 的 PyTorch 實(shí)現(xiàn)已經(jīng)在 GitHub 上開源。作者同樣提供了可以簡(jiǎn)單只用 pip 安裝的版本,大家可以像使用其他任何一種 PyTorch optimizer 一樣使用 AdaBound。
此外,作者還提供了一個(gè)非常方便的可視化 Jupyter notebook 并提供了相應(yīng)的訓(xùn)練代碼,方便感興趣的同學(xué)復(fù)現(xiàn)和直觀比較新優(yōu)化器的結(jié)果。
論文地址:
https://openreview.net/pdf?id=Bkg3g2R9FX
GitHub地址:
https://github.com/Luolc/AdaBound
以上就是作者的解讀。
這個(gè)工作也在Reddit機(jī)器學(xué)習(xí)社區(qū)引起熱議,不少人表示非常cool,也有人提出建議和疑問(wèn):有沒有TensorFlow實(shí)現(xiàn)?能不能在更大的數(shù)據(jù)集工作?在GAN上的結(jié)果如何等等。
作者后來(lái)在Reddit帖子更新中表示:
正如許多人以及評(píng)審人員所建議的那樣,在更多、更大的數(shù)據(jù)集上,使用更多模型測(cè)試AdaBound會(huì)更好,但很不幸,我只有有限的計(jì)算資源。我?guī)缀醪豢赡茉贗mageNet這樣的大型基準(zhǔn)上進(jìn)行實(shí)驗(yàn)。如果誰(shuí)能在更大的基準(zhǔn)上測(cè)試AdaBound,并告訴我它的缺點(diǎn)或bug,那就太好了!這對(duì)于改進(jìn)AdaBound和進(jìn)一步的工作很有幫助。
我相信在計(jì)算機(jī)科學(xué)領(lǐng)域沒有什么靈丹妙藥。這并不意味著使用AdaBound你就不用調(diào)參了。模型的性能取決于很多東西,包括任務(wù)、模型結(jié)構(gòu)、數(shù)據(jù)分布等等。你仍然需要根據(jù)具體情況決定使用哪些超參數(shù),但是在這上面花的時(shí)間可以比以前少很多!
這是我第一次研究?jī)?yōu)化方法。由于這是一個(gè)由本科生、并且對(duì)這個(gè)領(lǐng)域來(lái)說(shuō)完全是新人的團(tuán)隊(duì)做的項(xiàng)目,我相信AdaBound非常需要進(jìn)一步的改進(jìn)。我會(huì)盡我最大的努力把它做好。再次感謝大家的建設(shè)性意見!這對(duì)我有很大的幫助。
-
算法
+關(guān)注
關(guān)注
23文章
4695瀏覽量
94618 -
AI
+關(guān)注
關(guān)注
87文章
34001瀏覽量
275103 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8487瀏覽量
133991
原文標(biāo)題:北大95后學(xué)霸親述:AI新算法媲美SGD,這是我第一次研究?jī)?yōu)化方法
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
汽車技術(shù)發(fā)展進(jìn)程中的又一次革命

電子信息的本科生考研選擇
本科生課程設(shè)計(jì)-數(shù)字電子鐘
請(qǐng)問(wèn)本科生想做FPGA相關(guān)項(xiàng)目,去哪里找項(xiàng)目比較好?
本科生應(yīng)該學(xué)習(xí)FPJA哪一方面?
工程電路分析電子教材國(guó)外本科生教材免費(fèi)下載

智能音箱又一次迎來(lái)發(fā)展熱潮,各大巨頭聚焦兒童智能音箱市場(chǎng)
巨虧之后的聯(lián)建光電,開啟了一次又一次的“瘦身”行動(dòng)
人工智能專業(yè)本科生入學(xué),專業(yè)培養(yǎng)瞄向“大師級(jí)”
我國(guó)核電站控制系統(tǒng)又一次重大升級(jí)
微軟開發(fā)了一種新的AI圖像字幕算法
一箭41顆星,刷新我國(guó)一次發(fā)射衛(wèi)星數(shù)量最多的紀(jì)錄
BitEnergy AI公司開發(fā)出一種新AI處理方法
第一次給本科生講課,從孩子們身上我看到了祖國(guó)未來(lái)希望

評(píng)論