因為之前有不少朋友在微信或 QQ 上問我,機器學習、深度學習應該如何入門呢?對應這一問題,紅色石頭碰巧也在知乎上看到有人提問,就把自己的入門學習經驗好好總結了一番,包括各種資源、課程筆記和建議,以及紅色石頭切身經歷的機器學習路線圖。希望對你有所幫助。
1. 放棄海量資料!
沒錯,就是放棄海量資料!在我們想要入門機器學習的時候,往往會蒐集很多資料,什麼 xx學院機器學習內部資源、機器學習從入門到進階百 G 資源、xx 人工智慧教程,等等。很多時候我們拿著十幾 G、幾百 G 的學習資源,然後踏踏實實地放到了某雲盤裡存著,等著日後慢慢學習。殊不知,有 90% 的人僅僅只是蒐集資料、儲存資料而已,放在雲盤裡一年半載也忘了開啟學習。躺在雲盤的資料很多時候只是大多數人“以後好好學習”的自我安慰和“自我”安全感而已。而且,面對海量的學習資料,很容易陷入到一種迷茫的狀態,最直接的感覺就是:天啊,有這麼多東西要學!天啊,還有這麼多東西沒學!簡單來說,就是選擇越多,越容易讓人陷入無從選擇的困境。
所以,第一步就是要放棄海量資料,放棄你的雲盤!
2. 放棄從零起步!
說到入門,很多人會想著那就要從最基礎的知識開始學起!機器學習是一門融合概率論、線性代數、凸優化、計算機、神經科學等多方面的複雜技術。學好機器學習需要的理論知識很多,有些人可能基礎不是特別紮實,就想著從最底層的知識開始學起,概率論、線性代數、機器學習凸優化公式推導,等等。但是這樣做的壞處是比較耗時間,而且容易造成“懈怠學習”,打消學習的積極性。因為啃書本和推導公式相對來說是比較枯燥的,遠不如自己搭建一個簡單的迴歸模型更能激發自己的學習積極性。當然,不是說不需要鑽研基礎知識,基礎理論知識非常重要!只是說,在入門的時候,最好先從頂層框架上有個系統的認識,然後再從實踐到理論,有的放矢的查缺補漏機器學習知識點。從巨集觀到微觀,從整體到細節,更有利於機器學習快速入門!而且從學習的積極性來說,也起到了“正反饋”的作用。
3. 機器學習入門學習路線
好了,談完了機器學習入門之前的兩個“放棄”之後,我就來系統介紹下紅色石頭整理的機器學習入門路線。
1)Andrew Ng《Machine Learning》
首先,非常推薦吳恩達(Andrew Ng)在 Coursera 上開設的機器學習入門課《Machine Learning》,授課地址是:
https://www.coursera.org/learn/machine-learning
關於這門課的官方介紹是:本課程將廣泛介紹機器學習、資料探勘和統計模式識別。相關主題包括:(i) 監督式學習(引數和非引數演算法、支援向量機、核函式和神經網路)。(ii) 無監督學習(叢集、降維、推薦系統和深度學習)。(iii) 機器學習例項(偏見/方差理論;機器學習和AI領域的創新)。課程將引用很多案例和應用,您還需要學習如何在不同領域應用學習演算法,例如智慧機器人(感知和控制)、文字理解(網路搜尋和垃圾郵件過濾)、計算機視覺、醫學資訊學、音訊、資料庫挖掘等領域。
這門課基本涵蓋了機器學習的主要知識點,例如:線性迴歸、邏輯迴歸、支援向量機、神經網路、K-Means、異常檢測等等。而且課程中沒有複雜的公式推導和理論分析。Ng 的目的是讓機器學習初學者能夠快速對整個機器學習知識點有比較整體的認識,便於快速入門。
紅色石頭整理了這門課所有知識點的思維導圖:
這門課每個知識點都會配套相應的練習題。大家可以在 Coursera 上下載,線下完成並提交。唯一的缺點可能是該習題都是基於 matlab 平臺的。但是,Github 上已經有人把作業整理成為 Python 的形式了。有 .py 和 .ipynb 兩種格式。
https://github.com/nsoojin/coursera-ml-py
https://github.com/kaleko/CourseraML
這門課所有的視訊、課件PPT、作業,紅色石頭都放在了百度雲盤上,需要的請在本公眾號後臺回覆:ng 即可獲得。
2)臺大林軒田《機器學習基石》
臺灣大學林軒田老師的《機器學習基石》課程由淺入深、內容全面,基本涵蓋了機器學習領域的很多方面。其作為機器學習的入門和進階資料非常適合。而且林老師的教學風格也很幽默風趣,總讓讀者在輕鬆愉快的氛圍中掌握知識。這門課比 Ng 的《Machine Learning》稍難一些,側重於機器學習理論知識。 首先附上這門課的主頁:
https://www.csie.ntu.edu.tw/~htlin/
林軒田機器學習基石這門課有一個配套教材:《Learning From Data》,林軒田也是編者之一。這本書的主頁為:
[http://amlbook.com/](http://amlbook.com/]
紅色石頭整理了這門課 16 節課的精煉筆記,供大家參考:
【11】Linear Models for Classification
3)臺大林軒田《機器學習技法》
《機器學習技法》課程是《機器學習基石》的進階課程。主要介紹了機器學習領域經典的一些演算法,包括支援向量機、決策樹、隨機森林、神經網路等等。難度要略高於《機器學習基石》,具有很強的實用性。
首先附上這門課的主頁:
https://www.csie.ntu.edu.tw/~htlin/
課程視訊在B站上可以直接觀看哦~這裡附上傳送門:
https://www.bilibili.com/video/av12469267/
紅色石頭整理了這門課 16 節課的精煉筆記,供大家參考:
【1】Linear Support Vector Machine
【2】Dual Support Vector Machine
【3】Kernel Support Vector Machine
【4】Soft-Margin Support Vector Machine
【11】Gradient Boosted Decision Tree
【14】Radial Basis Function Network
關於《機器學習基石》和《機器學習技法》的所有資源請在本公眾號後臺回覆:lin 即可獲得。
4)Andrew Ng 《深度學習專項課程》
從去年 8 月份開始,AI 界大IP吳恩達在 Coursera 上開設了由 5 門課組成的深度學習專項課程,掀起了一股人工智慧深度學習熱潮。這裡附上 deeplearning.ai 的官網:
關於該深度學習專項課程,紅色石頭非常推薦!它對於理解各種演算法背後的原理非常有幫助,同時提供了大量的應用場景,涉及影象、語音、自然語言理解等各方面,還提供了一些工具函式、資料集。這個系列課程是從機器學習過渡到深度學習的必備課程!該專項課程分為五門課,每門課的讀書筆記彙總:
《神經網路與深度學習》:
《優化神經網路》:
《構建機器學習專案》:
《卷積神經網路CNN》:
《序列模型RNN》:
今年,Ng 又在史丹佛大學又開設了高質量的深度學習課程 CS230。這門課的主頁是:
https://web.stanford.edu/class/cs230/
這門課是 deeplearning.ai 的線上、線下綜合課程。這門課採用翻轉課堂的教學形式,你可以在家觀看教學視訊,完成深度程式設計作業和線上測試,然後來到課程做進一步討論並完成專案。這門課將以一個開放式的最終專案作為結束,此過程中教學團隊會提供一些幫助。
該門課的線上部分與 deeplearning.ai 一致,線下部分包含了一個課程專案。目前 CS230 的專案報告與 Poster 展示都已經發布。包含多種主題,如音樂生成、情緒檢測、電影情感分類、癌症檢測等。
https://web.stanford.edu/class/cs230/proj-spring-2018.html
關於 CS230 所有的課程資料 pdf 檔案,包括最終專案等檔案請在本公眾號後臺回覆:CS230 即可獲得。
4. 進階
基本上完成上述課程就算是入門了。接下來可以根據自己的興趣和方向,有的放矢。例如主攻 CV 方向,可以繼續學習史丹佛 CS231n 課程:
如果主攻 NLP 方向可以學習史丹佛 CS224n 課程:
http://web.stanford.edu/class/cs224n/
當然,臺大李宏毅的課程也很不錯:
http://speech.ee.ntu.edu.tw/~tlkagk/courses.html
更多AI資源請關注公眾號:AI有道(ID:redstonewill)