【机器学习】扎实入门机器学习的路子
今天是一點(diǎn)經(jīng)驗分享,包大人當(dāng)初用這個路子入門機(jī)器學(xué)習(xí)的。
前言
回顧了下我當(dāng)初入門機(jī)器學(xué)習(xí)方式,發(fā)現(xiàn)還是有些特點(diǎn)的。因為是科班出身,所以是那種穩(wěn)扎穩(wěn)打,自頂向下,理論結(jié)合實踐的方式,比較注重用代碼實現(xiàn)去理解原理。代碼有個好處就是不會騙人,光看理論有種我明白了,但是很模糊,如果結(jié)合代碼就非常清晰了。用兩個字說就是“扎實”。
主要分為原理入門,編程理解,實戰(zhàn)應(yīng)用,三個步驟。其中非常強(qiáng)調(diào)過程中的正反饋,和優(yōu)質(zhì)的資源。正反饋是長久堅持的動力來源。優(yōu)質(zhì)資料是高效正確的保證。
比較反對下面這樣囫圇吞棗,良莠不齊,就想著21天從入門到精通的方式。
第一、反對上來就給你推薦python,sklearn,pandas之類的。這些東西往往把細(xì)節(jié)都藏起來了,容易變成調(diào)包俠。
第二、?不推薦任何國內(nèi)的非知名大學(xué)的視頻教程。大部分的東西不是抄就是質(zhì)量太差,有吳恩達(dá)的公開課不看去買網(wǎng)課,留著錢買個大雞腿吃不好嗎。
第三、不推薦任何上來就是各種花里胡哨從開發(fā)到部署的實戰(zhàn)項目,抓住人就想心急吃熱豆腐的心理貪圖你的錢包。
第一階段:原理入門
目標(biāo)是搞清楚機(jī)器學(xué)習(xí)的基本概念和基本的算法原理。這個階段的正反饋來自于新知識的獲取,原理的理解。不要好高騖遠(yuǎn)。下面介紹幾種入門方法,分別對應(yīng)看書入門黨,看視頻入門黨,有一些精選的優(yōu)質(zhì)資源推薦給初學(xué)者。推薦的資源,周志華《機(jī)器學(xué)習(xí)》,李航《統(tǒng)計學(xué)習(xí)方法》 Peter Harrington 《機(jī)器學(xué)習(xí)實戰(zhàn)》吳恩達(dá) Coursra 機(jī)器學(xué)習(xí)公開課
首先看書入門黨,周志華和李航老師的西瓜書和統(tǒng)計學(xué)習(xí)方法都可以,可以快速地看完前幾章,不要具體到算法,如果你愿意,看完邏輯回歸就可以了,首先明白機(jī)器學(xué)習(xí)問題的定義,其次明白幾個關(guān)鍵的名詞,訓(xùn)練驗證測試,偏差方差,樣本,特征,標(biāo)簽。然后去看什么是監(jiān)督學(xué)習(xí)什么是無監(jiān)督學(xué)習(xí),大概了解了這些之后,再到具體的算法。再推薦一本書《機(jī)器學(xué)習(xí)實戰(zhàn)》綠皮書,這些書的特點(diǎn)就是原理講的很明白,《機(jī)器學(xué)習(xí)實戰(zhàn)》所有的算法都用代碼實現(xiàn)了一遍,邏輯清晰很好理解,比那些用sklaern的書強(qiáng)一萬倍。
看視頻入門黨,推薦吳恩達(dá) Coursera 上的《機(jī)器學(xué)習(xí)》,吳恩達(dá)老師設(shè)計的課程已經(jīng)非常適合入門了,側(cè)重原理,邏輯清楚,機(jī)器學(xué)習(xí)的細(xì)節(jié)也面面俱到。
經(jīng)過上述階段,你大概對機(jī)器學(xué)習(xí)要解決的問題,使用的方法和適用場景都有所了解了,這時候,你大概對算法的原理也都八九不離十,但是學(xué)習(xí)原理總是枯燥的,不過一定要堅持下來,千萬不要在這個階段滿足于調(diào)包。
第二階段:在編程中理解
目標(biāo)是能夠自己動手實現(xiàn)算法的細(xì)節(jié)而不是用sklearn去調(diào)包。正反饋是自己動手從頭正確實現(xiàn)機(jī)器學(xué)習(xí)算法。?推薦資源?Peter Harrington 《機(jī)器學(xué)習(xí)實戰(zhàn)》吳恩達(dá) Coursra 機(jī)器學(xué)習(xí)公開課編程作業(yè)。
這里推薦吳恩達(dá)老師機(jī)器學(xué)習(xí)課程的作業(yè),不需要把每個算法都實現(xiàn)一遍,但是要在實踐中去理解機(jī)器學(xué)習(xí)的基本算法套路,比如梯度下降是怎么做的,鏈?zhǔn)椒▌t怎么用程序表達(dá)。還有就是《機(jī)器學(xué)習(xí)實戰(zhàn)》的配套代碼,這本書的最大好處是讓你能夠用最基本的python語法,從底層上讓你構(gòu)建代碼,實現(xiàn)我們常說的比如郵件過濾,數(shù)據(jù)分類的應(yīng)用。
很多時候你要寫最基本的代碼和結(jié)構(gòu)去做這些工作,而不是像sklearn去調(diào)用fit 和predit,你能實現(xiàn)算法的底層原理,知道決策樹的分割增益計算如何寫代碼,梯度下降如何寫代碼,知道機(jī)器學(xué)習(xí)是如何從0到1實現(xiàn)的。
不過這本書比較老舊了,重點(diǎn)也不是講解理論方面的東西,可以當(dāng)成第二個階段的教材,和第一階段互補(bǔ)。
另外。如果你是NLP方向的同學(xué),可以看一下詞向量GloVe的代碼實現(xiàn),為什么推薦GloVe的代碼,他是一個用純c語言寫的機(jī)器學(xué)習(xí)做矩陣分解來求解詞向量的程序,包含實現(xiàn)隨機(jī)梯度下降,損失函數(shù)定義,數(shù)據(jù)并行處理等基本的要素,是麻雀雖小,五臟俱全,代碼邏輯清晰,涉及到機(jī)器學(xué)習(xí)的方方面面,而且,毫無調(diào)包,代碼量不大,很容易看懂。
第三階段:實戰(zhàn)應(yīng)用
目標(biāo)是把機(jī)器學(xué)習(xí)應(yīng)用到實際問題中,加深對算法的理解。正反饋來自于使用機(jī)器學(xué)習(xí)工具來解決實際問題。推薦資源Kaggle。
這時候,你對機(jī)器學(xué)習(xí)的原理,實現(xiàn)都有了解了,但是機(jī)器學(xué)習(xí)畢竟是一門應(yīng)用的科學(xué),我們通過在實戰(zhàn)中學(xué)習(xí)機(jī)器學(xué)習(xí)。所以這個階段非常適合打比賽。這里比較推薦Kaggle平臺,不推薦國內(nèi)的競賽平臺,除非你想給自己添堵,被排行榜上各種騷操作嚇呆。至于怎么玩kaggle,推薦kaggle kernel上的開源討論,以及一些比較好的Grand Master的分享。
后話
上面三個階段,在具體的知識點(diǎn)上可以互相交叉。比如,你看完了邏輯回歸,動手實現(xiàn)了一下,然后上kaggle做了一個數(shù)據(jù)集的任務(wù)。不是說非得把所有的長篇大論看完了,這樣能更有利于你學(xué)習(xí)。
如果你有什么特別好的資源推薦,或者入門方法,歡迎放到評論區(qū)~
本站qq群955171419,加入微信群請掃碼:
總結(jié)
以上是生活随笔為你收集整理的【机器学习】扎实入门机器学习的路子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学术相关】Github大盘点!2021
- 下一篇: 【机器学习】推荐一个好用的开源autom