反對(duì)李沐大佬:反向用隨機(jī)梯度下降來(lái)優(yōu)化人生
點(diǎn)擊關(guān)注公眾號(hào),干貨及時(shí)送達(dá)
沐神對(duì)本回答的評(píng)論,hhh

看完李沐老師的文章 亞馬遜首席李沐 | 用隨機(jī)梯度下降來(lái)優(yōu)化人生,深受感慨,本人閱讀大量文獻(xiàn),提出了下面“反向用隨機(jī)梯度下降來(lái)優(yōu)化人生“的方案。下文與李沐老師的文章一一對(duì)應(yīng),李沐老師的放在了引用塊里。
不是很懂優(yōu)化這塊,歡迎批評(píng)指點(diǎn)。
李沐:目標(biāo)要大。不管是人生目標(biāo)還是目標(biāo)函數(shù),你最好不要知道最后可以走到哪里。如果你知道,那么你的目標(biāo)就太簡(jiǎn)單了,可能是個(gè)凸函數(shù)。你可以在一開始的時(shí)候給自己一些小目標(biāo),例如期末考個(gè)80分,訓(xùn)練一個(gè)線性模型。但接下來(lái)得有更大的目標(biāo),財(cái)富自由也好,100億參數(shù)的變形金剛也好,得足夠一顆賽艇。
反向:目標(biāo)要小而具體。如果目標(biāo)過(guò)大,很容易導(dǎo)致因?yàn)樵肼曔^(guò)大,獎(jiǎng)勵(lì)過(guò)于稀疏而發(fā)散[1]。收斂情況很好的,往往是圖片分類這種目標(biāo)非常明確而具體的。比如真實(shí)機(jī)器人面臨的搜索空間很大的任務(wù),很容易發(fā)散[2]。
李沐:堅(jiān)持走。不管你的目標(biāo)多復(fù)雜,隨機(jī)梯度下降都是最簡(jiǎn)單的。每一次你找一個(gè)大概還行的方向(梯度),然后邁一步(下降)。兩個(gè)核心要素是方向和步子的長(zhǎng)短。但最重要的是你得一直走下去,能多走幾步就多走幾步。
反向:該放棄時(shí)就要放棄。一個(gè)簡(jiǎn)單也很有效的解決梯度策略發(fā)散的技巧就是拋棄過(guò)大的梯度[3]。如果遇到很大的梯度還不選擇拋棄,很容易會(huì)導(dǎo)致發(fā)散的結(jié)果。另外一種解釋是,很多場(chǎng)合訓(xùn)練幾個(gè)epoch就能發(fā)現(xiàn)梯度越來(lái)越大,這時(shí)候一定要停下來(lái)檢查數(shù)據(jù),不然一晚上過(guò)后只能得到一個(gè)nan的結(jié)果。
李沐:痛苦的卷。每一步里你都在試圖改變你自己或者你的模型參數(shù)。改變帶來(lái)痛苦。但沒(méi)有改變就沒(méi)有進(jìn)步。你過(guò)得很痛苦不代表在朝著目標(biāo)走,因?yàn)槟憧赡茏叻戳恕5^(guò)得很舒服那一定在原地踏步。需要時(shí)刻跟自己作對(duì)。
反向:拒絕內(nèi)卷。優(yōu)化有兩種模式,一種很陡峭曲折的(比較艱難,對(duì)應(yīng)內(nèi)卷),一種是比較平滑的(比較輕松,對(duì)應(yīng)佛系和不卷)。這里我引用一篇頂會(huì)論文中[4]的可視化結(jié)果,

那么究竟是(a)好呢,還是(b)好呢?想必大家已經(jīng)猜到了,(b)這種優(yōu)化模式要遠(yuǎn)遠(yuǎn)好于(a),錯(cuò)誤率小兩倍多(錯(cuò)誤率:(b)5.89%,(a)13.31%)。因此,大家一定要學(xué)會(huì)拒絕內(nèi)卷,保護(hù)自己平滑的優(yōu)化過(guò)程。
李沐: 四處看看。每一步走的方向是你對(duì)世界的認(rèn)識(shí)。如果你探索的世界不怎么變化,那么要么你的目標(biāo)太簡(jiǎn)單,要么你困在你的舒適區(qū)了。隨機(jī)梯度下降的第一個(gè)詞是隨機(jī),就是你需要四處走走,看過(guò)很多地方,做些錯(cuò)誤的決定,這樣你可以在前期邁過(guò)一些不是很好的舒適區(qū)。
反向:別走太遠(yuǎn)。正則化是深度學(xué)習(xí)乃至機(jī)器學(xué)習(xí)中非常常見的技巧,要想取得好的收斂效果,往往需要加以約束,不能走得太遠(yuǎn)[3]。
李沐: 贏在起點(diǎn)。起點(diǎn)當(dāng)然重要。如果你在終點(diǎn)附近起步,可以少走很多路。而且終點(diǎn)附近的路都比較平,走著舒服。當(dāng)你發(fā)現(xiàn)別人不如你的時(shí)候,看看自己站在哪里。可能你就是運(yùn)氣很好,贏在了起跑線。如果你跟別人在同一起跑線,不見得你能做更好。
反向:起點(diǎn)不重要。Facebook的一篇論文[5]用大量實(shí)驗(yàn)事實(shí)證明,接受預(yù)訓(xùn)練的模型,雖然一開始會(huì)好一些,但是后面跟隨機(jī)初始化的模型相差無(wú)幾。有實(shí)驗(yàn)結(jié)果圖為證:

李沐: 很遠(yuǎn)也能到達(dá)。如果你是在隨機(jī)起點(diǎn),那么做好準(zhǔn)備前面的路會(huì)非常不平坦。越遠(yuǎn)離終點(diǎn),越人跡罕見。四處都是懸崖。但隨機(jī)梯度下降告訴我們,不管起點(diǎn)在哪里,最后得到的解都差不多。當(dāng)然這個(gè)前提是你得一直按照梯度的方向走下去。如果中間梯度炸掉了,那么你隨機(jī)一個(gè)起點(diǎn),調(diào)整步子節(jié)奏,重新來(lái)。
反向:太遠(yuǎn)就到不了了。如果間隔時(shí)間太長(zhǎng),獎(jiǎng)勵(lì)函數(shù)的折損會(huì)非常嚴(yán)重,這會(huì)嚴(yán)重影響強(qiáng)化學(xué)習(xí)的成功率。這也是為什么現(xiàn)在強(qiáng)化學(xué)習(xí)仍然只是在模擬器中成功。

李沐:簡(jiǎn)單最好。當(dāng)然有比隨機(jī)梯度下降更復(fù)雜的算法。他們想每一步看想更遠(yuǎn)更準(zhǔn),想步子邁最大。但如果你的目標(biāo)很復(fù)雜,簡(jiǎn)單的隨機(jī)梯度下降反而效果最好。深度學(xué)習(xí)里大家都用它。關(guān)注當(dāng)前,每次抬頭瞄一眼世界,快速做個(gè)決定,然后邁一小步。小步快跑。只要你有目標(biāo),不要停,就能到達(dá)。
反向:越結(jié)構(gòu)化的模型越好。文獻(xiàn)顯示[6],拓?fù)浣Y(jié)構(gòu)復(fù)雜的模型,在同樣的梯度下降算法之后會(huì)產(chǎn)生更小的泛化誤差。而過(guò)于簡(jiǎn)單的模型,往往會(huì)容易收斂到平凡解。

有些點(diǎn)沒(méi)講到,是因?yàn)檎也坏教貏e好的文獻(xiàn),或者讀起來(lái)沒(méi)那么有趣。
如果要我說(shuō),人生反正不是監(jiān)督學(xué)習(xí),更像是強(qiáng)化學(xué)習(xí)甚至無(wú)監(jiān)督學(xué)習(xí)。
當(dāng)然,也可能人生就是隨機(jī)挑戰(zhàn)。
參考
Hare, Joshua. "Dealing with sparse rewards in reinforcement learning." arXiv preprint arXiv:1910.09281 (2019).
Peters, Jan, and Stefan Schaal. "Policy gradient methods for robotics." 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, 2006.
Schulman, John, et al. "Proximal policy optimization algorithms." arXiv preprint arXiv:1707.06347 (2017).
Li, Hao, et al. "Visualizing the loss landscape of neural nets." arXiv preprint arXiv:1712.09913 (2017).
He, Kaiming, Ross Girshick, and Piotr Dollár. "Rethinking imagenet pre-training." Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019.
Corneanu, Ciprian A., Sergio Escalera, and Aleix M. Martinez. "Computing the testing error without a testing set." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020.
推薦閱讀
(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)
【機(jī)器學(xué)習(xí)】算法黑話大賞,我直呼好家伙!
老鐵,三連支持一下,好嗎?↓↓↓
