新手如何開始學深度學習?別著急,看看別人走過的路先

2019-07-26     AI公園
作者:Arkar Min Aung編譯:ronghuaiyang

導讀

新手如何開始學深度學習,這個問題很難回答,每個人似乎都有自己的一套方法,在開始之前,先看看別人是怎麼做的,也許會對自己有所啟發。

剛開始學深度學習的時候,一定要像嬰兒學步一樣,慢慢的小步走。

很多人問我如何開始機器學習和深度學習。在這裡,我整理了一個我使用過的資源列表,以及我第一次學習深度學習時所走過的路。

免費課程

從Andrew Ng在Coursera上的機器學習課程開始(https://www.coursera.org/learn/machine-learning)。這門課程會教會你機器學習的一些訣竅,並且會提高你的線性代數技巧。你一定要好好作業,在完成課程後,你會掌握機器學習的概念,例如:線性回歸、邏輯回歸、支持向量機、神經網絡和k均值聚類。你也有機會建立一個推薦系統來玩玩。這會開闊你的眼界,讓你更有信心進入機器學習和深度學習的領域。但是要知道,還有許多其他重要的概念,這門課程無法涵蓋。所以,在這門課結束後,要準備好拓寬你的知識面。如果你在完成吳博士的課程後非常興奮,你應該去看看他的其他課程,它是Coursera上深度學習專業課程的一部分。

Fast.ai提供免費的在線深度學習課程,課程分為兩個部分:

  • 深度學習第一部分:Practical Deep Learning for Coders
  • 深度學習第二部分:Cutting Edge Deep Learning for Coders

在這些課程之後,您可能已經準備好學習Hinton的機器學習神經網絡了。Hinton的課程相對於前面提到的課程來說比較難,因為課程很枯燥,而且包含了更多的數學概念。如果你覺得你還不能解決這個問題,不要慌!停一段時間,先做數學部分(在下一節中描述),然後再回來。這次你一定能解決這個問題!記住,決心,決心,決心,更多的決心。

數學

深度學習當然需要你對線性代數、微分學和向量有很好的掌握。如果你想快速複習一些基本的線性代數並開始寫代碼,強烈推薦Andrej Karpathy的黑客神經網絡指南。我發現hadrienj 's notes在《深度學習》一書中對實際了解底層數學概念,以及如何使用Python (Numpy)非常有用。如果你喜歡從視頻中學習,3blue1brown有一個關於線性代數、微積分, 神經網絡以及其他數學相關概念的非常好的視頻。在非卷積問題上自己實現一個基於cpu的反向傳播算法也是真正理解反向傳播工作原理的好方法。

來點真格的

如果你想提高你的機器學習知識,並準備認真對待(我的意思是研究生水平的認真對待),去研究一下 Learning From Data ,這是一本加州理工教授寫的書。準備好做所有的數學運算。這可能有點挑戰性,但是你要是讀完了而且做完了作業的話,絕對是值得的。我認為,教科書很難捕捉到目前深度學習的狀態,因為這一領域的發展速度非常快。但最受歡迎的教科書應該是 Goodfellow, Bengio, 和Courville的《深度學習書》(http://www.deeplearningbook.org/)。它可以在網上免費下載,所以你也可以一章一章地下載,一章一章地閱讀課本。

論文,論文,論文,我再也追不上它們

是的,深度學習的知識主要來自論文,而這些論文的發錶速度在當今是非常快的。Reddit是一個很好的起點。訂閱/r/machinelearning和/r/deeplearning。不過我覺得機器學習的reddit版塊更有用。ArxivSanity是一個查看與你正在尋找的論文相關的論文的好地方。在深度學習中,閱讀論文時要做的一件重要的事情就是做好文獻綜述。做一個好的文獻回顧可以讓你更好地了解事物是如何發展的。解決文獻綜述問題的一種方法是安裝谷歌Scholar Chrome擴展並搜索你想查找的論文。你可以跟隨「相關文章」和「被引用」來跟隨之前的工作以及基於那篇論文的新工作。閱讀論文的一個好習慣是在論文中畫出概念的思維導圖。

當我閱讀一篇關於「few-shot learning」的論文時,我畫出了這張思維圖。

思維導圖的優點是它是一種很好的方法來跟蹤文章中提出的概念之間的關係。我發現思維導圖對於跟蹤相關文獻以及它們與我正在閱讀的論文之間的關係非常有用。思維導圖能讓我對一篇論文有一個清晰的認識,也能讓我在讀完之後對論文有一個很好的總結。

我發現Twitter(國內就是微博,公眾號了吧)對於跟蹤機器學習和深度學習研究非常有用。你可以從跟蹤ML/DL領域中的知名人員開始,然後從那裡開始擴展。因為我經常轉發關於對抗機器學習和自動駕駛汽車的研究,你也可以關注我的twitter(關注我的公眾號吧),把它當作你的feed。你能做的就是查看我轉發過的人,查看他們的推特,關注他們圈子裡的其他研究人員。一旦你提供了足夠的數據,Twitter也會推薦優秀的人去關注,也就是關注足夠多的ML/DL研究者。

Kaggle

Kaggle實在是太有用了。我強烈建議你嘗試Kaggle競賽,即使你進入前100名的機會很小。Kaggle競賽的價值在於社區。閱讀kernel並從中汲取好的實踐經驗。閱讀評論並參與討論。在那裡你會學到很多東西。你會了解人們如何進行探索性數據分析,以及如何處理丟失數據、不平衡數據等各種情況。Kaggle競賽中有很多知識。

靈感

機器學習的可視化介紹是一種很好的方法,可以直觀地掌握統計學習技術是如何用於識別數據中的模式的。

谷歌的Seedbank是一個獲得靈感的偉大資源!看一看這些例子,跟著文獻走。

Distill.pub是一個交互式學習DL概念的好地方。我希望Distil出現更多的文章。

冰山一角

除非你把自己所學的付諸實踐,否則什麼都不重要。ML和DL聽起來很神奇,當你自己實現整個pipeline,你會發現也就那樣。整個pipeline包括數據來源、數據收集、數據質量評估、數據清理、數據注釋、數據預處理、構建工作流、構建模型、調優模型、評估模型、部署模型和重複模型。這些步驟只是整個ML/DL pipeline中的一些步驟。那些已經完成了全面DL工作的人知道儘可能保持整個開發操作的流暢是多麼重要。整個數據來源、收集、注釋、清理和評估步驟至少占整個項目的60%,而且它們可能是項目中最昂貴的部分之一(除了耗電的GPU !)

總之,ML/DL領域是一個不斷發展的領域,你必須張大你的耳朵、睜大你的眼睛,開放你的思想。不要僅僅因為一篇論文/博客/教程/個人/YouTube視頻說某一項新技術在某一特定數據集上表現很好就跳到它上面。我看到許多閃亮的新技術來了又去的很快。永遠要意識到區分信號和噪音是很重要的。

原文連結:https://towardsdatascience.com/newbies-guide-to-deep-learning-6bf601c5a98e

更多文章,請關注微信公眾號:AI公園

文章來源: https://twgreatdaily.com/zh-tw/Ldw7PGwB8g2yegND2TPI.html