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