如何從零基礎學最前沿的 Python 深度學習? 學深度學習,能「彎道超車」嗎? 困惑 深度學習的初學者,總會在學習路徑上遇到困惑。先是那群框架,就讓你不知道該從哪兒著手。 一堆書籍,也讓你猶豫如何選擇。 即便你去諮詢專業人士,他們也總會輕飄飄地告訴你一句「先學好數學」。怎樣算是學好?對方會給你羅列出一堆大學數學課程名稱。直到你徹底放棄學習的想法。 真要是按照他們的要求,按部就班去學,沒有個幾年功夫,你連數學和編程基礎都打不完。可到那時候,許多「低垂的果實」還在嗎?其實,Sylvain Gugger (數學專業出身,自學深度學習,一年時間成為 fast.ai 的研究科學家)說了一段真話(鏈接在這裡)。 把我常用的那個例子,再給你舉一遍。如果你想造汽車,恐怕要有多少年的理論功底,以及技術實踐。但如果你只是想開汽車,卻是很快就能學會。當個司機,你需要去了解汽油發動機原理嗎?不需要。因為你開的車,甚至有可能根本就用不上汽油發動機(電動車)。深度學習,底層實際結構很複雜。 上圖還只是模塊示意圖哦。然而,作為應用者,你只需要一兩行代碼,就能實現上述神經網路。加上數據讀取和模型訓練,也不過十行左右的代碼。 不信?你可以參考我的《如何用 Python 和 fast.ai 做圖像深度遷移學習?》感謝科技的進步,深度學習的用戶介面,越來越像搭積木。 只要你投入適當的學習成本,就總是能很快學會的。這種成本,究竟要投入多少呢? 成本 Jeremy Howard 的答案,是 7 節課。我在《如何用 Python 和深度遷移學習做文本分類?》一文中,給你介紹過他的研究論文「用於文本分類的通用語言模型微調(ULMFiT)」。 與其說他是研究人員,倒不如說他是個老師。 Jeremy 看到許多普通人,被深度學習的高門檻攔在外面,很不愉快。於是他研發了基於 Pytorch 的 fast.ai 深度學習框架。這個框架的特點是:幾條語句,就能做出前沿水平(state of the art)的深度學習模型。 依據該框架,他還做了系列 MOOC ,現在在深度學習領域非常知名。 我給你寫這一篇文章,是因為早上看見,Jeremy 發了一條消息,大家期待已久的2019版本 Practical Deep Learning for Coders 課程終於上線了。 按照課程要求,每周上一節課,視頻看下來,大約需要2個多小時。外加每周10個小時左右的練習時間。 7周之後,你就算結課了。學這課程,需要的基礎是什麼?機器學習?不需要。深度學習?更不需要。編程經驗?這個確實需要,大概一年左右。如果你用的編程語言,恰好是 Python ,那就最好了。學的是其他語言也不要緊。因為 Python 是可以很快掌握的,就如同我在《學 Python ,能提升你的競爭力嗎?》一文中跟你說的那樣。對了,還有數學呢?只需要高中數學(對應美國教學大綱,你懂的)知識,就夠了。教學過程中,對於高等數學,如果需要,視頻里會即時補充。以上是你需要花費的時間成本和前導條件。 經濟成本呢?課程的教學視頻是免費的。 內容 這一版的 MOOC ,都包括哪些內容呢?在這個頁面, Jeremy 做了介紹。 課程主要包含以下模塊: 機器視覺(例如動物識別) 圖片分類 圖片分割 圖片關鍵點 自然語言處理(例如影片評論情感分析) 語言模型 文檔分類 表格數據分析(例如銷售預測) 類別數據 連續數據 協同過濾(例如影片推薦) 下面,用幾張截圖,給你展示一下能學到什麼。 這是對卷積神經網路工作原理的解釋。 這是圖片分割的效果。 你能學會如何對模糊圖片進行增強。 以及如何訓練語言模型和下游分類任務。 課程涵蓋的知識點,包括但不限於以下內容: 怎麼樣?足夠有用,也足夠前沿吧? 效果 你可能很關心,花了7周時間學完之後,效果會怎麼樣?Jeremy 自己表示,課程裡面有些前沿內容,還沒有在學術期刊上發表。如果你是學術圈人士,看了這句話,應該微微一笑——吹吧!怎麼可能?傻嗎?但這個 Jeremy ,以前真這麼干過。前面提的他那篇 ULMfit 語言模型論文,你應該還有印象吧? 注意,Jeremy 不是像很多學者那樣,先發表了論文,然後才把內容在課程中講授的。雖然是在舊金山大學教書,但是 Jeremy Howard 對於寫論文的興趣無限趨近於0.他在上課的過程中,對於最新的機器學習研究旁徵博引,帶著一群初學者,遊走在學科的邊緣上。 他直接在自己的課程中講了 ULMfit 這種方法,鼓勵學生去試。 他展示的語言模型遷移學習分類效果,許多已經超過目前最優水平。他發現許多顯而易見的東西,居然都沒有人嘗試過,更沒有人發表過。於是,授課之餘,他經常跑到人家深度學習圈兒裡面,扔一兩個想法和實踐效果進去,不過基本上沒人搭理他。原因很簡單,學術界也是有路徑依賴的。讓人家專家學者放著大路不走,試你這野路子?好在,具有真有一位自然語言處理領域的活躍學者,來找他聊天兒。說對他提的這種新自然語言處理深度學習方法,很感興趣。他挺開心的,倆人就聊,越聊越投機。然後,這個叫做 Sebastian Ruder 的人,就提出來「既然你這想法,學術圈別人沒試過,咱們合寫論文吧!」 想起來了吧?我在知識星球里,曾經為你介紹過這傢伙,以及他那份著名的 NLP 前沿進展匯總。 面對 Sebastian 伸過來的橄欖枝,Jeremy 如何表態呢?他立即回答:No!我才不寫那玩意兒!Sebastian Ruder 於是使盡渾身解數,附加了以下條件: 你不需要給論文裡面寫一個字。只提供想法和代碼就可以; 我幫你把它完整轉換成為學術論文格式,用嚴謹的方式加以討論; 咱們第一時間把論文放到預印本平台,並投稿自然語言處理領域的高水平會議,以便讓更多人能免費閱讀,並因此獲得收益。 Jeremy 終於同意了。這篇論文被 ACL 接收後,收穫大量關注。更有趣的是,當初無人問津的方法,人們真的嚴肅嘗試後,獲得的獎項一個接一個。我在《如何用 Python 和深度遷移學習做文本分類?》一文中,給你講到過,Czapla 等人,就利用這種方法,輕鬆贏得了波蘭語信息檢索比賽 PolEval18 的第一名,他們的模型效果,領先第二名 35% 。 這時候,回過頭來,再看 Jeremy 那句「課程裡面有些前沿內容,還沒有在學術期刊上發表」,你明白意味著什麼了吧? 資源 篤定決心要學的話,我們來說說如何上這門免費 MOOC 吧。如果你使用筆記本電腦,可以點擊這個鏈接,直接訪問課程的視頻。 有意思的是,這一版課程,包含了新的視頻播放器。最大的特點是,你可以用內置內容搜索的功能,直接定位到感興趣的段落。這樣,找起內容和知識點來,方便多了吧? 如果你用移動設備學習,這個播放器可能無法正常使用。沒關係,你可以訪問這個播放列表頁面,直接看視頻。 不僅如此,為了讓你能夠用上 GPU 來實踐深度學習,課程還專門在配套網站上為你提供了詳細的分步教程。 夠貼心吧?我個人比較推薦其中的 Google Colab 和 Google Cloud Platform。前者免費,後者雖然有開銷(每小時需要 0.38 美元),但如果你是新用戶,Google 會先送給你300美金 ,1年內有效。足夠你學完這門課了。 我專門寫了個步驟詳細的教程,教你如何用 Google Cloud Platform 跑 fast.ai 課程的練習,你可以訪問這個鏈接查看。 多囑咐一句,課程的論壇,一定要經常查看。 上面各路高手經常就課程相關內容,有些甚至是非常前沿的技術進行切磋。你在一邊觀看,都可以獲益良多。如果你有問題,也不妨拋出來。論壇活躍度很高,「同學們」會很樂意幫助你的。 激勵 不少人試圖去了解 fast.ai 的商業模式,於是問 Jeremy 。他直接告訴大家:我們的商業模式,是花自己的錢做事,幫人們學深度學習。連資助我們都不要。 順便說一句,fast.ai 的 slogan 是這樣的: 翻譯過來就是,讓神經網路變得不再酷。在別人刻意製造信息與技術的鴻溝時,偏偏有人認為,人工智慧應該能幫助更多人,而不是只讓少數技術領先者和巨頭獲益。說到這裡,你可能會疑惑,這個 Jeremy Howard 怎麼這麼奇怪?世人一直追逐的兩件事,不就是名和利嗎?論文發表,就是名,多少人每天想的,不就是論文、論文、論文嗎?人家都關心怎麼知識變現,也就是利,他為什麼不拿資助,不賺錢,還搭上自己的錢來做這件事?他這麼兢兢業業,為了課程設計和 fast.ai 框架演進,真是做到了廢寢忘食,殫精竭慮。2018的 Cutting Edge Deep Learning for Coders 里,經常有這樣的情況。晚上要上課, Jeremy 中午飯都沒吃,一直在嘗試最前沿的方法,以便能把最新的技能傳授給學生。看得出來,他很疲憊。但是課上他的笑容,是滿足而真誠的。為什麼面對名利,Jeremy 如此拒絕呢?給你半分鐘,思考一下。……以下是答案公布時間。不要名利,是因為他不缺那些東西。在 Wikipedia 上面,有好幾個 Jeremy Howard 。其中咱們提到的這位,頁面是這樣的: 他最為人知的身份,是企業家。再看看這段早年經歷: 19歲,別人才剛開始上大學的年紀,Jeremy 已經在麥肯錫年入20萬美元了。再看這段,更為傳奇: 一個管理諮詢界的人物,跑去 Kaggle 參賽,結果因為成績太好,一年後就成了 Kaggle 的主席和首席科學家。至於名聲,你看看這段 2014年的 TED 演講,就知道他到底有多知名。 詳細介紹在這裡。感興趣的話,你可以自己去看看,勵志一下。我們總以為,要用足夠的激勵,讓人們做出最大的產出貢獻。但是,許多最有影響力的優質產出,恰恰是那些根本對外部激勵無感的人做出的。這是不是值得制度設計領域的研究者,以及大型組織機構的管理者們思考一下呢? 關於英語 沒錯,課程是英文的。別抱怨了。沒用。你在抱怨的時候,那些花時間學英語的人,已經悄悄跑到你前面去了。學吧。我給自己的研究生,寫過一篇英語學習方法介紹文章,叫做《寫給我即將入學的研究生(英語學習篇)》。你要是感興趣的話,不妨讀讀。希望對你學英語有幫助。祝深度學習愉快!喜歡請點贊和打賞。還可以微信關注和置頂我的公眾號「玉樹芝蘭」。如果你對 Python 與數據科學感興趣,不妨閱讀我的系列教程索引貼《如何高效入門數據科學?》,裡面還有更多的有趣問題及解法。 推薦閱讀: 相关文章 {{#data}} {{title}} {{/data}}