1. 程式人生 > 實用技巧 >AI機器學習路線

AI機器學習路線

注:該學習路線是總結全網推薦路線而成,這裡是初稿,要完整最新版的話歡迎在下方留言!

相關問題詳情訪問我的個人網站.
本文首發於耳殼網.

machine-learning

數學知識

一般人如果想要把這些知識都補全再開始機器學習往往需要很長時間,容易半途而廢。而且這些知識是工具不是目的,我們的目標不是成為優化大師。建議在機器學習的過程中哪裡不會補哪裡,這樣更有目的性且耗時更低。

  • 微積分:偏微分,鏈式法則,矩陣求導等
  • 線性代數:矩陣/張量乘法、求逆,奇異值分解/特徵值分解,行列式,範數等
  • 統計與概率:概率分佈,獨立性與貝葉斯,最大似然(MLE)和最大後驗估計(MAP)等
  • 優化:線性優化,非線性優化(凸優化/非凸優化)以及其衍生的求解方法如梯度下降、牛頓法、基因演算法和模擬退火等
  • 資訊理論、數值理論等

書籍

  • 微積分
  1. 《微積分學教程》 (F.M.菲赫金哥爾茨)俄羅斯的數學書
  2. 斯坦福大學機器學習的數學基礎
  • 線性代數
  1. 《Linear Algebra and Its Applications,Third Edition (David C.Lay)》

講得很實際,線性代數最重要的就是與實際應用相聯絡才能夠理解其意義

  • 概率論與統計
  1. 《概率論與數理統計 (陳希孺)》

  2. 深入淺出統計學

視訊

  • 微積分
  1. Essence of calculus(https://goo.gl/sfHext
  • 線性代數
  1. 3Blue1Brown的Essence of linear algebra

[https://www.bilibili.com/video/BV1ys41147

  1. MIT的 Gilbert Strang老爺子的課程

https://www.bilibili.com/video/BV1at411d79w

  • 概率論與統計
  1. 中科大 概率論與數理統計(http://t.cn/RmyKd8W)
  2. 可汗學院統計學

http://open.163.com/special/Khan/khstatistics.html

Python學習

Matlab和Python說實話做高階的機器學習肯定是不推薦的,但是如果你想的是機器學習快速入門,那這兩門語言絕對是絕佳選擇。

書籍

  1. 廖雪峰python學習筆記

https://blog.csdn.net/dawhale/article/category/7779959

  1. python入門筆記

作者李金,這個是jupyter notebook檔案,把python的主要語法演示了一次,值得推薦。

視訊

  1. 南京大學python視訊教程

這個教程非常值得推薦,python主要語法和常用的庫基本涵蓋了。
檢視地址:www.icourse163.org/course/0809…

看完這三個資料後python基本達到入門水平,可以使用scikit-learn等機器學習庫來解決機器學習的問題了。

第一階段:基礎入門(3-6個月)

入門的第一步是學習一些經典課程並配套經典書籍,一般來說這個過程在半年之內比較合適。

視訊

  1. Machine Learning | Coursera

入門首選,推薦只認識“機器學習”四個字但還不知道它是什麼的學習
這些年機器學習的大多數年輕人靠這個入門。具體提綱我就不列了,免得增加篇幅。建議是直接按順序一課課學,不要著急。在學完這個課程前,不要學後面的。> **中文視訊:**網易雲課堂搬運了這門課,並由黃海廣等人翻譯了中文字幕。> 中文筆記及作業程式碼:https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes

這門課每個知識點都會配套相應的練習題。大家可以在 Coursera 上下載,線下完成並提交。唯一的缺點可能是該習題都是基於 matlab 平臺的。但是,Github 上已經有人把作業整理成為 Python 的形式了。有 .py 和 .ipynb 兩種格式。
nsoojin/coursera-ml-py
kaleko/CourseraML

1、機器學習實戰的書:《機器學習實戰 (圖靈程式設計叢書 72)》 [美]Peter Harrington, 李銳, 李鵬, 曲亞東, 王斌 書評 簡介 電子書下載 Kindle電子書
2、Andrew Ng老師的視訊教程:Machine Learning:斯坦福大學機器學習個人筆記完整版(附所有視訊和字幕) (現在Andrew Ng老師沒開新課了,這是一個同學自己下載的所有視訊和相關資料,大家可以自行下載)
3、Andrew Ng老師早期的一個機器學習公開課:斯坦福大學公開課 :機器學習課程
4、Andrew Ng老師機器學習課的程式碼
Python版本:icrtiou/Coursera-ML-AndrewNg
Matlab版本:vugsus/coursera-machine-learning

  1. 公開課 吳恩達 CS229

吳恩達在斯坦福教授的機器學習課程 CS229 與 吳恩達在 Coursera 上的《Machine Learning》相似,但是有更多的數學要求和公式的推導,難度稍難一些。該課程對機器學習和統計模式識別進行了廣泛的介紹。
課程主頁:cs229.stanford.edu/
中文視訊:open.163.com/special/ope…
中文筆記:kivy-cn.github.io/Stanford-CS…
**速查表:**這份給力的資源貢獻者是一名斯坦福的畢業生 Shervine Amidi。作者整理了一份超級詳細的關於 CS229的速查表zhuanlan.zhihu.com/p/56534902
作業程式碼:github.com/Sierkinhane…

作者:布客飛龍
連結:https://juejin.im/post/6844903832011423751
來源:掘金
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

  1. CS231n: Convolutional Neural Networks for Visual Recognition

Stanford最受歡迎的課之一。做影象識別的,就算不想搞影象識別,也會學到很多有用的通用的東西。

  1. 公開課 林軒田《機器學習基石》

臺灣大學林軒田老師的《機器學習基石》課程由淺入深、內容全面,基本涵蓋了機器學習領域的很多方面。其作為機器學習的入門和進階資料非常適合。而且林老師的教學風格也很幽默風趣,總讓讀者在輕鬆愉快的氛圍中掌握知識。這門課比 Ng 的《Machine Learning》稍難一些,側重於機器學習理論知識
中文視訊:www.bilibili.com/video/av367…
中文筆記:redstonewill.com/category/ai…
**配套教材:**配套書籍為《Learning From Data》,線上書籍主頁:amlbook.com/

紅色石頭整理了這門課 16 節課的精煉筆記,供大家參考:
林軒田機器學習基石

書籍

在學習吳恩達的線上課程時,推薦同時閱讀相關的機器學習書籍補充理論知識

  1. Python機器學習

這本書去掉了大量的數學推導的部分,僅保留了機器學習的核心應用。閱讀本書可以快速對如何使用Python機器學習框架Sklearn有一個基本的瞭解,可以很快上手開始工作。

  1. Introduction to Statistical Learning with R(ISL)

ISL是ESL的入門版,不僅大量的去除了繁複的數學推導,還加入了R程式設計的部分,方便大家可以儘快上手。

  1. 周志華《機器學習》

建議把西瓜書作為參考書而不是主力閱讀書,建議的用法是在學習網課和閱讀ISL遇到疑惑時可以參考西瓜書的相關章節,但入門階段沒有必要一章一章的閱讀,在這個階段只閱讀前十章即可。
配合《機器學習實戰》一起學習,效果更好!
讀書筆記:www.cnblogs.com/limitlessun…
公式推導:datawhalechina.github.io/pumpkin-boo…
課後習題:zhuanlan.zhihu.com/c_101385029…

  1. Machine Learning in action

(這裡面的完成語言為Python)這是英文版本的。當然如果你覺得英文對你是一個完全過不去的坎,(雖然我建議做技術的人都必須至少要看得懂英文)現在有中文版本,叫“機器學習實踐”。
這本書用盡量少的公式把機器學習的基本演算法都過了一遍,而且還講得很清楚,更為重要的是他將公式和程式碼結合了起來。因此,你的機器學習並沒有那麼的抽象了,你知道演算法裡的公式如何的轉化為程式碼。
所以,第一步,你可以耐著性子將這本書看完。反正我當時,把書中的程式碼自己敲了一次,雖然程式碼有的下載,你也可以選擇只是把程式碼看懂完事。但我還是建議,自己敲一次,執行執行,這樣你會得到不一樣的體會。

第二階段:進階學習(3-6個月)

在這個階段,你已經對機器學習有了基本的瞭解。如果你認真的閱讀了ISL並上完了吳恩達的課程,我相信你已經在理論上明白了什麼是線性迴歸,什麼是資料壓縮,對特徵工程以及簡單的迴歸/預測問題有了理論上的基礎。這個時候最重要的就是進行實踐!

訓練實踐

  1. Kaggle挑戰賽/練習

Kaggle(Your Home for Data Science)在資料分析領域早已大名鼎鼎,甚至可以說是資料分析第一社群。可以從Titanic這個比賽開始。Titanic: Machine Learning from Disaster

  1. 天池大資料競賽

阿里雲 天池大資料眾智平臺-資料科學家社群

Sklearn文件學習

Sklearn(scikit-learn: machine learning in Python)是Python上最流行的機器學習/資料科學工具包,上文介紹的Python Machine Learning書中就大量使用Sklearn的API。和使用Kaggle的目的一致,學習的Sklearn的文件也是一種實踐過程。比較推薦的方法是把主流機器學習模型Sklearn中的例子都看一遍。

工具 Scikit-Learn 官方文件

Scikit-Learn 作為機器學習一個非常全面的庫,是一份不可多得的實戰程式設計手冊。
官方文件:scikit-learn.org/stable/inde…
中文文件(0.19):sklearn.apachecn.org/#/

書籍

  1. scikit-learn

學習sklearn文件時同時配合著scikit-learn這本書,我會推薦參考這本19年的新書,是我見過的為數不多的把理論和實踐相結合的比較棒的書,尤其是程式碼部分!

  1. 周志華機器學習

再次提到周老師是因為西瓜書是值得常常翻看的一本書,在kaggle挑戰和閱讀Sklearn文件的過程中你還會時不時的遇到一些新的名詞,比如流形學習(manifold learning)等。這個時候你會發現西瓜書真的是一本中級階段大而全的書籍。

  1. 《統計學習方法》

李航的這本《統計學習方法》堪稱經典,包含更加完備和專業的機器學習理論知識,作為夯實理論非常不錯。
講課 PPT:github.com/fengdu78/li…
讀書筆記:www.cnblogs.com/limitlessun…
github.com/SmirkCao/Li…
參考筆記:zhuanlan.zhihu.com/p/36378498
程式碼實現:github.com/fengdu78/li…

  1. 《Scikit-Learn 與 TensorFlow 機器學習實用指南》

在經過前面的學習之後,這本《Scikit-Learn 與 TensorFlow 機器學習實用指南》非常適合提升你的機器學習實戰程式設計能力。
這本書分為兩大部分,第一部分介紹機器學習基礎演算法,每章都配備 Scikit-Learn 實操專案;第二部分介紹神經網路與深度學習,每章配備 TensorFlow 實操專案。如果只是機器學習,可先看第一部分的內容。

全書程式碼:github.com/ageron/hand…

  1. 《機器學習實戰》

學完了上述幾門優秀的公開課之後,已經具備了比較不錯的機器學習理論了。接下來就要注重實戰。簡單地說,最直接的方法就是自己實現一遍主流的機器學習演算法。這裡可能有的同學說不需要重複造輪子。但是我覺得簡單地把所有機器學習演算法使用python實現一遍還是很有必要的,至少是虛擬碼的形式。一方面能夠加深自己對理論的深入理解,另一方面能夠鍛鍊自己的程式碼實操能力。可以看下這本《機器學習實戰》書:

這本書最大的特點就是從零開始,使用python實現主流的機器學習演算法。可以借鑑和參考。但是這本書的缺點也很明顯,比如程式碼基於python2,程式碼比較晦澀難懂,可讀性不高。但整體瞭解下還是很不錯的。

視訊

  1. 公開課 林軒田《機器學習技法》

《機器學習技法》課程是《機器學習基石》的進階課程。主要介紹了機器學習領域經典的一些演算法,包括支援向量機、決策樹、隨機森林、神經網路等等。難度要略高於《機器學習基石》,具有很強的實用性。
中文視訊:www.bilibili.com/video/av367…
中文筆記:redstonewill.com/category/ai…

第三階段(可選*):深度學習(3-6個月)

因為深度學習是當下的熱點,很多公司都在尋找深度學習人才。雖然深度學習只是機器學習的一個子集,但有興趣朝這個方向發展的朋友可以在完成以上學習後單獨學習一下深度學習。

視訊

  1. 吳恩達深度學習課程

吳恩達在八月份的時候通過Deeplearning.ai和Coursera平臺推出了最新系列的五門深度學習課程(deeplearning.ai)。有條件的朋友可以通過Coursera學習獲得證書,最近網易雲課堂也上線了這門課的翻譯版。如果想要上其中的課程,需要先註冊報名「深度學習工程師微專業」 深度學習工程師微專業 - 一線人工智慧大師吳恩達親研-網易雲課堂 - 網易雲課堂,之後就可以分別點開每門課單獨進行學習。
整個專題共包括五門課程:01.神經網路和深度學習;02.改善深層神經網路-超引數除錯、正則化以及優化;03.結構化機器學習專案;04.卷積神經網路;05.序列模型。
課程視訊
網易雲課堂:mooc.study.163.com/university/…

Coursera:www.coursera.org/specializat…

課程筆記

之前編寫過吳恩達老師機器學習個人筆記黃海廣博士帶領團隊整理了中文筆記:

github.com/fengdu78/de…

參考論文

吳恩達老師在課程中提到了很多優秀論文,黃海廣博士整理如下:

github.com/fengdu78/de…

課程PPT及課後作業

吳恩達深度學習課程,包含課程的課件、課後作業和一些其他資料:

github.com/stormstone/…

從18年 8 月份開始,AI 界大IP吳恩達在 Coursera 上開設了由 5 門課組成的深度學習專項課程,掀起了一股人工智慧深度學習熱潮。關於該深度學習專項課程,紅色石頭非常推薦!它對於理解各種演算法背後的原理非常有幫助,同時提供了大量的應用場景,涉及影象、語音、自然語言理解等各方面,還提供了一些工具函式、資料集。這個系列課程是從機器學習過渡到深度學習的必備課程!

今年,Ng 又在斯坦福大學又開設了高質量的深度學習課程 CS230。這門課的主頁是:CS230: Deep Learning這門課是 deeplearning.ai 的線上、線下綜合課程。這門課採用翻轉課堂的教學形式,你可以在家觀看教學視訊,完成深度程式設計作業和線上測試,然後來到課程做進一步討論並完成專案。這門課將以一個開放式的最終專案作為結束,此過程中教學團隊會提供一些幫助。該門課的線上部分與deeplearning.ai一致,線下部分包含了一個課程專案。目前 CS230 的專案報告與 Poster 展示都已經發布。包含多種主題,如音樂生成、情緒檢測、電影情感分類、癌症檢測等。https://web.stanford.edu/class/cs230/proj-spring-2018.html

書籍

  1. Deep Learning - by Ian GoodFellow

深度學習這本書是由當下深度學習領域的幾位領軍人物所著,包含三大巨頭之一的Bengio,還有教父Hinton來作序推薦。這本書的中文字翻譯由張志華教授團隊負責,在github上免費放出了翻譯版本,印刷版也可以從亞馬遜中國上買到。
英文版:Deep Learning
中文版:exacity/deeplearningbook-chinese

閱讀建議:

  • 為了補充基礎可以閱讀第1-5章其中也包含了一些數學知識
  • 只關注主流神經網路知識可以閱讀6-10章,介紹了DNN/CNN/RNN
  • 需要進一步瞭解一些調參和應用技巧,推薦閱讀11和12章

另外,鑑於現在深度學習這麼的火熱,而且現在做機器學習也避免不了瞭解及應用深度學習,我這裡也加入一些深度學習的內容。

1、入門的數學和程式設計基礎和機器學習的要求是一樣的。

2、入門讀物還是推薦Andrew Ng老師組織的一個WIKI,UFLDL Tutorial - Ufldl , 非常建議大家老老實實花兩個星期的時間把這個wiki的內容和相關程式自己實現一次。而且,這個wiki是有中文版本的,在每個頁面的最下面都可以點選檢視中文版本。(PS:我還很榮幸的當時參與了當時的翻譯工作,為內容的中文化做了一點點微小的工作。)。

3、現在的深度學習應用最為廣泛的就是卷積神經網路(Convolutional neural network, CNN),所以建議大家可以多看看這個方面的內容。正好這幾天Fei Fei Li老師的CNN課程又開課了,大家有興趣可以去看看。這個網站會同步更新,而且有中文翻譯。

4、做深度學習避免不了的要選擇一個平臺,Tensorflow,Caffe,Torch,MxNet等等都是選擇。如果是新手,尤其是基於Windows平臺的新手,我還是比較建議用Tensorflow。具體的內容可以參見這個

5、最後,就是勤聯絡、勤聯絡、勤聯絡啦。

6、最後的最後,如果沒有專案參與,那麼最好的檢驗自己的學習成果的手段就是參加比賽啦。國外的Kaggle,KDD CUP,…。國內的天池大資料競賽,…。

https://www.kaggle.com/
https://www.kdd.org/kdd-cup
https://tianchi.shuju.aliyun.com/

第四階段:深入研究

恭喜你!如果你已經完成了上面的計劃表,代表你已經有了相當的機器學習能力。這個階段,最重要的就是不要貪多嚼不爛。如果你瀏覽知乎,會發現大家都說你必須讀Elements of Statistical Learning, MLAPP之類的大部頭。我承認閱讀這樣的書會有幫助,但在你有了一定的基礎知識後,相信你已經知道自己需要接著做什麼了也有了志同道合的朋友,我希望把選擇權交還給你,而不是繼續推薦成堆的課程和書籍。當然,如果你希望繼續深入的話,中文可以繼續閱讀周志華老師的《機器學習》和李航老師的《統計學習基礎》,英文可以入手《Elements of Statistical Learning》。**在這個階段,重點要形成成體系的知識脈絡,切記貪多嚼不爛,切記!

從閱讀論文角度來說,訂閱Arxiv,關注機器學習的頂級會議,如ICML/NIPS/KDD等,相關的方法在知乎上可以很容易搜尋到,不在此贅述。

框架研究

TensorFlow。推薦一個簡單的中文入門教程。主講人是一個在美國讀大學的中國留學生,講得很有趣。(咦,youtube的沒自動轉)https://www.youtube.com/watch?v=8X9QUwtRSs0&list=PLwY2GJhAPWRcZxxVFpNhhfivuW0kX15yG&index=1牆內的朋友可以在bilibili看(一樣的)嗶哩嗶哩 ( ゜- ゜)つロ 乾杯~ Bilibili

學習路線思維導圖

機器學習

深度學習

更多問題請訪問:我的個人網站(耳殼網)
大家一起學習交流!