OpenAI聯合創始人:什麼是研究中至關重要的

隨著國家大戰略的需求和創投生態的發展,如何提升學術研究的能力和研究成果在產業端的價值,這是一個值得思考和探討的話題。本文作者分享了一篇來自John Schulman關於機器學習領域的研究思考內容,希望能給你帶來一些啟發。

OpenAI聯合創始人:什麼是研究中至關重要的

因為做早期風險投資,讓我有大量的時間與許多優秀的創始人打交道。尤其是近一年來,在與一些院士和優秀科研團隊的共事中,我們一起嘗試跨越從學術研究到產業轉化的鴻溝,探索將研究成果透過商業化公司發展的最佳實踐。

通常來說,企業的創始人和科研學者完全是兩類人,但這兩類人群中的優秀者也有一些共性的特徵。他們都需要面對高失敗率的挑戰,他們的成功都建立在找到所處領域的最重要的問題,並找到其解決方案。

隨著國家大戰略的需求和創投生態的發展,如何提升學術研究的能力和研究成果在產業端的價值是很值得思考和討論的話題。

今天分享一篇來自John Schulman關於機器學習領域的研究思考內容,希望能起到拋磚引玉的作用。也許你對John有些許陌生,但他作為聯合創始人創立的OpenAI目前是全球最受矚目的科技公司,John Schulman也是強化學習領域中最有話語權的學者之一。

在這篇內容中,John基於自己長時間從事研究的經驗對機器學習提出了寶貴的建議。在John看來,研究中至關重要的是選擇解決正確的問題,持之以恆的在這些問題上取得進步,並實現高速的個人成長,希望這篇內容能給您帶來思考與啟發。

成功的關鍵是解決正確的問題、在這些問題上不斷進步、並實現持續的個人成長。這篇文章由三部分組成,每一部分都涵蓋了其中的一個主題。

先花幾分鐘時間討論一下ML中的哪些發現和成就對你來說是最有趣、最有價值的。想想它們為什麼如此突出——因為它是一個改變你想法的突破性結果;或者因為它是一個可重複使用的演算法;還是因為它對一些反覆出現的問題有深刻見解?你應該渴望產生這樣的結果、演算法和見解。

01 選擇問題

提高你的品味——

選擇去解決什麼問題的能力比你本身具有的技能更重要。透過觀察哪些想法成功了、哪些想法被忘掉了,就能逐漸形成你對問題對品味。你會看到哪些問題能產生新想法並獲得成果,哪些因為太複雜或太脆弱,或者因為增量改進太小而被忽略。

如何快速培養對問題的品味,其實有幾個好辦法:

1)閱讀大量論文,並對其進行批判性評估。如果可能的話,與對該主題有深入瞭解的人討論它們。

2)加入研究小組中與其他人一起研究類似的課題。這樣你們就可以吸取彼此的經驗。

3)向有經驗的研究人員尋求建議。當你決定做哪一項研究,以及你在這項研究上表現如何時,你的技能就該發揮作用了。

4)花時間思考什麼研究是有用的和有成果的。思考以下幾個問題:

理論什麼時候有用?

實證結果何時可以轉化?

是什麼原因導致一些想法被廣泛接受,而另一些卻被遺忘?

你所在領域的趨勢如何?哪些研究會淘汰其他研究?

第1-3項需要最佳化環境和其他研究人員給你資訊,而第4項是你自己要做的事情。作為1-3重要性的經驗證據,考慮一下最具影響力的研究是如何緊密聚集在少數研究團體和機構中的。

這並不是因為這些人比其他人聰明得多,而是因為他們擁有更高密度的專業知識和觀點,這使他們比社群中的其他人領先一點,因此他們在產生新結果方面佔據主導地位。

如果你沒有足夠的幸運處在一個相關專業知識高度密集的環境中,不要絕望。你只需要格外努力,就能走在眾人的前面,而且特別重要的是,要專門化和發展你自己獨特的視角。

1. 研究:想法驅動VS目標驅動

簡單地說,有兩種不同的方式可以讓你決定下一步做什麼。

1)想法驅動

遵循文獻的某些部分。當你閱讀一篇關於如何做XX的論文時,有了如何做得更好的想法,然後著手一個專案來測試你的想法。

2)目標驅動

設定一個願景,比如你想要為人工智慧賦予一些新的能力,然後去解決讓你更接近目標的問題。(下面,我給出了幾個我自己的研究案例,包括使用強化學習進行3D人形運動的目標。) 在你的實驗中,你可以測試文獻中的各種現有方法,然後開發出自己的改進方案。

當然,這兩種方法並不相互排斥。任何給定的ML(MachineLearning機器學習)子空間都與一些目標有關(例如,目標檢測)。任何“想法驅動”的專案都將代表該子空間目標的進展,因此在某種意義上,它是目標驅動研究的一個例項。但在這裡,我會把目標驅動研究理解為你的目標比你整個子空間的目標更具體,更像是讓X第一次發揮作用,而不是讓X更好地發揮作用。

我個人建議大多數人進行目標驅動的研究,我自己也一直遵循這個策略。

想法驅動型研究的主要風險在於很可能會被搶先或重複他人研究。世界各地的研究人員都在閱讀相同的文獻,所以他們有相似的想法。為了在想法驅動的研究中取得突破,你不僅要對你的主題有非常深刻的理解,還要與社群其他人有不同的觀點——有些人可以做到,但很難。

另一方面,有了目標驅動的研究,你的目標會給你一個不同於社群其他人的視角。它會引導你問別人沒有問過的問題,使你取得更大的進步。目標驅動的研究也更有激勵性。每天早上醒來,你可以想象你的目標實現時會是什麼樣子,你會有什麼感覺。這樣會讓堅持一個有起有落的長期研究專案變得更加容易。目標也能使一組研究人員合作,攻克一個問題的不同方面,而想法驅動的研究最好由1-2人的“團隊”組成。

2. 目標驅動研究案例:我在研究生院期間的研究

在我博士的前半部分,我的目標是讓機器人能夠操縱可變形的物體——包括外科手術機器人打結、家用機器人疊衣服。雖然這個目標是由我的顧問Pieter Abbeel確定的,這也是他實驗室的主要目標,但我對如何實現這個目標有著自己的看法——我的方法是基於從人類演示中學習,從解決讓PR2在繩子上打結的問題開始。然後出現了各種意想不到的子問題,其中一個就是軌跡最佳化,在這個子問題上獲得的成果,最後成為了“打結專案”最有影響力的產品。

在博士的後半段,我對強化學習產生了興趣。雖然強化學習可以應用到很多領域,但是我決定專注於機器人運動,因為這是一個具體的目標,結果也足以讓我振奮。

具體來說,我的目標是讓一個3D機器人使用強化學習從頭開始學習跑步。經過初步探索,我決定將重點放在策略梯度方法上,因為它們似乎最適合理解和數學分析,而且我可以利用我的優勢進行最佳化。在這期間,我開發了TRPO和GAE,最終實現了3D仿人運動的最初目標。

透過運用策略梯度方法研究運動,我獲得了第一個成果,DeepMind團隊使用雅達利的DQN展示了這些成果。隨之,許多人加入了這股潮流,並試圖開發更好的Q-learning版本,並將它們應用到Atari領域。

然而,我已經探索了Q-learning並得出結論,對於我正在研究的運動任務來說,這不是一個好方法,所以我繼續研究策略梯度方法,所以才有了TRPO、GAE和後來的PPO——現在是我最著名的作品。從這個例子可以看出,從社群的其他問題中選擇一個不同的問題是如何引導你探索不同的想法的。

3. 目標驅動研究案例:把自己限制在通解上

目標驅動研究的一個陷阱是把你的目標看得太字面。如果你心中有一個特定的能力,可能有一些方法來實現它,但這種方法並不有趣,也不會推進機器學習領域。你應該把你的研究限制在那些看起來通用的、可以應用於其他問題的解決方案上。

例如,在研究機器人運動時,我避免將領域資訊納入解決方案——目標是在模擬中實現運動,這是一種通用的方法,可以應用於其他問題。為了看到生命的最初跡象,我做了一些特徵工程和獎勵塑造,但我小心翼翼讓我的更改保持簡單,不讓它們影響我正在開發的演算法。

現在,我把影片遊戲作為一個試驗平臺,我敢說我的演算法思想不是專門針對這種環境的——它們同樣可以很好地應用於機器人。

4. 志存高遠,逐步向更高的目標攀登

有時候,那些既聰明又勤奮的人做不出偉大的研究。在我看來,失敗的主要原因是他們過於關注不重要的問題。當你著手一個研究專案時,你應該問自己:潛在的上升空間有多大?會有10%的改進還是10倍的改進?我經常看到研究人員接手看似合理的專案,但只能對某些指標產生微小的改進。

在你試圖實現的更大目標的背景下,增量研究(那些10%的改進)是最有用的。例如,關於使用卷積神經網路進行ImageNet分類的開創性論文(Krizhevsky,Sutskever,& Hinton,2012年)不包含任何全新的演算法元件,相反,它累積了大量的小改進,實現了前所未有的結果,這在當時幾乎出乎所有人的意料(儘管我們現在認為這是理所當然的)。

在你的日常研究中,你會在表現和理解方面不斷進步。但是這些小步驟會讓你朝著一個更大的目標前進,這個目標代表著一種非漸進式的進步。

如果你正在研究增量思維,要知道它們的有用性取決於它們的複雜性。在基線上稍微改進的方法最好非常簡單,否則沒有人會費心去使用它——甚至是你。如果有10%的改進,最好是2行程式碼,而如果有50%的改進,可以增加10行程式碼,等等。(我給出這些數字只是為了說明,實際數字顯然取決於域。)

02 不斷進步

要在機器學習中開發新的演算法和見解,需要長時間專注於一個問題。這一部分是關於在這個長期解決問題的過程中如何培養有效的習慣,讓你不斷地朝著好的結果前進。

1. 使用一個筆記本,並經常翻閱它

我強烈建議你用一個筆記本來記錄你每天的想法和實驗。我在研究生院學習了5年,在OpenAI學習了2年,我覺得這非常有幫助。

我每一天都會建立一個條目。在這個條目中,我會寫下我正在做的事情、我的想法和實驗結果(貼上在圖和表中)。每隔1或2周,我會做一個回顧,閱讀我所有的日常記錄,並將資訊濃縮成一個摘要。通常我的回顧包含實驗發現、見解(可能來自我、我的同事或我讀到的東西)、程式碼進度(我實現了什麼)和後續步驟/未來研究的部分。

做完一週的回顧後,我經常會回顧前一週,看看我是否跟進了那一週我想到的所有事情。此外,在做這個回顧時,我有時會將資訊轉移到其他筆記來源。(例如,我將backburner想法和專案的列表與筆記本分開儲存。)

2. 保留這個筆記本並定期檢查有什麼價值?

首先,筆記本是一個很好的工具,當你有想法的時候就把它們寫下來,這樣你以後就可以重溫它們了。當我回顧這周的日誌時,我通常會補上一個當時沒有想到的內容。

第二,筆記本幫助你把你的實驗結果儲存在一個統一的地方,這樣你以後可以很容易地找到結果。你可能很容易忘記一些結論,比如哪些超引數產生了影響,這時你就會想要重新翻閱舊筆記本中的條目。

第三,筆記本可以讓你檢測自己的時間使用。你如果想知道“上週進行到哪裡了?”,筆記本會幫你回答這個問題。

你可能會不滿意自己的吞吐量,並意識到需要最佳化你的時間管理。你也可能在幾個月後回顧過去,意識到你在想法之間搖擺不定——你有幾個半成品專案,但是你沒有足夠長的時間根據它們來產生顯著的成果。

3. 何時切換問題

要解決一個具有挑戰性的問題,你需要花足夠的時間。但在經驗機器學習研究中,很難知道你是否已經足夠努力地嘗試了一個想法。有時候這個想法有可能行得通,但是如果你弄錯了一個細節,你就看不到任何生命跡象。但是其他的想法無論你如何努力都註定要失敗。

根據我的經驗,相比問題切換不夠,過於頻繁地切換問題(並放棄有前途的想法)是更常見的失敗模式。通常,當你正在為實現當前想法而付出漫長的努力時,另一個有希望的想法會出現,你會想跳到那個想法。如果你可以迅速嘗試這個想法,而且潛在的上升空間很大,那麼就去做吧。但更常見的是,你對新想法的最初結果會令人失望,需要更持久的努力才能產生顯著的結果。

作為一個經驗法則,當你回顧你幾個月來一直在做的專案時,你應該會發現有很多小的死衚衕,但是你的大部分時間都花在了可以交付成果的專案上,比如一篇論文或者一篇博文。

如果你回顧你的時間,發現很大一部分都花在了半成品專案上——這算不上明確的失敗,而是你為了一些新想法所放棄的——那你以後應該更加努力地保持一致性,學會堅持到底。

還有一個我沒親自嘗試過的策略,但經過思考後我認為它很有意義,那就是投入一些固定的時間預算去嘗試與你的研究主線不同的新想法。比方說,每週花一天時間做一些與主專案完全不同的事情。這將構成一種無限的探索,也有助於拓寬你的知識面。

03 個人能力發展

無論你在研究過程中如何分配時間,你一定會學到很多東西。每個專案都會帶來新的挑戰,你可以在這個過程中獲得背景材料和技能。然而,長遠來看,透過定期為個人發展留出時間,可以顯著提高做好研究的機會。

具體來說,你應該分配一部分時間來提高你對ML(MachineLearning機器學習)的通用知識,而不是隻專注於你當前的專案。如果你不分配這些時間,那麼在你學會日常研究所需的基礎知識後,你的知識可能會停滯不前。適應你所熟悉的方法的舒適區並不難,你需要積極努力去擴充套件這個舒適區。

建立你的ML(MachineLearning機器學習)知識的主要方法是閱讀教科書和論文;並從這些資源中重建演算法。在職業生涯的早期,我建議把時間平均分配在課本和論文上。你應該選擇一小部分相關的教科書和論文來逐步研究,你也應該重建你最喜歡的論文中的模型和演算法。

大多數機器學習的學生在完成他們的學校課程後,不會花時間閱讀教科書。我認為這樣是不對的,因為教科書是比論文更密集的知識吸收方式。每篇會議論文通常包含一個主要的新觀點,以及一個極其簡潔的研究背景,從中無法學到任何東西,需要你花更多的時間去理解符號和術語,而不是概念本身。另一方面,好的教科書收集了幾十年的想法,並用相同的符號按適當的順序呈現出來。

除了閱讀機器學習入門教材,還要閱讀你感興趣領域的其他書籍。我最喜歡的幾本書是Nocedal & Wright的《數值最最佳化》,以及Cover & Thomas的《資訊理論基礎》。

除了課本,我推薦你閱讀感興趣的研究人員的博士論文。ML(MachineLearning機器學習)中的博士論文通常按以下順序排列:

介紹性和背景材料

之前在會議上發表的幾篇論文(據說你只需將你的論文“釘在一起”就可以寫論文了)

結論和展望

你可能會從第(1)和第(3)部分中受益頗深,因為它們包含了一個由專家撰寫的關於該領域過去和未來的統一觀點。最新論文通常是找到一個活躍領域文獻綜述的最好地方,但是舊的論文也經常包含有價值的觀點。

教科書和論文有助於積累你的基礎知識,但是你也需要閱讀大量的論文來將你的知識提升到前沿。當你剛剛開始研究生涯時,我建議花大量時間重現論文中的想法,並將你的結果與發表的結果進行比較。

首先,與被動閱讀相比,這會讓你對主題有更深刻的理解。

第二,你將獲得實踐經驗,並且透過重現現有的研究(期望的效能水平是已知的),你將獲得比做原始研究更快的反饋。一旦你可以很容易地複製最先進的技術,就可以準備好超越它。

除了閱讀開創性的論文並重建它們,你還應該跟蹤你的領域中發表的不那麼優秀的論文。用批判的眼光閱讀論文有助於你注意到你所在領域的趨勢(也許你注意到許多論文使用了一些新技術並取得了良好的成果——也許你應該探索一下)。

它還可以透過觀察想法的依賴圖來建立自己的品味——哪些想法得到了廣泛應用,併為其他想法打開了大門。

去做偉大的研究吧!

本文由 @胖福饅頭 原創釋出於人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基於 CC0 協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供資訊儲存空間服務。