知乎上有個問題,“孩子今年開學上小學五年級了,現在報課外班學Tensorflow還來得及嗎?”有近百萬的瀏覽。
其中有個回答是:有點晚。我家娃一歲開始就開始讀Paper,現在已經可以熟練敲鍵盤寫MXNet程式碼,雖然語法錯誤還比較多。他媽媽在Google上班是用TensorFlow,但他對MXNet興趣更大一點。不過比起敲程式碼,調參他更在行。
隨回答還附上了一張小孩在電腦前玩耍的照片。
拿現在流行的話說,如此“凡爾賽”,非但沒被懟,截止到目前,知乎上顯示已有超過2450個贊。
為什麼這麼反常規?
不僅是因為這個回答很皮,還因為答主是李沐!
1
從李沐《博士這五年》一文
看天才少年的人生選擇
李沐是誰?
他是矽谷華人技術人才,深度學習框架MXNet作者之一,也是《動手學深度學習》作者之一。
2004年,李沐從計算機系ACM班畢業。上海交通大學ACM班是以培養計算機科學家而聞名的“特色班”,自大學起李沐就開啟了他的開掛人生。
這是李沐的職業生涯路徑:
順帶一提,上面李沐提到的“孩子的媽媽”,也就是他妻子,也是業內很厲害的人物。2012年,李沐選擇離開百度前往CMU深造時,他妻子當時也被MIT錄取,這也成為了他選擇去CMU學習的一大重要原因。後來李沐的妻子入職Google。
李沐究竟是個怎樣的人?他在人生重要節點上是如何做選擇的?這些答案,可以從他的《博士這五年》一文窺見一二。
「答辯前一天的晚上,
我想了兩個問題,
一個是“博士收穫最大的是什麼”,
另一個是“如果可以重來會怎麼辦”。」
——李沐《博士這五年》
01 讀博收穫最大的是什麼?
2012年8月12日,李沐早上去公司開完會,中午正式辭去百度高階研究員的工作,奔赴機場,準備進入CMU研讀博士。
“在百度的經歷讓我學到了很多,也更清楚地發現了自己的短板。但是當時國內做系統方向的人比較少,所以我還是選擇了去美國繼續攻讀博士。”
初到美國,李沐是迷茫的, “2012年8月提著一個行李箱降落在匹茲堡機場。沒找住的地方,也不知道CMU應該怎麼去。對未來一片迷茫,但充滿樂觀。” 經過5年學習,他自己總結收穫很多:“這五年時間自然學到了很多東西,例如系統地學習了分散式系統,緊跟了機器學習這五年的發展,寫文章做幻燈片做報告水平有提升,程式碼能力也加強了些。自信上有所提高,覺得既可以做一流的研究,也可以寫跟大團隊PK的程式碼。只要努力,對手沒什麼可怕的。”
除了學術收穫、專業能力提升、自信心提升,還有不少人脈的積累:“CMU課程比較重,博士需要學8門課,每門課工作量巨大。而且要求做兩門課助教,做助教比上課更累。除了上課,更重要是做研究。我去CMU的時候Alex那時還在Google,而且沒經費,所以把我丟給了Dave Andersen。於是我有了兩個導師,一個做機器學習,一個做分散式系統。”
02 如果可以重來會怎麼辦?
對於這個問題,李沐在《博士這五年》裡寫到:
“第二個問題的一個選項是當年留在國內會怎麼樣?當年百度的夥伴們多數現在都做得很好,都在引領這一波AI的潮流,甚至有好幾個創造了上億價值的公司。所以從金錢或者影響力角度來看,一直在工業界也不差,說不定現在已經是土豪了。
不過我覺得還是會選擇讀博。賺錢以後還有大把時間可以,但是能花幾年時間在某個領域從入門到精通甚至到推動這個領域發展的機會就一次。站在這個領域的高點會發現世界雖然很大,但其實其他領域也使用差不多的技術,有著同樣的發展規律。博士期間領悟到的學習的方法可以在各個方向上都會大有作為。”
“在某個領域從入門到精通甚至到推動這個領域發展”是他在博士期間以及日後工作中做的重點事項——出於對MXNet未來發展的考量,在畢業後的職業選擇上,李沐放棄了加入Google的機會,而是去了Amazon,一直任職至今,展開圍繞MXNet的相關專案,後又寫出了用MXNet實現的教材——《動手學深度學習》。
李沐(Mu Li)
[美] 扎卡里·C. 立頓(Zachary C. Lipton)
[德] 亞歷山大·J. 斯莫拉(Alexander J. Smola)
2
MXNet的建立與
《動手學深度學習》的演變歷程
博士學習第三年,李沐跟陳天奇在GitHub上建立了一個叫DMLC的組織,用來加強合作和溝通。真正讓DMLC社群壯大的專案是第三個,就叫做MXNet。當時,李沐同時在做difacto和MXNet兩個專案,在同吳恩達的一次見面之後,李沐聽從了他的建議,把全部精力放在了MXNet。
博士學習第四年,李沐開始以兼職的身份去了Amazon,領著團隊做些MXNet開發和AWS上深度學習的應用,畢業後也留在了Amazon。
2018年,李沐及其團隊發現一個問題:AI雖然火,但是門檻太高,導致能參與到落地的使用者並不多。他們意識到自己當時的使命就是把這人工智慧的生態圈做得更大一些,於是萌發了一個更加正式的質量更高的MOOC的想法。
但由於擔心線上課程不能實時得到反饋,所以李沐和其同伴決定先去伯克利(Berkeley)教一遍積累些經驗。2019年春季李沐跟Alex Smola一起在伯克利教學,教學後通常他們會在一兩天內把課程影片上傳到YouTube,以供更多人免費學習。
授人以漁,這成為了李沐的新目標,他隨後出版的互動式書籍《動手學深度學習》也是為了實現這一目標而撰寫的。
2017年,市面上並沒有特別適用的深度學習入門書,李沐和其團隊想要一本既能講原理、又有實現和實際使用、不斷更新、而且容易讀的書,於是就開始著手寫一本深度學習的教材。經過兩年摸索,2019年,《動手學深度學習》一書逐漸成熟,英文版和中文版相繼成型,首先發布在部落格上。
這本書程式碼的實現很多是基於MXNet(一開始的目標是為MXNet寫個好點文件),李沐和團隊也考慮過要不要提供一個PyTorch或者Keras的版本。後來發現這個擔心比較多餘。框架就是一個工具,工具之間的那些不同帶來的困難比起理解模型和調出結果來小很多。課上發現就算是沒有接觸過這些工具的學生,用MXNet做作業,然後在基於不管用啥框架實現的現有演算法再開發做專案並沒有多大困難。或者說困難都不來自工具本身,特別是演算法實現都在課上講過一遍的情況下。
隨著影響力變大,李沐團隊感到責任越來越大。他們的目標也從“為MXNet寫個好文件”變成“讓更多人能容易學習並使用深度學習技術”。今年六月他們朝這個目標邁出了重要的一步:為本書的前7章,從線性模型到現代卷積神經網路,提供基於PyTorch的實現。
授人以魚不如授人以漁,不難看出,這也是李沐的一項過人之處。他的專業技能,他的業界長遠發展眼光,令人折服。
不過,對於別人的誇讚,李沐始終保有一顆平常心,“比我厲害的人多了,千萬別叫我大神”。
3
想鑽研深度學習?
不妨從這本備受讚譽的書開始
除了李沐傳奇的人生引人關注與羨慕外,李沐的《動手學深度學習》也被當作業內入門深度學習的優秀教材。這本由李沐、美國伊利諾伊大學香檳分校計算機科學博士 Aston Zhang、李沐在 CMU 的導師 Alex Smola ,以及來自社群的 100 多位貢獻者合著。書籍一經推出便大受歡迎,一度登上京東科技類圖書熱銷榜 Top 1 。
自《動手學深度學習》面市以來,就備受學術界與工業界讚譽:
截至目前,已有140多所院校使用《動手學深度學習》這本書作為教材。
01 全面介紹深度學習的方方面面
這本書全面介紹深度學習從模型構造到模型訓練的方方面面,以及它們在計算機視覺和自然語言處理中的應用;不僅將闡述演算法原理,還將基於Apache MXNet對演算法進行實現,並實際執行它們。
本書的結構圖
書的每一章用文字、數學、圖示和程式碼來多方面介紹一個知識點。它是一個Jupyter記事本,可以獨立執行。包含20個左右的文字和程式碼塊,可以15分鐘左右讀完。
這本書有一個非常顯著的特色:互動性+實踐性,主要面向在校大學生、技術人員和研究人員。在校學生和老師可以申請用於本書學習或教學的免費計算資源。
書籍將文字、公式、影象、程式碼和執行結果結合在了一起,不僅在闡述知識和原理,同時還有課件和影片進行演示。
教程已在GitHub上開源,動手能力強的同學自己可以嘗試一下。不過需要注意的是,所有markdown檔案需要在提交前清除output,它們會在伺服器上重新執行生成結果。所以需要保證每個記事本執行不要太久,時間不超過十分鐘。
執行無誤後直接用三種格式釋出在網上:含有執行輸出的Jupyter記事本,可以直接瀏覽的HTML,和適合列印的PDF。
03 根據讀者的反饋進行補充講解
全書補充知識眾多,李沐會根據讀者的反饋進行補充講解,以便讓書籍更加適用。
例如,在《動手學深度學習》出版後,常常有讀者反映自己的數學基礎薄弱,難以理解深度學習。為此,李沐團隊和亞馬遜的機器學習大學合作,專門增加了“深度學習的數學”一章,詳細闡述理解深度學習所需的數學背景知識。
同樣,這一數學篇章也沿襲了全書的書寫風格:
同時,他們完全重寫了“預備知識”一章,全面改進內容的準確性和可讀性。例如,在不過多使用術語的前提下,全章開頭試圖從多個角度激發讀者閱讀各小節的興趣:
再例如,今年7月《動手學深度學習》新增TensorFlow實現。
回過頭來看,李沐的一系列動作,其實都離不開我們之前提到的他的初心,“在某個領域從入門到精通甚至到推動這個領域發展”。
李沐(Mu Li)
[美] 扎卡里·C. 立頓(Zachary C. Lipton)
[德] 亞歷山大·J. 斯莫拉(Alexander J. Smola)
噹噹
內容簡介:
本書不僅闡述深度學習的演算法原理,還演示它們的實現和執行。本書共分3個部分:第一部分介紹深度學習的背景,提供預備知識,幷包括深度學習最基礎的概念和技術;第二部分描述深度學習計算的重要組成部分,還解釋近年來令深度學習在多個領域大獲成功的卷積神經網路和迴圈神經網路;第三部分評價最佳化演算法,檢驗影響深度學習計算效能的重要因素,並分別列舉深度學習在計算機視覺和自然語言處理中的重要應用。