萌新誤入AI歧途怎麼辦?MIT博士小哥哥給你指條明路

量子位發表於2018-04-26
原作 Tom Silver
栗子 & Root 編譯自 MIT Blog
量子位 出品 | 公眾號 QbitAI

做研究,特別是在AI領域做研究,時常挑戰人類的智力極限和心理極限。來自MIT的湯姆,入坑已有兩年,並在坑裡向廣大準同行們發來了傾心打造的攻略,幫助大家在漫漫夜路上,不要迷失自己的方向。

以下為湯姆第一人稱——

我的一個小夥伴啊,終於也要踏上AI研究的不歸路了。他惶惶地問我,兩年前剛入行的時候,有沒有過一些,“如果我懂這個就好了”的東西。

回想這兩年走過的路,我不禁……

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

 忍住沒笑出聲

為自己感到驕傲。畢竟,身邊的渣渣都已經改行了。

所以,由我來總結一套攻略也是非常合適。大到人生指南,小到技術細節,本篇總有各位需要的章節。

閒言少敘,我要開始bb了,可能停不下來。

640?wx_fmt=jpeg

 我準備好了

菜雞不要方

用來回答菜比問題的美妙物種

一開始,我被同事們強大的氣場震懾了,就怕不小心問出什麼暴露智商的問題。過了好一段時間才發現,有那麼幾個人,我在他們面前發問感覺蠻舒服的,不過那時候的問題還是自己精心組織過的。現在,我的“不會就找他”名單裡,已經有三四個人了。我只要有問題,就立刻問,困惑才不會積壓。

640?wx_fmt=jpeg

 我有個問題

研究靈感需要四處搜刮

想好自己要做什麼,這可能是研究中最困難的一步。你可能需要以下策略:

1. 和其他領域的研究人員面基

看他們對什麼問題感興趣,再用計算機語言重述那些問題。再問他們有沒有需要分析的資料集,傳統方法分析起來費勁的那些。

640?wx_fmt=jpeg

機器學習領域,許多有影響力的研究都是學科之間碰撞出來的。物化生,社會科學,或者純數學,都可以去試試。

比如,Matthew Johnson和他的基友們發表在NIPS 2016的那篇論文,受到了小鼠行為的啟發。再比如,Justin Gilmer他們在ICML 2017發表的成果,就是機器學習在量子化學裡的應用。

2. 寫個簡單的baseline找找感覺

比如,寫寫用來操控倒立擺的、仔細校準了的程式碼,或者看看你能用一個自然語言資料集、把詞袋 (BOW) 模型玩成什麼樣。

640?wx_fmt=jpeg

我寫基線的時候,就經常出bug。Bug修復的時候,我的腦子裡就有了一些新想法可以去試,對問題的理解也更深刻了。

3. 幫喜歡的論文擴充套件實驗部分

仔細讀實驗方法和結果的部分。先考慮最簡單的擴充套件方法,看看論文裡的方法夠不夠用。想下文中沒討論過的基線方法,看看它們哪裡不好。

視覺化工具和技能

我做研究的時候,一個重要的策略,就是從視覺化指令碼開始。其他部分的程式碼都寫完之後,跑一下視覺化指令碼,我就能迅速看到程式碼和我想象的一不一樣。

640?wx_fmt=png

 TensorBoard

有了好的視覺化,程式碼中的問題,和思路的問題,都會更加清楚的顯現,也更好理解。當然,這樣做有一個最直接的好處,就是有視訊可以拿出去秀了。

不過,為自己要處理的問題,找到合適的視覺化方法,可能並不容易。如果你正在不斷的迭代中優化模型,繪製損失曲線大概是個不錯的選擇。

640?wx_fmt=gif

 畫出分佈

還有很多技術,適合給神經網路 (特別是CNN) 中的學習權重做視覺化——比如有導向的反向傳播 (guided backpropagation) 。

在強化學習和規劃中,最需要視覺化的就是智慧體在環境裡的表現,不管是雅達利,機器人人物,還是簡單的網格世界。

640?wx_fmt=gif

 價值函式

根據設定的不同,我們或許也可以把價值函式視覺化,看它在訓練過程中會發生怎樣的變化。當處理圖形模型的時候,把一維或二維變數的分佈視覺化,可以獲得許多的資訊。

視覺化技術有沒有效果,就要看你從裡面能獲得多少有效資訊了。如果視覺化做的不好,就要回頭去看程式碼。優秀的視覺化,可以給人直擊靈魂的結論。

看出論文和研究人員的原始動機

即便是參加同一個會議,用著同一套術語,並且同樣以“人工智慧”一詞來表述自己的領域,兩個研究人員的出發點可能完全不同。

640?wx_fmt=jpeg

喬丹甚至提議,可以多起幾個名字,來把這個混沌的領域變得更加清晰。但情況好像也沒有到完全無法理解的地步,AI領域至少還有三個主要的方向——數學,工程,以及認知。

· “數學”方向研究的是:某個智慧系統,它的基本屬性和限制是什麼?

· “工程”方向討論的是:怎樣開發一些智慧系統來解決現實問題,還比其他方法好用?

· “認知”方向關心的是:怎樣用機器來模擬人類或其他動物的智慧?

這些動機是可以和諧共生的,許多AI論文也是包含多重視角的。而且,許多研究人員也不只有一種動機,可能大家原本就是一家人。

640?wx_fmt=jpeg

不過,就算是一家人,也還是會有分歧。我有一些純“工程”方向的小夥伴,還有一群兄弟對“生物”情有獨鍾。

有一篇論文的結論說,在某個benchmark上,一些現有技術的某種巧妙結合,足以打敗最前沿的技術。

攻城獅可能會為這樣的研究成果而感動,但認知科學家們可能就洗洗睡了。如果是一篇純理論論文,他們的態度就會反過來。

一些優秀的論文和優秀的研究人員,一開始就會表明立場,但多數情況下動機還是被埋沒的。我發現,在論文動機不明顯的時候,站在不同的角度多讀幾遍還是有用的。

坐在巨人的大腿上

找論文

AI領域的論文大多都在arXiv,很容易找到。大量的論文排山倒海,讓人在興奮的同時,也有點喘不過氣。於是,有些善良的業內人士,提供了披沙揀金的有效途徑——

640?wx_fmt=png 這不是我,是我的機

Andrej Karpathy建起了”arXiv Sanity Preserver”,幫助大家對論文進行分類篩選,搜尋,以及特徵過濾。Miles Brundage以前也經常在推特上,發一些經過輕度炮製的arXiv論文清單,單子大概率是AI列的。

還有很多其他推友,非常樂於分享他們看到的有趣論文。這裡是我可愛的關注列表:

https://twitter.com/tomssilver/following

如果喜歡Reddit的話,當然要關注r/MachineLearning。不過,上面的內容還是更適合吃瓜群眾動手實踐,對於學術研究的幫助可能小一些。

另外,大會上發表的論文是有必要看看的。NIPS、ICML以及ICLR是重中之重,其他有名的大會還包括AAAI、IJCAI和UAI等等。

分方向來說,計算機視覺會議有CVPR、ECCV和ICCV;自然語言會議有ACL、EMNLP以及NAACL;說到機器人,就是CoRL、ICAPS、ICRA、IROS和RSS。要看理論研究的話,AISTATS、COLT和KDD都是不錯的選擇。

640?wx_fmt=gif

 論文中獎

目前,參加各大會議是論文發表的主要途徑,不過期刊也是有的。JAIR和JMLR這兩個是AI領域的主流期刊。偶爾也有厲害的論文,登上Nature和Science。

比起新論文,老論文比較難找,但是同樣不可忽視。許多“經典”一直被人們翻出來看,除了出現在引用列表裡,也會出現在研究生課程的閱讀清單裡。

還有一個搜尋舊論文的方法,就是從業內某個知名老教授開始,找他過往的研究成果,比如評上教授職稱的時候用到的論文。也可以發郵件給教授,問他們還有沒有更多資料可以參考。不過,要從Google Scholar上找老論文,我還沒有發現太好的搜尋方式。

泡在Paper的海洋裡

640?wx_fmt=png

關於花多少時間在讀paper上,常見的兩種觀點是:

1)剛開始,什麼都讀,別挑。很多人都說研一就是讀Paper,其餘啥也別幹;2)但過了這個階段,就不要再花那麼多時間在論文上了。

後者的邏輯,是在提出解決問題階段很需要創新的思維,如果這個時候還讀太多Paper容易被帶偏。

我個人覺得,第一個說得,非常有道理。只要有時間,就應該儘可能地多讀paper。

但我diss第二個。

那些認為不必瞭解其他同行的研究工作,可以閉門自己憋出好方法的人,有點拿衣服。雖然我們時不時會聽到,有些業餘的外行可以想出不錯的辦法,也確實解決了長久以來的問題。

不過我們作為長期從事AI研究的人,不能寄希望於那個“靈光乍現”的瞬間。大部分的時候,問題的解決過程都是非常漫長的。

要搞清楚我們的研究目前處於什麼階段,下一步該怎麼做,閱讀相關的文獻是一個更高效的方法。

這裡推薦閱讀Julian Togelius的《小修小補和真正研究的區別》:

http://togelius.blogspot.com/2016/04/the-differences-between-tinkering-and.html

另外,還要提醒一點。不要一味地追求閱讀的數量,更重要的是把讀過的每一篇論文認真的做筆記,做好反思,深度消化之後,再讀下一篇。不要一個勁地一篇接一篇地讀但不經大腦加工處理。

640?wx_fmt=jpeg

交流>>看視訊>>讀論文>>聽講座

如果要了解一個全新的研究工作,讀文獻是最容易獲取資訊的途徑。

但理想的高效方式,我認為,是找機會和在這行做的研究人員聊聊天。

當然,這樣的機會不是經常有。所以看這些人的論文講解直播,也是個不錯的選擇。

一般大家習慣在直播的時候,把自己的工作講清楚,讓受眾儘可能聽得懂;而寫文章的時候,因為要考慮到字數的限制,會追求極簡的行文。對比之下,顯然前者更便於使用者消化資訊。

另外大家還有個說不出口的原因:寫文章時介紹太多背景知識,也會顯得自己很弱雞,像是剛入行什麼都不太懂。

為什麼我覺得聽講座的效果最不好呢?

通常來說,講座更多都是走形式,並不是個非常好的學習機會。不過講座完之後,完全可以趁機找主講人聊兩句。

警惕名利

成功的AI研究工作,會吸引公眾的關注。這會進一步鼓勵更多的人加入到這個領域,對研究工作來說,是一個非常好的良性迴圈。

不過負面的影響是,招來無效的媒體曝光。做新聞的人想要更多的點選量,企業想拉投資和招大牛,做技術的人希望發表更高階別的文章,以及文章被更多的人引用。這些都會製造更大的名利泡沫。

大家要時刻提醒自己,留心所有參與方背後的動機。在文章標題、新聞稿、論文方面要十分小心。

在NIPS 2017的會上,有一個很有名的教授當著幾百個參會人的面,在Q&A的環節拿到話筒之後,指出主講人不應該在論文標題裡使用“想象(imagination)”一詞,並強烈地表達了對主講人的不滿。

這篇被質疑的論文,正好是我非常喜歡的。

不過我也非常認同這個教授的觀點。總有人想搞大新聞,把很久以前的工作,冠一個大家沒聽過的新詞,假裝自己在搞新的方向。AI圈裡,這可以說是十分的尷尬了。

所以要警惕那些喜歡玩概念的文章。儘量從實驗和結果的部分,來判斷研究工作的質量。

做好“跑馬拉松”的心理準備

讓自己看見可量化的進步

早期尋找研究專案時,我會花大量時間腦暴。我當時傻傻地覺得,腦子裡那些模糊的想法,會自己慢慢生成一個具體的思路。

然後一天下來,我腦子就當機了。啥具體結論也沒想出來,很受挫。我還一度懷疑自己,這是研究嗎?

研究工作如何取得進展,沒有固定的路徑可循。

不過,我慢慢發現把研究工作分解成更小的可量化的目標,相對來說是更簡單點的辦法。

每當找不著北的時候,我的目標就是:把模糊的想法寫下來,然後找出論據來證明它不可行,而不是敷衍地直接劃掉。

或者當腦子連模糊的想法都沒有時,就把目標定位讀文獻或找同行聊天。

這樣至少一天下來,我可以看到自己實實在在做了些事情,是有推進工作往前走的。即使很多想法難產,我認知上也有很大的收穫。現在排除掉的不靠譜的想法,相當於節省了未來的思考判斷時間。

不鑽牛角尖,遇到死衚衕早點掉頭

功底深厚的研究人員會把更多時間留在好的問題上。所以學會分辨問題的好壞是一個很強大的技能。

 640?wx_fmt=gif

不管是什麼level的研究人員,都會面臨的一個問題是,我的課題思路有缺陷,無法下結論。我是該繼續補救這個課題呢還是直接找不必繼續的理由?

我非常後悔。曾經的我一根筋,即意識到了這可能是一條死衚衕,但還是堅持補救,然後耗費了很多時間。對沉沒成本的不甘心,導致了我再這個問題上猶豫不決。執念的力量相當可怕。

最後放棄這個課題,心情悲痛。但我現在有意識地改變自己的認知,放棄死衚衕往回退幾步,看起來反直覺,但也算是一種“進步”。

接受失敗也是精神認知上很重要的一課。像提出量子點動力學理論的理查德·費曼說的,“儘早證明自己錯了,才能進步。”

640?wx_fmt=png

最重要的是:寫!寫!寫!

我有次很幸運,遇到一個業內大神。他給我的早期職業建議就是:寫!

寫部落格記錄自己的研究歷程,寫論文。更重要的是,記錄自己每一天的思考。自從那以後,我每天都覆盤。我很明顯地感覺到主動寫作的收穫,比光在腦子裡想要大得多。

要想研究做得好,還得身體好,腦子好

搞學術的人,總是很忘我。覺得睡覺都浪費時間,也不怎麼注意身體。完全沉浸在追求學術進步的世界裡。

640?wx_fmt=png

刷起夜來不要命……

我自己也有這個毛病。但現在理智的我意識到了,養成習慣鍛鍊身體和多休息,並不是浪費時間或分散專注力,而是非常必要的投資。

睡4小時對身體是非常不好的,8小時的工作會讓腦子變傻。

640?wx_fmt=png

但反過來,每天花8個小時睡覺,4個小時工作,我的工作產出效率反而會更高。

我非常理解,在解決一個非常難的問題過程中,很難說做到一半時扔下跑去幹別的。我經常都困過點了還死撐著泡在工作裡,但沒有取得一點點進展。

現在,我可以做到強迫自己走開來,做個深呼吸放鬆一下自己。我很開心自己做到這個進步,相信這會對我未來的事業有長遠的好處。

640?wx_fmt=gif

善待自己:)

最後,附作者小哥哥部落格地址:
http://web.mit.edu/tslvr/www/index.html

加入社群

量子位AI社群16群開始招募啦,歡迎對AI感興趣的同學,加小助手微信qbitbot6入群;


此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。


進群請加小助手微訊號qbitbot6,並務必備註相應群的關鍵詞~通過稽核後我們將邀請進群。(專業群稽核較嚴,敬請諒解)

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。

640?wx_fmt=jpeg

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態


相關文章