全職奶爸的一年深度學習之路:從零基礎到成為研究科學家
新智元報道
作者:Sylvain Gugger
編輯:肖琴
【新智元導讀】零基礎學習深度學習是怎樣一種體驗?本文作者分享了他僅僅一年時間從零基礎到成為研究科學家的歷程,並且提出了一些有用的建議。
2018年時,我決心開啟深度學習之旅。
2017年10月,在閱讀了《紐約時報》一篇描述深度學習人才短缺的文章之後,我偶然發現了一個名叫fast.ai的網站。說它改變了我的生活聽起來有點陳詞濫調,但那時的我很難想像,一年之後,我會在幕後幫助準備這門課程的下一個版本。
因此,在這篇文章中,我將講述我個人進入深度學習的歷程,並且分享一些建議,我認為這些建議在對六個月前可能對我有用。
使用神經網路將埃菲爾鐵塔添加到一幅畫中的示例
我是誰?我從哪裡來?
我的背景主要是數學。我擁有法國大學碩士學位;並且曾攻讀過博士學位,但六個月後就放棄了,因為我覺得這太令人沮喪了。於是接下來的7年,我繼續在巴黎教本科生。對於編程,我是自學的。我13歲時,我父親就給了我一本《Basic語言入門》。
我在三年半前搬到了紐約,成了半個全職奶爸,半個法國出版社的教科書作者。當我第一次發現fast.ai的時候,我對圍繞AI的炒作很好奇,我想知道我是否能理解那些似乎只有少數天才才能理解的東西。
我必須承認,我一開始幾乎沒怎麼上這門課;它聲稱可以向任何只有一年編程經驗和高中數學知識的人解釋深度學習,這個說法對我來說非常可疑,我想知道它是不是完全是騙人的(劇透警告:不是)。但我還是決定上完它;我每周抽出7個小時來學習這門課程。
雖然我在數學方面有明顯的優勢,但在我稱之為「geeky stuff」的東西上苦苦掙扎。我是一名Windows用戶,之前從未使用過終端。在終於能夠訓練自己的狗貓分類器之前,僅僅是設置就花了我一個多星期的時間。每次不得不在終端上運行一些命令時,感覺就像是某種形式的折磨(這一點仍然沒有多大改變!)
如果你是這個領域的新手,並且正在其中的某個部分(或全部)掙扎,請記住,沒有人能輕鬆地做到。總有一些事情是你不知道,那會是一個挑戰,但如果你堅持下去,你就會克服它。隨著時間的推移,它會變得更容易,至少會容易一點……我有一半的bash命令仍然需要幫助,並且在第一節課中兩次損壞了文檔和課程網站。幸運的是,大家都忙著看Jeremy講課,沒有人注意到這些。
你需要高等數學才能進行深度學習嗎?
簡單地說,答案是否定的。長篇大論地說,答案仍然是否定的。任何告訴你相反答案的人都只是想嚇唬你而已。在深度學習的某些理論研究領域,你可能需要高等數學,但每個人都有自己的空間。
要在實踐中訓練一個模型,你只需要知道三件事:知道導數是什麼,知道誤差函數的log和exp,以及知道矩陣乘積是什麼。你可以在很短的時間內,利用多種在線資源學習所有這些知識。在課程中,Jeremy推薦了可汗學院學習導數、log和exp,以及3blue1brown網站學習矩陣乘積。
在我看來,你真正需要掌握的是數學是「broadcasting」(有點像數學和編程的交叉領域)。
如果你是認真的,那就制定自己的學習計劃
在完成課程的第一部分後,我很清楚我想在這個領域工作(因此我有了很強的決心)。我考慮了各種各樣的培訓課程,這些培訓承諾可以把我變成一名數據科學家,條件是巨額的學費。我在網上找到了很多培訓課程的褒獎評價,這讓我有點害怕,幸好我很快就放棄了這個想法。
網上有足夠多的免費(或廉價)資源,能夠教你所需要的一切。所以只要你足夠自律,就可以制定自己的學習計劃。最好的當然是fast.ai的課程(但我現在fast.ai工作,所以有點偏頗;))。
我以為我不會被選入International Fellowship,免費獲得第二部分課程,所以當收到錄取郵件時我有點措手不及。我訂了一個共享辦公的地方,讓自己遠離有一個嬰兒和一個蹣跚學步的小孩的家裡,還雇了保姆。然後,每天朝九晚五,加上晚上,我都在學習。我原以為我會接著上其他MOOC,但Jeremy在論壇上布置的挑戰性作業,以及那裡充滿活力的社區,讓我一直沒有時間去尋找其他地方。
雖然這門課的目的是讓人們每周花7個小時做作業,但它絕對足夠讓你忙更長時間,尤其是在第二部分。如果你認真考慮轉行深度學習,那麼你應該花七周的時間來努力完成這門課。如果你能負擔得起金錢或家庭方面的費用,你也可以自己飛到舊金山,每天去參加南加州大學的學習小組。如果你做不到,那就在你所在的城市裡找到一個學習小組(或者成立自己的小組)。無論如何,都要在論壇上保持活躍,不僅要在出現bug時提問題,還要幫助其他人寫代碼。
展現你的能力
我很害羞,我討厭交際。認識我的人都知道,我不善於閑聊。幸運的是,有很多方法可以讓你在安全的電腦屏幕背後向潛在僱主推銷自己。
以下是一些可以提供幫助的事情:
製作你自己的項目,來展示你學到了什麼。在轉移到另一個項目之前,一定要徹底完善前一個項目。
寫博客來解釋你學到了什麼。不一定要寫複雜的新研究文章,可以從模型的基礎開始,即使你認為已經有成千上萬這樣的文章了。僅僅通過嘗試解釋你認為你已經理解了的東西,就能學到很多。
為深度學習相關的開源項目(比如fastai library)提交貢獻。
參加Kaggle競賽(這條仍然在我的待辦事項清單上,也許這將是我2019年的決心)。
建立一個Twitter賬戶,告訴人們以上所有的事情。
在課程還沒結束的時候,我就得到了幾份工作offer,這讓我非常驚訝。然後, Jeremy提到他要重fastai library,我主動提出幫忙。事情順水推舟,他設法得到了AWS的贊助,讓我成為了fast.ai的研究科學家。
學習的三個階段
在我看來,學習都有三個階段。首先你要抽象地理解某件事,然後你要能夠解釋它,最後你要能設法實際做到。這就是為什麼你是否能夠自己重寫一遍課程上看到的代碼非常重要。
就深度學習而言,上完了課程是我的第一階段;第二階段是在論壇上寫博客文章或回答問題;第三階段就是和Jeremy 一起重建fastai library。
在過去的幾個月里,我學到的東西甚至比我在跟著學完課程時還要多。其中有些內容我很快就放棄了,還有很多是在Jeremy的指導下通過重構代碼實現的,直到最後得到今天看到的結果。構建一個完全集成的框架意味著你必須實現所有內容,因此你需要掌握流程的每個部分。
總之,這是我一生中學習最多的一年。我將永遠感謝Rachel和Jeremy創造了這門神奇的課程,我很自豪能為它做出一點小小的貢獻。
原文:
https://www.fast.ai/2019/01/02/one-year-of-deep-learning/
【加入社群】
新智元 AI 技術 產業社群招募中,歡迎對 AI 技術 產業落地感興趣的同學,加小助手微信號:aiera2015_2入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)。


※華為雲刷新深度學習加速紀錄:128塊GPU,10分鐘訓練完ImageNet
※清華髮布《AI晶元技術白皮書》:邊緣計算崛起,雲+端架構設計
TAG:新智元 |