辭職從事機器學習研究,脫產一年的我學到了什麼?

做者 | David Mack
來源 | AI開發者

本文做者 David Mack,爲了從事機器學習相關的研究,他辭去了工做,在沒有固定收入的狀況下進行了一年了探索。本文是他對過去一年經驗和體會的總結。編程

梯度降低引導的旅程

最近,我發現個人生活須要一個新的挑戰。我厭倦了個人平常工做,堅持想本身去從事機器學習研究。
這一年充滿了挑戰,且收穫頗豐。我經歷了許多失敗和一系列意想不到的成功,走上了一條徹底不一樣於以前設想的道路。網絡

在這裏,我將告訴你個人經歷:我作了什麼,哪些成功了,哪些失敗了,我學到了什麼,我會作什麼不同的事情。若是你渴望進入機器學習領域,或者想知道成爲一名研究員須要什麼,但願個人文章可以幫到你。架構

我從哪裏開始併發

隨着時間的推移,我工做中的學習和挑戰逐漸減小。之前有不少未知的技能須要學習,如今我天天只須要按照一個規律的模式執行就能夠。我對沒有已知解決方案的開放性問題感到最爲興奮。機器學習

我愈來愈多地把空閒時間花在閱讀學術論文和草擬解決開放性問題的方案上。編輯器

有一天,我坐在森林裏的樹樁上,等着一個朋友回來,我忽然產生了一個想法,那就是我不得不辭職。這種清醒的時刻是奇怪和罕見的,你永遠不知道它會出如今何時。次日早上,我告訴個人團隊我要離開。函數

在大學裏,我攻讀了計算機科學的本科和計算機科學與數學的碩士學位。我一直渴望進一步學習,但從未找到一個吸引個人環境。工具

在我辭職的時候,我很幸運有了一些存款,因此放棄全職工做就不那麼可怕了。我每週工做 2 天並減小開支以使個人財務收支平衡。個人搭檔幫助我,我不少週末都在工做。學習

熱身運動測試

在辭掉工做以前,我已經開始從事微型研究項目,我會作一些有趣的東西,在網上寫下來,這個過程不會花太多時間來完成。

這大大加強了我走這條新道路的信心。經過指導和出版它們(這裏是其中一個例子),我向本身展現了我有研究的基本技能。

我鼓勵任何正在考慮進行研究的人找到一些小項目,並把它們作完。它頗有趣,而且能讓你體驗整個過程。

開始

在進入全職研究以後,我作的第一件事就是創建 Octavian.ai,這是一個我能夠在網上寫做的地方。我將一個網絡流量網站,一個媒體出版物,facebook 和 twitter 整合在一塊兒。雖然我在美術上花了不少時間(我也喜歡平面設計),但在過去的一年裏,這個網站一直是我用得最多的地方。當人們對個人工做感興趣時,我常常讓他們去看看這個網站。

我還發現,有一個品牌能夠將咱們全部的工做和各類演講活動聯繫在一塊兒。我相信這個品牌幫助咱們發展了咱們的社區,由於它幫助組織看起來更加連貫和專業。

我沒有爲這件事情籌集任何資金。這只是一種我的探索的工具,不適合提高。

科研並非魔法

我須要克服的最先的障礙之一是改變進行研究是一種只有精英才能完成的神祕活動的想法。

我如今已經從一些學生、研究人員和工程師那裏聽到了一樣的感覺。即便是出版過相關著做的研究人員也偶爾在 Twitter 上認可感受本身像冒名頂替者,而不是「真正的研究人員」。

雖然我還只是研究領域的一個剛入門的學生,但我據說不少人對此感到消極,因此我想發表一個聲明:研究不是魔法。這只是一個處理問題、定義問題、列出解決方案、嘗試解決方案、瞭解什麼方法有效以及記錄這些問題的過程。任何聰明、勤奮的人均可以走這條路。

此外,你很容易由於懼怕本身能力不夠或者這件事情不值得去作而放棄。相反,開始研究吧,給它時間去自由發展。

進行研究須要很長時間

我今年最大的收穫之一就是投入了不少時間、精力和資源來進行研究。具體來講,個人意思是產生成功的結果:一種比其餘人表現更好的方法,或者發現一個能幫助其餘人的問題。

在個人職業生涯中,我很清楚計劃的謬誤:

「預測完成將來任務所需時間常常會表現出樂觀主義傾向,咱們會低估所需的時間。」

然而,我花了不少時間在研究項目上,才真正作到這一點。我發現每一個項目都會經歷一個週期:

  1. 蜜月期:對問題和潛在解決方案的強烈興奮、好奇和樂觀
  2. 開始工做:打開代碼編輯器,整理數據集,勾畫出實驗架構,知足線性進展
  3. 第一個障礙:解決這個問題比最初設想的要困難。數據處理須要更多的工做。最初的想法是錯的。
  4. 悲傷、漫長的驅動/低谷:堅持成爲支撐的動力,須要修復更多的錯誤,須要編寫更多的測試用例,更多的變化須要嘗試。將來可能會成功,也可能不會。
  5. 最後終於成功:完成這個項目過程當中的一個快樂時刻。你可能永遠不會到達這裏,或者你可能會完全證實你的方法永遠不會奏效。若是是,返回到第一步。
  6. 把它拿出來:寫做,而後點擊發布。至此,你惟一的動機就是再也不參與這個項目。你點擊發布並離開辦公室。

在個人心理評估中,我一般只記得步驟 1 到 3。個人記憶抹去了悲傷的事情,這也許是爲了保護個人熱情。

我如今對我承擔的項目範圍更加謹慎了。我有一個評分系統:

  • 新數據集?+2 分
  • 數據集太大,沒法放在一臺機器的內存中?+1 分
  • 從一篇沒有代碼的論文中實現?+1 分
  • 不適合庫的結構:+1 分
  • 用多個 GPU 訓練?+1 分
  • 集羣訓練?+3 分

我花了不少時間構建數據和訓練基礎設施。例如,一個項目的大部分是將一個模型轉換爲在一個 TPU 集羣上運行(這是我當時惟一擁有的雲資源),這樣我就能夠測試出注意力函數的變化。通過大量的努力,我獲得了一個消極的結果。

我選擇放棄學術論文,轉而在媒體上寫博客。這是一把雙刃劍:它犧牲嚴謹性,讓我有時間折騰更多的項目。有人和個人朋友們這件事的討論利弊,他說:「若是你寫一篇論文,大多數人不管如何都讀不到這篇博客文章了」,這就解決了問題。

考慮到本身的我的時間以外,我如今很是感謝研究機構的資源。即便是寫一篇論文,理想狀況下你也須要一個團隊的合做者,幾個月,大量的 GPU 時間,而後幾我的來幫忙寫。

與初創企業和圖書行業同樣,深度學習研究也是一個基於點擊率的模型——一小部分的論文將得到最大的關注。研究就像抽獎:有些票會有獎品,但你不知道是哪一張。最好的辦法是買不少票。做爲一名獨立研究者,我必須仔細挑選幾張票。

無錢訓練

機器學習研究中花費在增長

人工智能的冬天因爲 GPU 的發展而部分解凍了,其中不少地方都解凍了。
這張來自 OpenAI 的圖表顯示了訓練資源呈指數級增加的明顯趨勢,即產生最新成果的成本愈來愈高:

計算規模(歸功於 OpenAI)

在今年年初,我收集了我能獲得的資源:一堆谷歌雲信用卡。我把本身的一些錢投入了託管。與任何研究實驗室都能接觸到的資源相比,這一點都顯得蒼白無力。因爲如下幾個緣由,資源再也不是瓶頸:

  • 建造一個可以證實大量資源是合理的東西須要花費大量的工程時間。我一直很當心地只在資源發揮做用的時候使用它們。
  • 我選擇了一些數學/理論性更強的問題(而不是在擬合問題下「將模型放大」)。
  • 在某些狀況下,你可使用較小版本的模型進行試驗,而後在充分調試後再花掉訓練預算。

隨着時間的發展,一些善良的人和組織捐贈了資源:

  • FloydHub:使用 GPU 在雲計算機上運行機器學習實驗的一種很是簡單的方法。
  • Google TPU 研究雲:TPU 如今是我最喜歡的大規模訓練方式。編程模型將你的訓練分爲多個 batch,所以要使用更多的機器,須要增長 batch 大小。

我真的很感謝上面兩個資源的支持,它使不少工做成爲可能。

無錢招聘

我真的很喜歡創造有本身生命的東西。小時候,我寫過多人遊戲引擎,程序世界和 BEAM 機器人。做爲一個成年人,我開始嘗試建立公司。天天 SketchDeck 都會彙集許多偉大的人,他們會製做精美的做品,這給我帶來了不少樂趣。

做爲 Octavian.ai 項目的一部分,我想建立一個合做者社區。事實證實(絕不奇怪)很難說服人們在沒有錢的狀況下與你共事。他們也是要恰飯的。

然而,一些人確實站起來並作出了貢獻:

Andrew Jefferson,一位我終生的朋友,在從事平常工做的同時,他編寫、評審、演講、發表文章和幻燈片。

今年夏天加入的 Ashwath Kumar Salimath 幫助撰寫了一系列文章,並發表了本身的文章。謝謝大家倆!

此外,隨着這一年的發展,許多人加入了咱們的聊天室。一個對圖形機器學習感興趣的羣體慢慢出現了。咱們進行了不少有趣的討論,我真的很高興對這個話題感興趣的人找到了彼此。

無錢營銷

隨着深度學習從學術界一個不起眼的角落成長爲一個價值 10 億美圓的行業,咱們看到了學術界和全球營銷預算的奇妙交叉。一切看起來都很完美,許多會議和訓練營應運而生。

我在 Octavian.ai 的營銷上投入了 0 美圓。這一年來,我發現咱們接觸讀者的最佳方式是:
谷歌搜索帶來了咱們大部分的博客流量

咱們的免費機器圖形學習課程經過 HackerNews, Reddit 和 Twitter 進行了大量分享。

在會議和會議上交談會帶來流量和有價值的互動

在圖形上進行機器學習是很是適合的。我最感興趣的是在這個世界上找到真正重要的人,而不是試圖擴大眼球或收到更多喜歡。

在沒有主管和團隊的狀況下生存

今年年初,我真的低估了一件事,那就是與主管和團隊合做。我有時開玩笑說,我這一年是「攻讀博士學位的第一年,不一樣的是,沒有導師,我本身在家裏學習」。

做爲一個創業者,我有着強烈的獨狼心態。我通常不想等待外部因素,相反,我相信經過堅持不懈,我能夠到達任何我想去的地方。

我很幸運有幾個親密的同事,一年來有一個不斷壯大的社區來支持個人努力。然而,個人大部分工做是在相對孤立的環境中完成的

我如今認爲我能夠和主管一塊兒進步得更快。這在一些方面會有所幫助:

  • 向我提出好問題
  • 指導我找到我不可能想到的好辦法
  • 壓力/靈感,作得更好
  • 做爲一個團隊的一員會幫助我:
  • 交流和發展更多的想法
  • 更快地測試想法
  • 互相學習
  • 嘗試更多的事情
  • 編寫更全面的報告

獨自工做(大部分)是孤獨的。你須要在精神上能快速恢復,而且堅決地相信本身能到達目的地。

最後,從脆弱的角度來講,當你工做以外的生活陷入困境時,作這種工做是很是困難的。生活的曲折消耗了足夠的能量,很難繼續進行單獨的研究。

發現好問題

這是我一年來發展的最大的技能。我如今相信這是研究的第一步,也是許多人成功的祕訣。

選擇要解決的問題是一門藝術。這一年來,有那麼多人來找我,要求我幫助他們挑選本身的研究問題,因而我寫了一份建議清單。

在今年年初,挑選一個問題進行研究既使人困惑又使人擔心。如今我有了一個很長的列表,列出了我想要探索的領域,以及度量標準和實驗的概念。

我認爲這項技能須要時間來提升。這是直覺(根據過去的經驗),什麼問題適合研究,什麼適合你的資源,以及什麼解決方案可能會挖掘出一些成功。

如下是發展這種技能的一些建議:

  • 在公共數據集/已知問題上參與比賽可讓你保持誠實——你有模型能夠擊敗並能創建成功的標準。
  • 儘管爲新類型的問題建立本身的數據集也頗有價值,但在這裏,你更容易知足於你的解決方案是否真正新穎,而且很難讓其餘人對你的工做感興趣。
  • 閱讀大量的論文,看看他們遇到了什麼問題,他們如何試圖解決這些問題,以及他們如何衡量成功。
    與人交談。
  • 撰寫研究建議並得到反饋。
  • 尋找在現實世界有價值的問題——若是你解決了這些問題,天然會有更大的成果和更多的關注。
  • 傾聽你的好奇心:做爲一個研究者,你的動機是一個有價值的催化劑。若是你以爲有些東西還沒被充分發掘,去看看吧。
  • 若是大家是兩個不一樣領域的專家,看看這兩個領域的交叉點。你能夠獲得一些別人沒有的靈感。
  • 參與整個研究項目的生命週期將使你得到其餘方法沒法得到的洞察力。將最初的想法與最終的結果進行比較。

寫做是生命之源

你全部未溝通的想法都將被忽略。提升寫做水平的最好方法就是寫做。

在寫做中(不管是想法仍是結果),你不肯定的想法都會暴露在你面前。

個人寫做能力和研究思路在一年中經過寫許多文章而獲得了很大的發展。

技術題材常青

你不知道什麼會引發讀者的共鳴。

寫做的另外一個好處是它提供了參與度統計數據。查看哪些文章作得好,哪些文章作得很差,我對此無限着迷。其中有一些我也常常感到驚訝。

我早期寫的文章之一「如何選擇學習速率」,是目前 Octavian 上閱讀量最高的文章(66K)。在寫做的時候,我歷來沒有料到這一點。

沒有博士學位

自從本科畢業以來,我一直在考慮是否要攻讀博士學位。做爲一名本科生,我花了一個夏天的時間和團隊一塊兒完成一篇論文,最後一學期個人碩士論文都是爲這門課寫的一篇研究論文。最終,我從未發現我想要的環境、團隊和問題的結合。我在創業過程當中發現的精力和活力對我更有吸引力。

我認爲沒有博士學位對我有一些不利之處:

  • 博士學位讓你有時間閱讀大量論文和實踐研究技能。
  • 博士學位給了你一個有利於良好研究的導師和環境。
  • 博士學位是一系列如今對我有吸引力的工做的預期切入點。

我仍然對攻讀博士學位持開放態度。我表妹很瞭解這個職業,並準備攻讀第二個博士學位,因此我很感激有不少途徑能夠了解這一點。

我會怎麼作呢?

這一年過去後,我如今能夠反思一下我可能能夠作得更好的方式。

首先,我不後悔。我能給本身的最大禮物就是時間。有足夠的時間和空間去關注個人好奇心,努力完成對我來講很重要的項目,這是很是特別的,我真的很幸運我能作到。

對我來講,今年開始是一次真正的冒險。目的地未知,我將邊走邊摸索將來的道路。

今年我有許多寬鬆的目標,其中一些已經實現:

向我本身證實我有能力進行學術研究。我想我作到了。這一年我學到了不少關於構建 ML 系統的技巧和研究的技巧。我對本身的研究方向也有了更好的瞭解。我看到本身仍在思考問題,掌握了基本技能。我可以完成全部的研究步驟,並有信心指導學生們。

建立一個機器學習驅動的企業。我在這個目標上失敗了。我探索了不少想法,和不少人交談,但沒有找到答案。這在必定程度上是由於這個目標並無集中在解決一個真正的問題上;我歷來沒有發現一個我很是想解決的問題。

提升我搭建機器學習系統的技能。我確實作到了。在每一篇已發表的文章(以及一堆未發表的文章)後面都有大量的代碼、閱讀文章和調試模型。我花了大量時間在訓練和數據基礎設施上。個人實現技能大大提升了,我對系統爲何不能工做以及如何處理它有很強的直覺。

製做一份學術級的研究報告。我沒有達到這個目標。到今年年末,我已經創建了嘗試這一點的技能和研究問題清單,個人最後一個大項目沒有產生積極的結果。我沒時間嘗試更多的解決方案。不過,它確實教會了我不少關於擴大 TPU 訓練的知識。我想花更多的時間來實現這個目標。

一位朋友在這一年給個人一條建議是,爲了個人興趣,尋找世界上最好的人,並向他們學習。我仍然不知道如何在沒有博士學位的狀況下完成這項工做,但這並不意味着這是不可能的。

我時常檢討本身的中心目標是什麼。一個持久的答案是「創造我引覺得傲的東西」。我堅持本身的高標準,隨着個人學習水平的提升而提升,所以我傾向於認爲我全部的工做都不夠好。感謝全部幫助我走上這條道路的人。

相關文章
相關標籤/搜索