機器學習研究者的養成指南,吳恩達建議這麼讀論文

2020-12-14 機器之心Pro

機器之心整理

機器之心編輯部

如何成為一名高效的機器學習研究者,然後在這個領域取得一些成就?在此之前,我們需要養成什麼樣的習慣?近日,一篇發布在 Reddit 機器學習版塊的帖子引發了眾人的討論。

近日,一位網友在 Reddit 上發帖提問:「那些高效的機器學習研究者,都有什麼樣的習慣?」

比如,在 Arxiv 上時時跟進最新的研究,利用睡覺時間訓練模型,以及充分利用 Stack Overflow。其他的呢?

其實,世界上從不缺少優秀的機器學習研究者,也不缺乏好的建議和指南。想要成為一名高效的機器學習研究者,最重要的是要有徹底的自我管理能力和一點堅持到底的決心。

Open AI 的研究科學家和創始成員之一 John Schulman 曾撰寫過一篇《機器學習研究指南》,提供了選擇問題和時間管理方面的諸多建議。在 John Schulman 看來,成功的關鍵在於解決正確的問題,並在這些問題上不斷取得進步,實現持續的個人成長。

此外其它很多研究者也有自己獨特的見解,吳恩達在斯坦福 CS230 課程中專門開了一課介紹論文怎麼看、研究怎麼做;Reddit 社區資深研究者對於快速做 ML 產品、高效做 ML 研究都有獨門秘籍。

挑選研究問題

挑選研究問題是需要品味的,可能選擇正確問題的能力比技術技能更重要。隨著研究的深入,我們會慢慢發現研究問題的各種滋味,能快速品味到哪些方法是有潛力的,哪些方法又是根本行不通的。

實際上,對於研究問題的品味,我們有好幾種提升方法:

閱讀大量論文,並認真評論與探討;成立研究小組,吸收他人研究經驗;找自身研究者提建議,吸收他人的看法;花時間思考哪些研究能夠產出成果;對於最後一點,我們可以自問「理論在什麼時候是有用的」、「實驗結果普遍嗎」、「為什麼一些方法廣泛被採納,其它又被遺忘」。前面三點都是從其它研究者獲得信息,最後則是你自己的思考。

想法與目標,研究的原動力

一般來說,我們有兩種方式來決定下一步研究工作:

想法驅動:如果你看文獻時發現對於「如何處理 X」這個問題有想法,那麼就可以開啟一個項目來測試新想法;

目標驅動:如要想要實現某些 AI 功能,那就要解決實現過程中的各種問題。

這兩種方法並不是相互排斥的,任何領域的機器學習的新想法都與某些目標有關。從某種意義上來說,想法驅動的研究就是目標驅動的一部分。在博客文章中,John Schulman 以目標驅動為例,這意味著你的研究比整個子領域的目標更為具體。John 更推薦這種研究模式,他本人也一直遵循這種目標導向的研究。

值得注意的是,想法驅動的研究有一個缺點,存在被竊取或竊取其它研究工作的風險。因為各地研究者都在閱讀相同的文獻,很可能我們會產生相似的想法。如果我們想在想法驅動的研究中獲得更多突破,那麼首先需要對研究主題有深刻的理解,並且觀點和其它研究者明顯不同,這是非常難做到的。

目標驅動的研究案例

在博士階段前半部分,目標是讓機器人能夠操作可變形的物體,如嘗試打結的手術機器人以及摺疊衣服的家用機器人。為了實現目標最初的想法是基於從人類示範中學習,於是打算從 RP2 打結的問題開始,而隨之而來的就是各種子問題,其中之一就是軌跡優化,然而我在這個子問題上的工作最終成為這個項目裡最重要以及最有影響力的產物。

在博士階段後半段,我開始對強化學習感興趣,並決定將重點放在機器人運動上,因為目標非常具體所以結果非常令我感到興奮。為了讓 3D 機器人能學習跑步,我將重點放在策略梯度方法上,因為此方法最適合理解以及數學分析,並且可以用上之前做優化的經驗。在次期間,我開發了 TRPO 以及 GAE,並成功實現了 3D 機器人運動的初始目標。

當我正在研究如何使機器人進行運動,並使用策略梯度方法得到了第一個反饋結果時,DeepMind 的團隊在 Atari 上使用 DQN 得出了結果。並且,在得出結果之後很多人便趕潮流,試圖在此之上開發更好的 Q-learning 版本並應用至 Atari 領域。然而,經過對 Q-learning 了解之後,我判斷這對我的目標來說並不是一個好方法,所以繼續使用策略梯度,這一堅持使得我做出了 TRPO,GAE 以及後來的 ppo。

目標驅動的研究:將自己定義在通用解決方案中

以目標導向的研究會存在一個陷阱,就是將目標看得太完全化,比如在你擁有相匹配的能力時,你會以最直接甚至無趣的方式去實現該目標,但是這種模式的研究並不能推進你自己在機器學習領域中的發展。你應該將你的研究定義為可以具有通用性以及泛化性並可以嘗試應用在其他問題的解決方案上。

例如,在研究機器人運動時,我儘量避免了將領域信息過度整合到解決方案中,而將問題聚焦在最本質的問題上——目標是在模擬中實現運動,這種方式是通用的並且之後可以實現於其他問題上。再做了一系列特徵工程和獎勵形成後,我小心地在做一些改變及優化,使得這些改變不會較大程度上影響到我正在開發的算法。而現在我正在用遊戲作為實驗平臺,同時確保算法核心思想不是針對特定的設置,以便它同樣也可以很好的應用至機器人技術上去。

志存高遠,一步一步走

在機器學習領域,有時候既聰明又勤奮的人卻無法做出優秀的成果。其主要原因在於,本身研究問題的潛力就不大:到底該任務能有 10% 的改善還是 10 倍的提升?經常會有研究者做看起來很合理,但卻只能小幅度提升某項指標的工作。

在更大的目標下做增量研究(10% 的提升)是最有效的。例如 ImageNet 數據集上的開創性模型 AlexNet,它在 2012 年提出時沒包含任何全新的組件,只是堆積了大量小修正,但它獲得了前所未有的新結果。在日常研究工作中,性能會逐步提升,但所有步驟都應該朝著一個更大的目標前進。

如果想要做增量研究,它們的用處就決定了它們的複雜性。例如提升 10% 的效果,那麼最好只有兩行代碼,如果提升 50%,那麼可以新增 10 行代碼。增量研究的性能提升決定了它能增加的複雜性,不然沒有誰會用你的新方法。

研究是條旅途

研究是一條漫漫長路,在這條路上可能發現新算法、發篇新論文,也可能是直到最後才能知道一個結果。為了在這條旅途中開發新的算法和見解,你需要在很長一段時間內把精力集中在一個問題上。

然而我們並不知道旅途的終點是什麼樣的,因此這個長期的問題解決過程需要培養有效的習慣,從而使你能夠不斷地朝著更好的結果前進。

保持寫筆記的習慣

養成做筆記的習慣非常重要。比如你可以每天創建一個條目,然後記下你這一天在做什麼,有什麼想法,以及有什麼實驗結果。

在每日總結的基礎上,每過一兩周再進行一次回顧性的總結,做好批註:比如實驗結果的分析、一些有價值的見解(可以是自身的靈感,也可以是來自同事和朋友的金句)、代碼進度以及下一步的工作規劃。

這樣做有什麼價值?

一方面,筆記本是幫助你及時記下想法的工具,而且會提醒你在回顧的過程中去補全這個想法,鞭策你去重新思考一些本可能會被遺忘在角落的問題。

另一方面,筆記本就像是一個收納箱,幫你把實驗結果整理到一起。有些結論很容易忘記,比如哪些超參數很有價值,這時你就可以參考筆記內容。

還有,筆記本能幫你梳理時間利用方面的問題。有時候你可能想「上周我都幹了什麼」,翻翻筆記就能找到答案了。你可能意識到自己需要提升時間管理能力,也可能發現自己過去幾個月裡太過頻繁地轉換不同想法,很容易半途而廢。

關於「換坑」問題

說到這裡,繼續分析一下「切換想法」的問題。一般來說,想要解決一個具有挑戰性的問題,需要花費足夠多的時間和精力。但有時候則很難判定:我是否已經付出了足夠的努力?我該不該換條路去走?

根據經驗來說,過於頻繁地切換想法比呆在原地不動的故障概率更高。不排除會存在具備超強潛力的新想法,但更常見的是失望。如果你回顧筆記內容時,發現自己過去一段時間有相當多的精力都花在完成了一半的項目上,這樣的項目既不能說完全失敗了,但又暫無確定的成果產出。

所以可以採取一種策略,設置固定的時間去嘗試那些新想法,比如每周花一天時間去探索和自己現在所從事項目完全不同的想法,這樣也有利於拓寬知識面。

個人發展

在研究生涯中,無論如何分配時間,你都必須學習很多東西。但從長遠來看,如果你有規律地留出時間專注於個人發展,則能夠更有機會完成出色的工作。具體來說,在從事現有項目的同時,你應該撥出一部分時間來繼續充實機器學習領域的一般性知識。這樣以來,你學到的知識除滿足日常工作所需之外,才不會停滯不前,也不會陷入到所謂的舒適區域。

充實機器學習領域知識的方法很多,主要有閱讀教材書、學位論文和其他論文,並從這些源材料中復現算法。在研究生涯初期,作者建議把時間重新分配在教材書和論文上,重點選擇一部分來消化貫通,同時基於自己感興趣的論文來復現模型和算法。

大多數學生會在結束學校課程之後不再花時間閱讀教材書,作者認為這種做法是錯誤的。與論文相比,教材書一般以一種更集中的方式來吸取知識。會議論文通常會包含一個主要的新觀點,以及過於簡潔的背景知識部分。此外,在閱讀論文過程中,除了論文觀點本身,你還需要花費更多時間來理解複雜的符號和術語。與論文不同,好的教材書融合了幾十年的思想,並以循序漸進的方式將複雜符號展示出來。此外,除了閱讀引導性的機器學習教材書,你也可以選擇自己感興趣的其他領域書籍。

除了教材書之外,學位論文的閱讀也是必不可少的。對於一些你感興趣的研究工作,你可以閱讀這些研究者的博士論文。機器學習領域的博士論文一般包括介紹性和背景材料、一些過去發表在頂會上的論文以及結論和展望。其中論文的背景材料和結論展望部分通常凝聚了專家編寫的該領域過去和未來的一些統一性觀點,你可能會從中受益。

閱讀教材書和學位論文固然能夠鞏固你的基礎知識,但也需要大量閱讀其他論文來拓展知識前沿。在研究生涯早期,作者建議花大量時間來復現論文中的觀點,並對自己的實現結果與已發表的進行對比。這樣以來,你不僅會更深刻地理解論文主題,獲得運行實驗的經驗,而且復現已有研究的做法會比進行原始研究更快地獲得反饋。一旦你可以輕鬆復現 SOTA 方法,就有可能超越它。

除了閱讀那些富有創造性的論文並進行復現之外,你也應該關注領域內不那麼突出的論文。以批判的眼光瀏覽閱讀即將發表的論文有助於你時刻跟上領域內的發展趨勢。此外,對於一些廣泛使用並為其他觀點打開大門的觀點,觀察它們之間的依賴圖也有助於你培養自己的閱讀品味。

吳恩達的讀論文建議

在 CS230 課程中,吳恩達對於研究規劃與如何讀論文也提出了他的一些建議。

如果要高效地閱讀論文,吳恩達表示我們想要知道論文的來源,例如 arXiv 或個人博客等。下面,如果我們列出 5 篇待讀論文,那麼吳恩達的習慣是每一篇列一行,表示從 0 到 100 的閱讀進度。最開始我們只需要閱讀每一篇的 10% 左右,如果發現論文 2 不是我們想要的,就終結它。如果論文 3 是重要的,那麼仔細閱讀到進度 100%。

由論文 3,我們可以發現其它相關研究,因此也可以加到論文列表中,例如第 6、7 篇。讀完論文 3 也許會發現論文 4 也非常有意思,那麼結合 4、6、7 繼續閱讀,並記錄閱讀進度。

最後,如果閱讀 5-20 篇論文,差不多我們對該領域就有一定的了解了。如果高效閱讀 50 到 100 篇論文,那麼對該領域的理解就比較完整了。Ng 的背包內每天都會帶一個文本夾,裡面的紙質列印論文就是他的論文列表。

那麼具體如何閱讀一篇論文呢,吳恩達表示,從第一個詞瀏覽到最後一個詞,這是最差的方式。一般而言,我們要多次瀏覽論文,且每一次的目的都不相同。

首先第一遍應該只看標題、摘要和圖表,摘要能告訴我們論文講了什麼,而對於深度學習研究工作,很多都能總結成一兩張圖表。第二遍應該繼續看前言、結語和圖表,其它的內容我們可以暫時不管。注意在看前言時,相關研究部分也可以不管,雖然該部分對於理解研究脈絡很有幫助,但第二遍應該需要抓住主要思想。

第三遍閱讀就要縱覽論文主體了,但同時那些耗費時間的數學與推導部分可以暫時跳過,我們掌握整體脈絡與框架就行。第四遍需要閱讀所有的內容,但這時候肯定還會有一些部分不能理解,那麼暫時跳過它們以後再攻堅。

讀論文是做研究的基礎,高效地讀高質量論文又是重中之重。在課程中,Ng 還分享了很多讀論文、追蹤論文的技巧,感興趣的讀者可查看課程視頻:

CS230 Lecture 8: Career advice / Reading papers:https://www.youtube.com/watch?v=733m6qBH-jI

團隊合作也很重要

除了以上 Open AI 研究科學家 John Schulman 提出的一些建議,Reddit 網友也發表了自己關於如何成為高效 ML 研究者的觀點。

一些網友認為團隊合作也很重要,所以應該多與同事進行交流,向他們解釋不理解的觀點或算法,並說明自己嘗試做的東西。這樣以來,你通常會更容易地發現錯誤和潛在問題,你的同事也能提出一些自己的想法。

除了學術領域之外,另有網友分享了自己在工業界交付產品時的一些實用方法和建議

為自己感興趣的任何項目創建一個工作代碼項目文件夾;如果發現一些有趣或類似於你正在研究的東西,嘗試任何已發表的代碼;在運行 Python 的過程中,你可以利用 pyenv 來輕鬆地避開不同的需求;如果 repo 起作用,則創建一個標有「起作用」的文件菜單,以方便下次找到;

讓自己擅長創建數據集並進行預處理和分類;收集一些與自己研究類似的數據集;當更好的代碼出現時,要嘗試使用;當意識到觀點需要改進時,使用已有方法來打磨優化自己的數據集。

在機器學習領域,每個人都會有自己的一套研究方法,一些好的建議和做法也並不一定適用於所有人。所以,如果想要成為一個高效的機器學習學習者,認清自己進而摸索出適合自己的道路至關重要。

參考連結:

http://joschu.net/blog/opinionated-guide-ml-research.html

https://www.reddit.com/r/MachineLearning/comments/f4oxuj/discussion_what_are_some_habits_of_highly/

相關焦點

  • 吳恩達建議這麼讀論文(附機器學習研究者的養成指南)
    近日,一位網友在 Reddit 上發帖提問:「那些高效的機器學習研究者,都有什麼樣的習慣?」其實,世界上從不缺少優秀的機器學習研究者,也不缺乏好的建議和指南。想要成為一名高效的機器學習研究者,最重要的是要有徹底的自我管理能力和一點堅持到底的決心。Open AI 的研究科學家和創始成員之一 John Schulman 曾撰寫過一篇《機器學習研究指南》,提供了選擇問題和時間管理方面的諸多建議。
  • 吳恩達:機器學習畢業後,如何規劃職業生涯才能成為「老司機」?
    但是,機器學習從業人員應該怎麼規劃職業?造就成功的機器學習職業生涯有哪些關鍵因素?作為曾在多個著名企業和學術機構擔任實驗室負責人的「老司機」,吳恩達可謂經驗豐富,他就以上問題給出了出色的建議,帶你穩步上車。
  • 吳恩達的課上完了?如何科學開啟你的深度學習論文閱讀生涯
    谷歌大腦創始人之一、百度人工智慧小組前負責人吳恩達(Andrew Ng)如是說:任何人都有資格。當你上過一些機器學習相關的課程後,想要更進一步時,可以閱讀一些研究論文。最好能做到重現論文中的方法,得到相似的結果。OpenAI研究者達裡奧·阿莫迪(Dario Amodei)對這個問題的回答是:「為了驗證你是否適合在人工智慧安全或者機器學習領域工作,請快速嘗試使用各種模型。
  • 吳恩達手把手教你刷論文!
    斯坦福教授吳恩達在上周發布了一篇博客,手把手教你如何讀論文,以上問題都在文中一一被解答。在煉丹界中,快速刷論文了解一下最前沿研究已經是每個煉丹師的必備技能了。為了讓自己的知識不過時,從業者們也都要保持學術思維和習慣,和一些走上工作崗位後只用從社會大學學習的領域還不同。
  • 吳恩達教你如何讀論文:繪製進度表格,論文至少看三遍,還要問自己問題
    白交 發自 凹非寺量子位 報導 | 公眾號 QbitAI吳恩達教你如何讀論文,高效了解新領域。就算是博士,也很難對所有的關鍵技術都參透了解。那麼如何有效了解一個新領域,是研究者們必備的一項技能。
  • 吳恩達教你如何成為AI業界大佬
    近來,矽谷迎來裁員潮,機器學習領域的求職壓力也有所增加。如何規劃 ML 職業生涯,才能獲得長期成就?吳恩達教授為機器學習領域的畢業生提供了一些建議。這篇文章內容取自史丹福大學教授、Coursera 聯合創始人吳恩達的課堂演講,主題為《關於在機器學習領域獲得成功職業生涯的幾點建議》。
  • 如何開啟深度學習論文的閱讀模式
    在一個 Quora 問答《I want to pursue machine learning as a career but not sure if I am qualified. How can I test myself?》中,問到如何測試某人是否達到了從事機器學習職業的標準。吳恩達說(只要不斷學習)任何人都可勝任機器學習的工作。
  • 送你一份機器/深度學習自學指南(附視頻&速成方案)
    (以及,如果你確實時間有限,最後還有一個速成指南)五個月入門Part 1:從機器學習開始(兩個月)最好的入門教程,就是吳恩達講授的機器學習。吳恩達的機器學習課程深入講解了經典的機器學習模型,如線性回歸、邏輯回歸、神經網絡、支持向量機、PCA、無監督學習等等。大部分重要概念,都以簡單易懂的方式進行了介紹。課程延伸當你學習到第五節課,也就是開始講述神經網絡時,建議開始查看與課程平行的外部資料。
  • 選機器學習課程怕踩雷?有人幫你選出了top 5優質課
    如果你需要關於學習所需數學知識的建議,可以參閱文末的學習指南(Learning Guide)。如果你之前讀過《Machine Learning: A Probabilistic Perspective》等教科書,那麼這門課程將成為良好的補充。
  • 跟著吳恩達老師學習機器學習,Python筆記分享!
    譯者:AI研習社(成語風)雙語原文連結:A Full-Length Machine Learning Course in Python for Free吳恩達在史丹福大學講授的機器學習課程堪稱Coursera上最具人氣的課程。我之前試聽了好幾門別的機器學習課程但我覺得他的在拆解概念使之變得易於理解方面做得最好。
  • 吳恩達發布一本全新電子書《轉型成為 AI 企業快速指南》
    雷鋒網 AI 科技評論按:史丹福大學教授、谷歌大腦聯合創始人、前百度 AI 科學家吳恩達今天公開發布了一份簡短的電子書《AI Transformation Playbook》(轉型成為 AI 企業快速指南),目標是為感興趣的企業負責人們提供一份客觀的指導,幫助他們建立「AI 戰略」
  • 德國研究者用1.7萬篇arXiv論文預測機器學習...
    但是,隨著研究者發布的論文數量逐年攀升,消化這麼多信息並從中人工識別出可能具備長期科學影響的話題更加困難。本文介紹的研究開發了一種自動化系統,旨在發現重要的研究趨勢,從而幫助研究者更好地規劃自己的學術活動。這個系統從 arXiv 的機器學習 (cs.LG) 和自然語言處理 (cs.CL) 類別中抓取論文及其引用信息,來構建數據集。
  • 吳恩達新書《Machine Learning Yearning》中7個實用建議
    大數據文摘轉載自數據派THU作者:Dan Clark, KDnuggets編譯:顧佳妮、丁楠雅本文為你介紹吳恩達新書中的7個使用建議,致力於講明白機器學習算法是怎樣工作的,以及如何構建一個機器學習項目。
  • 下載量過百萬的吳恩達機器學習和深度學習筆記更新了!(附PDF下載)
    今天,我把吳恩達機器學習和深度學習課程筆記都更新了,並提供下載,這兩本筆記非常適合機器學習和深度學習入門。
  • 機器學習實踐指南
    不過,請嘗試閱讀下列書籍,看看它是否適合你:◈ 機器學習教程Machine Learning textbook[20], Tom Mitchell 著,書可能比較舊,但是卻很經典。這本書很好的解釋介紹了機器學習中最重要的課題,步驟詳盡,逐層深入。
  • 吳恩達的深度學習課程值不值得學?四晚學完的高手給你建議
    的系列深度學習課程,是吳恩達未來三個AI項目之一,他希望通過這個項目在未來達到三個目的:學習者將通過這門在線課掌握深度學習技能並獲得證書滿足一些想利用AI轉型業務的大型非技術公司對 AI 人才的需求希望可以建設一個AI驅動的社會吳恩達在博客中表示,2011 年在Coursera上推出了他與另外四名史丹福大學學生製作的機器學習在線課,迄今為止,共有
  • 吳恩達對話Yann LeCun:從相識Hinton到深度學習崛起
    我讀了那篇文章,覺得「可以學習的機器」聽起來真妙。所以,我開始在幾所大學的圖書館裡面搜索任何我能找到的、討論感知機的書。隨後我意識到,50 年代這個領域的論文很多,然而到了 60 年代,這種討論隨著西蒙與他人合著的關於感知機一本書而終止。吳恩達:那大概是什麼年份?Yann LeCun:大概是 20 世紀 80 年代。
  • 親身體驗了幾十門機器學習課程,我發現這5個是最好的
    今天為大家獻上由資深學習者,通過自己的切身體驗,從眾多機器學習在線課程中精選出的5門最佳課程。除了獻上課程外,還為大家帶來了學習指南! 編程的外衣下,是一顆數學的心。機器學習就是這麼一個單純又硬核的學科。她不像數據科學,又要分析數據、又要做統計,還要溝通交流,做可視化等等。數學!在機器學習的字典裡,只有數學。
  • 帶學吳恩達《機器學習》課程和作業,帶打Kaggle全球頂級大賽!
    【第一階段】學習吳恩達機器學習原版視頻:1.了解機器學習基本概念2.學習單變量線性回歸,體驗最基本模型的魅力3.學習線性代數的知識回顧+多元線性回歸作業:【實操(1)】配置環境、開學習博客和github
  • 吳恩達專訪LeCun:即便在神經網絡的寒冬,我也堅信它終會重回公眾...
    Abbeel 、百度研究院院長林元慶 、「深度學習網紅」Andrej Karpathy、蘋果機器學習研發總監 Ruslan Salakhutdinov。吳恩達:在 LeNet 論文裡你們完善了神經網絡,然後又完善了自動機,然後把兩者結合了起來。Yann LeCun:對的,論文的前一半講的是卷積神經網絡,很多人都喜歡的是這一部分;後一半就很少有人讀了,它講的是序列級別的辨識學習和結構預測,而且不需要正則化,實際上和 CRF 很像。PC 的 CRF 再過幾年也出現了。