作者:劉才權
編輯:欒志勇
經常被同學和朋友詢問機器學習或深度學習入門,有哪些不錯的參考資料。老實講,這個問題在網上隨便一搜就是一大把的答案。我自己在最開始的時候也有同樣的困惑,同樣在搜索引擎和論壇裏翻找答案。但大多數答案並不怎麼讓人滿意:搜索結果要麼星稀零散,只見樹木不見森林;要麼過於詳盡,讓人無從下手(很多資料作者自己都沒看過)。
在這篇文章裏,我把自己在學習過程中的參考資料進行了梳理。一方面,希望能給你一個相對系統的學習路線參考;另一方面,自己真實的實踐經歷,遇過坎,掉過坑,希望能給正準備入門的同學更多真實的借鑑。
入門視頻
機器學習
很多人會推薦吳恩達在斯坦福的公開課CS229,但對於初學的同學來說,我覺得並不適合。雖然Andrew在課的最開始就說了,他的這門看更側重於實踐。但真實情況是,裏面有太多的數學推導和證明。直接使用這門課來入門,對初學的同學來說,在信心上會是不小的打擊。特別是很多從應用開發轉到機器學習的同學,畢竟在平常的工作中,大學的數學知識在實際的開發中應用的並不多,估計很多現在都已經生疏了。
對於機器學習,我推薦吳恩達在Coursera開設的機器學習課程,課程免費,側重於基本的原理和工程實現,對初學者相對友好。字幕中英可選。
課程鏈接:
https://www.coursera.org/learn/machine-learning
深度學習
大家可能看過《一天搞懂深度學習》的PPT,作者是臺灣大學的李宏毅老師。其實,李宏毅老師還有門深度學習的課程,視頻也掛在網上。這門課主要針對初學者,不需要有經典的機器學習基礎(其實,深度學習入門,比經典的機器學習更容易)。課程的內容深入淺出,訓練和預測樣本都是各種數碼寶貝和二次元卡通人物,絕對讓你耳目一新。沒有字幕,中文授課(臺灣腔)。
課程鏈接:
http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html
入門書籍
機器學習
《機器學習》
機器學習的入門書籍,當仁不讓的就是周志華老師的西瓜書《機器學習》了。這本書基本囊括了絕大多數經典的機器學習方法。但坦白的講,這本書入門也不是那麼輕鬆,大量篇幅的數學推導和證明。建議初學者可以在第一遍的時候跳過具體的數學推導,更側重在知識框架和原理的學習和提煉,後面可以通過第二遍或第三遍來深入其中的數學原理。
深度學習
《深度學習》
這一本稱爲目前深度學習領域的聖經,而作者們也確實做到了深入淺出,循序漸進。不是單純的拋一個結論,而是逐步的深入,最終闡明原理。建議像《機器學習》一樣使用:不要求第一遍就能全部吸收,可以先從框架和基本原理入手,跳過部分細節,後面再逐步深入。
數學基礎
看前面的視頻和書籍,對於很多從事應用開發的同學來說,可能最大的障礙就是對數學的恐懼。這種感覺大概就像沒經歷過算法訓練的同學面對算法面試一樣。其實,恐懼只要能直面它,那就一定能夠克服掉。就好比在LeetCode這樣的OJ平臺刷完200道左右的題目,再去面試算法一樣。以前覺得是天大的障礙,現在回過頭來,也不覺得有什麼了不起。
我個人的經驗是,通過前面的視頻和書籍已經對機器學習和深度學習有了基本的系統框架和原理認識,同時,也積累了對數學知識進行系統複習的強烈慾望。這時候就可以有的放矢的複習大學知識了。數學知識的複習,我都是通過看網易公開課來完成的。
微積分
MIT《單變量微積分》:
http://open.163.com/special/sp/singlevariablecalculus.html
雖說是MIT的課程,但坦白的講,老師的節奏真是比國內的課程還要慢,真正做到了通俗易懂。
網易公開課還有MIT的《多變量微積分》,但我沒有看,我覺得複習完單變量微積分,也就基本夠用了。
線性代數
MIT《線性代數》
http://open.163.com/special/opencourse/daishu.html
這門課就沒有上面的《單變量微積分》那麼Nice了,老師思路跳躍性很強,稍一走神就不知道講到什麼地方了。但這門課有個很大的優點,就是從一開始就引入了向量空間的概念,而且貫穿始終。不像國內的課程,直到課程結束都以爲線性代數只是求解方程組的另一種表達形式。
概率 / 統計
可汗學院《概率》
http://open.163.com/special/Khan/probability.html
可汗學院《統計學》
http://open.163.com/special/Khan/khstatistics.html
老實講,可汗的公開課真是太細緻了,細緻到覺得拖沓(可能是複習,而不是初學者的緣故)。建議根據自己的需要做適當的跳躍。同時,兩門課有部分內容是完全重合的,可以直接跳過。
Python
有了前面的基礎相信你已經躍躍欲試了,但別急,工慾善其事必先利其器。可能你已經有MATLAB、C/C++、Java的編程經驗,但建議再入手一款新武器-Python。雖然前面的語言也可以用於機器學習和深度學習相關的研究和開發,但Python的使用範圍更廣,參考資料也更加豐富。
1.在網上找一篇Python入門的帖子,搭建環境,運行簡單的例子(半天)
2.找一本基礎書籍,系統的熟悉下語言的基本特性和完整框架(1~2天)(ps:我之前有C/C++和Java的語音基礎)
3.開始正常使用Python進行開發,遇到問題,求助搜索引擎(2個月以上)
4.覺得自己對語言就基本的掌握後,可以根據選擇進行進階學習了
親,花上面1~2天時間來系統的熟悉Python語言特性和語言框架,然後通過我推薦的python書籍來強化學習!
《Python基礎教程》
(這本書很厚,初期把目錄掃完就可以了,後面當做字典來使用)
Python基礎教程
進階階段,推薦:
《流暢的Python》
流暢的Python
好了現在我們終於可以動手實踐了!
初級
《Python機器學習及實踐:從零開始通往Kaggle競賽之路》
Python機器學習及實踐:從零開始通往Kaggle競賽之路
這是很薄的一本書,但對於初學者實踐來說卻是非常棒的一本書。書中的大多數算法都是基於sk-learn來實現的。使用現成的Python庫,而不用關心具體算法實現過程,可以快速體驗機器學習算法的效果。同時,書的最後比較細緻的介紹了Kaggle競賽平臺的使用,實戰性更強。
《Python機器學習及實踐:從零開始通往Kaggle競賽之路》使用現成的Python庫(工程中也大多是這樣的)。但很多同學還是更希望能手工實現具體的算法,覺得這樣基本功才紮實,那下面的這兩本書就能很好的滿足有這樣想法的同學了。
進階
《機器學習實戰》
機器學習實戰
經典的機器學習算法手工實現,書中包含大量的代碼實例。但這本書出本的比較早,深度學習內容基本沒有涉獵。針對這種情況,就有了下面這本的推薦:
《TensorFlow Machine Learning Cookbook》
TensorFlow Machine Learning Cookbook
這本書主要是基於TensorFlow的,手工編織網絡。而且,書的內容就像它的名字一樣,結構編排跟類似菜譜:開始前需要準備什麼,開始後需要遵從哪些步驟,最後又會得到怎樣的結果,條理非常清晰。目前這本書已經有了中文版。
雖然我們花費了很長的時間,投入了很多精力,但我們目前的階段仍然像做大學作業,跟真實的工業場景相差很遠。那機器學習和深度學習在實際的AI場景是如何應用的呢?帶着這樣的問題,我推薦兩本書:
《數學之美》
數學之美
吳軍老師的經典之作。雖然這本書火的時候,AI都還沒有現在這麼火,但書中介紹的很多場景,使用的很多技術,基本都是來自我們學習的機器學習。
《統計自然語言處理》
統計自然語言處理
選擇這邊書是因爲自己當前的工作跟自然語言處理相關。當然了,這也是自然語言處理領域非常經典的一本書,內容全面豐富。但學術的氣息比較重,讀起來又找到了當初讀研看Paper的感覺。
雜項
比較正統的學習基本就算介紹完畢了。其實,除了上面的主線內容外,很多比較零散的資料,對於學習來說也還是很有裨益的。
《莫煩視頻》
莫煩的個人主頁有很多機器學習和深度學習相關的個人錄製視頻。以非常簡潔的方式介紹了機器學習和深度學習相關的概念和框架,對初學者快速建立概念很有幫助(PS:92年的小鮮肉,真是不得了)。
地址:https://morvanzhou.github.io/about/
《深度學習簡化版》
形式跟莫凡的視頻類似,是老外錄製的。相比於莫煩的視頻,內容更豐富多樣,形式更新穎。通過YouTube播放,需要翻牆。
地址:https://www.youtube.com/watch?list=PLjJh1vlSEYgvGod9wWiydumYl8hOXixNu&v=b99UVkWzYTQ
《AI技術內參》
這是《極客時間》的一個付費專欄。主要推送AI相關的技術歷史、當前行業信息和科研成果,從目前的使用情況來說,在品質上還是有保障的。
好啦,暫時就先這樣吧,後面有更好的內容再更新,也歡迎大家分享自己的學習經驗!
往
期
推
薦
掃描個人微信號,
拉你進機器學習大牛羣。
福利滿滿,名額已不多…
80%的AI從業者已關注我們微信公衆號