高效的機(jī)器學(xué)習(xí)研究者,應(yīng)該具備這 6 個習(xí)慣
一名優(yōu)秀的機(jī)器學(xué)習(xí)研究員有哪些特質(zhì)?是碼力超強(qiáng)?還是理論功底一騎絕塵?
碼力和理論固然重要,但是良好的習(xí)慣才應(yīng)該是檢驗是否優(yōu)秀的唯一標(biāo)準(zhǔn)。
緊跟Arxiv Sanity Preserver的最新研究,讓模型訓(xùn)練不眠不休,最大限度的利用Stack Overflow.....除了這些,還有哪些是成為高效ML研究者必備的呢?
近日,一位網(wǎng)友在 Reddit 上發(fā)帖提問:「高效的機(jī)器學(xué)習(xí)研究者,都有什么樣的習(xí)慣?」對此,不少網(wǎng)友紛紛留言支招,好不熱鬧。
而此前,Open AI 的創(chuàng)始成員之一和研究科學(xué)家 John Schulman也專門寫過一篇《機(jī)器學(xué)習(xí)研究指南》,從選擇研究問題的能力到研究驅(qū)動力,再到具體的研究方法上,提出了自己的獨(dú)到建議。我們先來看:
一、培養(yǎng)選擇正確的研究問題的能力
在機(jī)器學(xué)習(xí)研究中,具備正確選擇研究問題的能力,甚至比你本身擁有的技術(shù)能力更重要。而這種能力是通過長時間觀察哪些想法最終成功、哪些觀點最終被遺忘而培養(yǎng)出來的:那些成功的想法可能會發(fā)展成為一些領(lǐng)域內(nèi)新觀點和新進(jìn)展的基石,而那些最終被忽略的想法可能是因為它們太過復(fù)雜或太過脆弱,又或者是帶來的增量進(jìn)展過小。
這種日積月累的觀察,能夠讓你學(xué)習(xí)到,哪些觀點是有長遠(yuǎn)價值的,哪些觀點可能只能夠“曇花一現(xiàn)”。
對于這種能力的培養(yǎng),大家可能也在探索一些捷徑,下面這幾種方法可為大家提供一些參考:
第一,閱讀大量的論文,并有批判性地對這些論文進(jìn)行評價。如果有可能的話,盡可能邀請機(jī)器學(xué)習(xí)領(lǐng)域的出色研究者來共同探討這些論文。
第二,嘗試加入研究主題相似的研究小組,以此汲取他們的研究經(jīng)驗,并培養(yǎng)良好的團(tuán)隊協(xié)作能力。
第三,在研究問題的選擇上,可以向前輩研究者或其他有經(jīng)驗的研究者尋求建議。需求他人的建議并不可恥,而當(dāng)你最終決定好一個正確的研究問題時,你的技能潛力就會被激發(fā)出來,并能夠很大程度很好地進(jìn)行研究。
第四,花點時間思考怎樣的研究才是有用的、能做出成果的,比如問問自己以下幾個問題:
- 理論在什么情況下是有用的?
- 什么情況下,經(jīng)驗成果能夠遷移到研究中?
- 是什么讓一些觀點能夠被廣泛接受,而另一些卻最終被遺忘?
- 機(jī)器學(xué)習(xí)領(lǐng)域的未來趨勢是什么?哪些研究方向有可能會讓其他的研究方向望塵莫及?
其中,第一點至第三點,目的旨在優(yōu)化你的研究環(huán)境以及從其他研究者那里獲得一些建議、汲取一些經(jīng)驗,而第四點則要求你自己進(jìn)行獨(dú)立思考。
而第一點從第三點的重要性,想必可以從“幾乎所有帶有沖擊性的、有影響力的工作都是由一小部分的研究團(tuán)隊和機(jī)構(gòu)做出來的”這一事實得到驗證。這并不是因為這些研究團(tuán)隊或機(jī)構(gòu)的研究者比其他研究者要更聰明得多,而是因為他們站在“巨人的肩膀”上,擁有更高密度的專業(yè)知識和視角,從而能比社區(qū)中的其他研究者先行一步。
不過如果你很遺憾無法在這樣的環(huán)境中開展機(jī)器學(xué)習(xí)研究工作,也不要?dú)怵H,你也可能通過額外的努力,培養(yǎng)自己的專業(yè)能力和獨(dú)特的視角,來走在別人的前面。
二、研究由觀點驅(qū)動還是目標(biāo)驅(qū)動?
選擇好研究的問題后,一般而言,你可能會通過兩種方式來決定接下來做什么:
第一,觀點驅(qū)動,遵照一些文獻(xiàn)的觀點來開展接下來的工作。如果你正好閱讀到觀點和思路與你接下來要開展的工作一致的論文,那自然是最好。接著你就可以開始一個項目來測試你的想法。
第二,目標(biāo)驅(qū)動,目標(biāo)是發(fā)展一些你希望獲得的新的 AI 技能,與此同時解決一些能夠讓你離最終目標(biāo)更近一步的問題。在實驗環(huán)節(jié),你可以嘗試測試一些文獻(xiàn)中現(xiàn)有的方法,之后基于這些方法提出自己的新的方法來進(jìn)行優(yōu)化完善。
當(dāng)然,這兩種方法并不是互斥的,任何機(jī)器學(xué)習(xí)子領(lǐng)域的研究都不可避免地涉及到一些目標(biāo)(比如說目標(biāo)檢測),而所有“觀點驅(qū)動”的項目也代表著該子領(lǐng)域發(fā)展目標(biāo)的進(jìn)展情況,從這個意義上而言,“觀點驅(qū)動”的 研究實際上是“目標(biāo)驅(qū)動”的研究的一種實例形式。
而這里單獨(dú)列出的“目標(biāo)驅(qū)動”,指的是個人的目標(biāo)比機(jī)器學(xué)習(xí)某個子領(lǐng)域的發(fā)展目標(biāo)更明確,強(qiáng)調(diào)的是“成為第一個吃螃蟹的人”,而不是基于某項研究進(jìn)行優(yōu)化和改善。
從長遠(yuǎn)來看,“目標(biāo)驅(qū)動”的研究對大多數(shù)研究者而言更具有價值。
“觀點驅(qū)動”的研究存在一個很高的風(fēng)險就是:可能會重復(fù)其他研究者的研究工作。世界各地的研究者閱讀的文獻(xiàn)材料都差不多,這讓他們很容易產(chǎn)生相似的想法。而如果想通過“觀點驅(qū)動”的研究來做出突破性的工作,就需要對你自己的研究課題建立獨(dú)一無二的深度認(rèn)知,并且能夠以與社區(qū)其他研究者不同的視覺來開展研究,有些人可能能做到這樣,但是做到的難度很高。
而另一方面,“目標(biāo)驅(qū)動”的研究下,你的目標(biāo)本身就能夠給予你區(qū)別于其他研究者的獨(dú)特視角,并引導(dǎo)你提出別人未曾提出的問題,讓你獲得更大的進(jìn)展。不僅如此,這種研究方法也會讓你變得更有動力:每天清晨都能夠帶著對實現(xiàn)目標(biāo)的憧憬起床。這會讓你在起起伏伏的研究持久戰(zhàn)中,更易于堅持下去。
在團(tuán)隊協(xié)作方面,“目標(biāo)驅(qū)動”的研究有助于團(tuán)隊研究者的協(xié)作研究并從問題的不同方面來開展研究工作。而“觀點驅(qū)動”的研究由1到2人組成的“團(tuán)隊”開展,是最有效的。
三、高瞻遠(yuǎn)矚,一步一步向目標(biāo)高峰攀登
有些既聰明又勤奮的人為什么無法做出好的研究?其中一個重要原因就是,他們研究的問題并不是重大的問題。
當(dāng)你開始一個研究項目前,你不妨問下你自己:這個問題研究下去的前景有多大?將帶來10%的改進(jìn)還是10倍的改進(jìn)?不少研究者常遇到的一大瓶頸便是:正在開展的項目看上去有意義,然而結(jié)果卻只能在一些指標(biāo)上實現(xiàn)小小的提高。
在試圖實現(xiàn)一個更大目標(biāo)的過程中,增量性的工作(實現(xiàn)10%的改進(jìn))是非常有用的。例如,Krizhevsky、Sutskever和Hinton 2012年發(fā)表的一篇關(guān)于使用卷積神經(jīng)網(wǎng)絡(luò)來分類ImageNet 的開創(chuàng)性論文中,沒有提出任何全新的算法部分,而是在很多方面實現(xiàn)了小的改進(jìn),結(jié)果實現(xiàn)了前所未有的結(jié)果,這在當(dāng)時讓幾乎每一個人都倍感驚訝(雖然在現(xiàn)在看來,我們認(rèn)為這沒有什么)。
在日復(fù)一日的工作中,你可能在性能或理解上只取得了一些增量改進(jìn),但是不積跬步無以至千里,這些小的改進(jìn)會推動你朝著更大的目標(biāo)前進(jìn)。
如果你打算就一些增量觀點開展研究,需要意識到這些研究工作的有用性取決于它們的復(fù)雜度。對基準(zhǔn)稍加改進(jìn)的方法最好是非常簡單,否則幾乎沒有人會愿意使用它,甚至你自己都不想使用。舉例來說,如果可以實現(xiàn)10%的改進(jìn),最好2行代碼就能做到,而如果能夠?qū)崿F(xiàn)50%的改進(jìn),可以再增加10行代碼。
現(xiàn)在大家不妨回去看看自己的機(jī)器學(xué)習(xí)成果表,你制定的長期研究規(guī)劃是否足以實現(xiàn)這些成果呢,如果你還看不到一條通往最終目標(biāo)的道路,就應(yīng)該嘗試調(diào)整下你自己的規(guī)劃了。
四、合理使用筆記本
一旦打算開發(fā)機(jī)器學(xué)習(xí)新算法,就必須長期將精力集中在一個問題。強(qiáng)烈建議研究人員有一本專用的筆記本,紙質(zhì)版的也好,電子版的也可,然后用來記錄每天的想法和實驗。
如果是電子版的筆記本,建議每天創(chuàng)建一個條目,在這個條目中寫下“你正在做什么“,有什么樣的想法,以及實驗結(jié)果。每隔一兩周做一些回顧,回顧內(nèi)容包括閱讀所有的日常記錄,包括想法見解、代碼進(jìn)度、下一步的打算等等。另外需要將這些日常記錄濃縮成一個簡單的摘要。
一些細(xì)節(jié)也不容忽視,例如在復(fù)習(xí)過程中隨時補(bǔ)充遺漏的內(nèi)容,將實驗結(jié)果保存在一個統(tǒng)一的位置,便于迅速查看結(jié)果。
讓筆記讓更好的監(jiān)控時間使用,避免因為對想法、線索在時間上的安排不足而使得研究半途而廢。
五、有舍有得,切勿“戀戰(zhàn)”
在機(jī)器學(xué)習(xí)研究中,不可避免的會遇到很具挑戰(zhàn)性的問題,不拋棄,不放棄的精神往往讓你投入過多的時間。但是經(jīng)驗表明有些問題不管你如何都努力,注定會走向失敗。聰明的做法是適可而止,為自己設(shè)定一個“限度”,超過限度就放棄吧。
另外,過于頻繁的切換所研究的問題也會常常導(dǎo)致失敗。典型的表現(xiàn)是:正在為一個想法的實現(xiàn)苦苦掙扎,另一個有希望的突然出現(xiàn)在腦中,然后就轉(zhuǎn)而“掙扎”這個新想法。
如果機(jī)器學(xué)習(xí)想法很快就能上手嘗試,那就去試一試,初步受挫也不要失望,合理的堅持說不定就能見到曙光。
如何做到合理“舍得”,經(jīng)驗的做法是借助筆記本及時回顧項目細(xì)節(jié),可能會發(fā)現(xiàn),大部分時間都花在了“產(chǎn)生可交付成果”的項目上,還有一部分時間是花在了半途而廢的項目上。所以,及時復(fù)習(xí),清醒的保持研究的一致性和貫徹到底。
另外一個比較有效的策略是:花一些固定的時間預(yù)算嘗試那些與工作主線不同的新想法。比方說,每周花一天時間做一些與你的主要項目完全不同的事情。這在滿足“貪婪”的同時,也有助于拓寬知識面。
六、多讀、多寫,教科書是很好的老師
機(jī)器學(xué)習(xí)的每個項目都會帶來新的挑戰(zhàn),聰明的人都是在做項目的過程中邊學(xué)技能邊補(bǔ)充個人背景。為個人發(fā)展留出時間,從長遠(yuǎn)來看,可以顯著提高進(jìn)階機(jī)會。
具體而言,機(jī)器學(xué)習(xí)研究者都應(yīng)該分配一部分時間來提高機(jī)器學(xué)習(xí)素養(yǎng),如果僅僅是謀劃當(dāng)前的項目,不愿花精力提升,那么在了解了日常工作所需的基礎(chǔ)知識之后,研究者很可能會停滯不前。
當(dāng)然,待在舒適區(qū)很愜意,“站”著不動也花費(fèi)不了什么精力。所以,在職業(yè)生涯的早期應(yīng)該盡很大的努力擴(kuò)大舒適區(qū)。閱讀你感興趣的教科書、論文以及復(fù)現(xiàn)相關(guān)算法。給自己制定合適的進(jìn)階規(guī)劃,通過閱讀一小套的相關(guān)論文和教科書逐步提升。
大多數(shù)機(jī)器學(xué)習(xí)專業(yè)的在校學(xué)生在畢業(yè)之后很少會花時間閱讀教科書,這是非常不好的習(xí)慣,相比論文,教科書的知識更加密集,也更能擴(kuò)展基礎(chǔ)知識面。一本優(yōu)秀的教科書往往涵蓋了先關(guān)領(lǐng)域近幾十年的思想,并且書中所使用的符號和術(shù)語也都比較正規(guī),敘事方式也是徐徐漸進(jìn),由淺入深。
除了教科書,相關(guān)研究人員的博士論文也是非常棒的學(xué)習(xí)材料。一般來說ML研究員的博士論文的撰文都有固定的格式:1.研究背景以及前沿問題;2.之前發(fā)表的論文(有一種說法是,把之前發(fā)表的論文“裝訂”在一起就能寫博士論文了);3.結(jié)論和展望。從上面你可以看出,在第一部分和第三部分能夠獲益最多,因為他們包含了對該領(lǐng)域的過去、未來的統(tǒng)一觀察。
課本和博士論文幫你建立了基礎(chǔ)知識,但是要想當(dāng)時代的弄潮兒,還得讀論文,一篇論文往往集中于比較新的一個點,并且具有創(chuàng)新性。通過閱讀摘要,觀察實驗對比,豐富你的創(chuàng)新思維。
如果你是剛開始入坑的研究員,應(yīng)該多花時間復(fù)現(xiàn)論文中的想法,并與自己的實驗方法對比。因為這與被動的閱讀相比,能夠獲得對問題的更深理解,另外,一旦你將比較先進(jìn)的技術(shù)復(fù)現(xiàn)出來,那么離超越他可能就只有一步之遙。
除了閱讀開創(chuàng)性的論文并復(fù)現(xiàn)它們之外,還應(yīng)該關(guān)注冷門論文。用批判的眼光閱讀,并找到能夠幫助你的點,為你的其他想法打開大門。
Reddit網(wǎng)友支招

https://www.reddit.com/r/MachineLearning/comments/f4oxuj/discussion_what_are_some_habits_of_highly/
關(guān)于此類問題的討論,Reddit機(jī)器版塊從來都是不甘落后,18個小時熱度已經(jīng)達(dá)到265。在回復(fù)評論中很多網(wǎng)友分點評論給出了建議!總的來說有以下幾條:
1. 從早期的試點實驗中獲得洞察力,不要把時間浪費(fèi)在可能、大概、差不多的想法上。
2. 不要老是懷疑你選擇的損失函數(shù)。
3. 和同事多多交流,解釋不清楚的原理直接上手板書介紹。
4. 大多數(shù)人都喜歡談?wù)撍麄兊墓ぷ鳌?/p>
5. 為感興趣的項目創(chuàng)建代碼項目文件夾,并按照功能進(jìn)行排序。
6. 學(xué)著構(gòu)建數(shù)據(jù)集,會清理和排序以及收集。
7. 保持?jǐn)?shù)據(jù)分類良好
8. 明白“設(shè)計汽車發(fā)動機(jī)的人往往不是賽車手”,完美才是完善比較大的敵人。
9. 在處理棘手問題的時候,可以將其一分為二。
10. 知道什么時候該偷工減料,什么時候該堅持到底。
11. 和名人合作,讓名人更加知名,然后讓你也成名。
12. 運(yùn)氣很重要!