這是「范式大學(xué)推薦課程」第 4 篇文章,量子位獲第四范式授權(quán)轉(zhuǎn)載并重新編輯。
相信看到這篇文章的朋友,幾乎都想成為機器學(xué)習(xí)科學(xué)家。
事實上,絕大多數(shù)的付費課程,基本上都有完全免費的課程放在另一個地方。我們只是把這些信息整理好,告訴你在哪兒可以找到他們,以及通過什么樣的順序進行學(xué)習(xí)。
這樣,哪怕你是還沒畢業(yè)的大學(xué)生,或者是初入職場的工程師,都可以通過自學(xué)的方式掌握機器學(xué)習(xí)科學(xué)家的基礎(chǔ)技能,并在論文、工作甚至日常生活中快速應(yīng)用。
在這里我們推薦一份用戶友好型的機器學(xué)習(xí)教程,你可以通過幾個月的學(xué)習(xí)成為機器學(xué)習(xí)科學(xué)家,完全免費。
當你學(xué)習(xí)機器學(xué)習(xí)課程時,有沒有被信息過載所淹沒?
大部分的學(xué)習(xí)者都遇到了這個問題,這不是他們的錯,因為絕大多數(shù)的機器學(xué)習(xí)課程都過于關(guān)注個別算法了。
沒錯,雖然算法很重要,但他們還是把太多時間花在了算法上。
以至于……你幾乎很難在短時間內(nèi)走完一遍機器學(xué)習(xí)的流程,從而感受到通過它解決具體數(shù)據(jù)問題的巨大興奮。
這些機器學(xué)習(xí)課程關(guān)注于算法是因為它容易教。相比之下,如果機器學(xué)習(xí)老師要帶你走一遍機器學(xué)習(xí)的流程,那么他需要搭建計算環(huán)境,完成數(shù)據(jù)采集、清洗、拆分,特征處理,模型調(diào)參和模型預(yù)測,甚至他還需要一個面向?qū)W習(xí)者的交互界面。老師哪有這么多的工具,與其手把手帶著學(xué)生走一遭,還不如學(xué)習(xí)機器學(xué)習(xí)算法。
但這樣的問題是,很難有人能堅持通過自學(xué),成為一個卓越的機器學(xué)習(xí)科學(xué)家。哪怕他是數(shù)學(xué)博士,或者技術(shù)高超的程序員,都很容易陷在細節(jié)中而難以有具體項目實現(xiàn)的成就感。
這份教程將會帶來完全不同的思路。它非常適合自學(xué)者,即便完全沒有編程的基礎(chǔ),也能通過恰當?shù)墓ぞ呖焖賹崿F(xiàn)機器學(xué)習(xí)模型,解決工作、生活中遇到的具體問題。
值得注意的是,我們享用了世界頂級的機器學(xué)習(xí)資源,而不需要花費 1 分錢。
我們推薦通過 Doing Shit(不是技術(shù)術(shù)語)完成你的學(xué)習(xí)。
在這之前你也許已經(jīng)學(xué)習(xí)過機器學(xué)習(xí)了,但從我和朋友們的經(jīng)驗來看,往往會被各種神秘的符號、公式、大量的教科書和論文整的暈頭轉(zhuǎn)向,然后再也不想碰這惱人的玩意了。
我們的方法會更加友好,它的學(xué)習(xí)過程就像小朋友學(xué)習(xí)一樣,你會了解一些基礎(chǔ)的知識(但不一定要完全弄懂),然后通過好用的工具快速實現(xiàn)出來就好了。而當你被建模出來的結(jié)果吸引,那時候我們才談算法背后的數(shù)學(xué)邏輯和計算邏輯。
所以我們會在學(xué)習(xí)中做很多機器學(xué)習(xí)項目,這樣的好處是當你面對一個工作機會時,你就是一個經(jīng)驗豐富的機器學(xué)習(xí)科學(xué)家了!
當然自學(xué)本身是需要自律的,這本教程將一直陪伴著你,以下是 4 個步驟。
1.前提條件 (不需要完全弄懂)
統(tǒng)計學(xué)、編程和數(shù)學(xué)(也可以不需要編程)
2.海綿模式
把自己浸泡在機器學(xué)習(xí)的各種理論中
3.目標實踐
通過機器學(xué)習(xí)包實踐 9 個有意思的題目
4.機器學(xué)習(xí)項目
深度參與到感興趣的項目和領(lǐng)域中
機器學(xué)習(xí)之所以看起來很嚇人,是因為總伴隨著那些晦澀難懂的術(shù)語。實際上,即便你是中文系畢業(yè)的,也可以學(xué)好機器學(xué)習(xí)。不過,我們需要你在一些領(lǐng)域有基礎(chǔ)的理解。
好消息是,一旦你滿足了前提條件,其余的將會非常容易。事實上,幾乎所有的機器學(xué)習(xí)都是把統(tǒng)計學(xué)和計算機科學(xué)的概念應(yīng)用于數(shù)據(jù)領(lǐng)域
任務(wù):確保你了解基礎(chǔ)的統(tǒng)計學(xué)、編程和數(shù)學(xué)
統(tǒng)計學(xué):理解統(tǒng)計學(xué)、特別是貝葉斯概率對許多機器學(xué)習(xí)算法來說都是至關(guān)重要的。
免費的指南:How to Learn Statistics for Data Science, The Self-Starter Way
編程:懂得編程將會更靈活的應(yīng)用機器學(xué)習(xí)。
免費的指南:How to Learn Python for Data Science, The Self-Starter Way
數(shù)學(xué):對原始算法的研究需要線性代數(shù)、多變量計算的基礎(chǔ)。
免費的指南:How to Learn Math for Data Science, The Self-Starter Way
你可以先看看這些教程,給你的機器學(xué)習(xí)道路打下知識基礎(chǔ)。
步驟二:海綿模式海綿模式是盡可能吸收足夠多的機器學(xué)習(xí)理論知識。
現(xiàn)在有些人可能會想:“如果我不打算進行原創(chuàng)性研究,為什么在可以使用現(xiàn)有機器學(xué)習(xí)包的時候,還需要學(xué)習(xí)理論?”
這是一個合理的問題!
然而,如果你想把機器學(xué)習(xí)更靈活的應(yīng)用于日常工作,學(xué)習(xí)一些基礎(chǔ)理論還是很有好處的,而且你并不需要完全弄懂。下面我們會劇透學(xué)習(xí)機器學(xué)習(xí)理論的 5 個理由。
(1)規(guī)劃和數(shù)據(jù)采集
數(shù)據(jù)采集真是一個昂貴和耗時的過程!那么我需要采集哪些類型的數(shù)據(jù)?根據(jù)模型的不同,我需要多少數(shù)據(jù)?這個挑戰(zhàn)是否可行?
(2)數(shù)據(jù)假設(shè)和預(yù)處理
不同的算法對數(shù)據(jù)輸入有不同的假設(shè),那我應(yīng)該如何預(yù)處理我的數(shù)據(jù)?我應(yīng)該正則化嗎?假如我的模型缺少一些數(shù)據(jù),它還穩(wěn)定嗎?離群值怎么處理?
(3)解釋模型結(jié)果
簡單的認為機器學(xué)習(xí)是一個“黑盒子”的概念是錯誤的。是的,并不是所有的結(jié)果都直接可以解釋,但你需要診斷自己的模型然后改善它們。我要怎么評估模型是過擬合還是欠擬合?我要向業(yè)務(wù)利益相關(guān)者怎么解釋這些結(jié)果?以及模型還有多少的改善空間?
(4)改進和調(diào)整模型
你的第一次訓(xùn)練很少會達到最佳模式,你需要了解不同的調(diào)參和正則化方法的細微差別。如果我的模型是過擬合了,我該如何補救?我應(yīng)該花更多時間在特征工程上,還是數(shù)據(jù)采集上?我可以組合我的模型嗎?
(5)驅(qū)動商業(yè)價值
機器學(xué)習(xí)從來不會在真空中完成。如果你不了解武器庫中的工具,就無法最大化發(fā)揮它們的效能。在這么多結(jié)果指標中,哪些是優(yōu)化的參考指標?哪個更為重要?或者還有其他的算法會表現(xiàn)更好嗎?
好消息是,你不需要一開始就知道所有問題的答案。所以我們推薦你從學(xué)習(xí)足夠的理論開始,然后快速進入到實踐。這樣的話,你比較能夠堅持下來,并在一段時間后真正精通機器學(xué)習(xí)。
以下是一些免費的機器學(xué)習(xí)資料。
2.1 機器學(xué)習(xí)視頻課程
這是來自哈佛大學(xué)和耶魯大學(xué)的世界級課程。
任務(wù):完成至少一門課程
哈佛大學(xué)數(shù)據(jù)科學(xué)課程
端到端的數(shù)據(jù)科學(xué)課程。相比吳恩達的課程,它對機器學(xué)習(xí)的重視程度較低,但是從數(shù)據(jù)收集到分析,你可以在這里學(xué)到整個數(shù)據(jù)科學(xué)的工作流程。
斯坦福大學(xué)機器學(xué)習(xí)課程
這是吳恩達的著名課程,這些視頻說清楚了機器學(xué)習(xí)背后的核心理念。如果你的時間只能上一節(jié)課,我們建議這個。
課程主頁:
https://www.youtube.com/watch?v=qeHZOdmJvFU&list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW&index=1
2.2 機器學(xué)習(xí)參考資料
接下來我們推薦行業(yè)中兩本經(jīng)典的教材。
任務(wù):看這些 PDF 作為教科書
An Introduction to Statistical Learning
Gentler 在書里介紹了統(tǒng)計學(xué)習(xí)的基本要素,適合所有機器學(xué)習(xí)的學(xué)習(xí)者。
PDF 地址:http://www-bcf.usc.edu/~gareth/ISL/ISLR%20Sixth%20Printing.pdf
Elements of Statistical Learning
嚴格的介紹了機器學(xué)習(xí)理論和數(shù)學(xué),推薦給機器學(xué)習(xí)的研究員。
PDF 地址:http://statweb.stanford.edu/~tibs/ElemStatLearn/
2.3 成功的關(guān)鍵
以下是每個步驟成功的關(guān)鍵。
A:注重大局,總是問為什么
每當你被介紹一個新概念時,問一句“為什么”。為什么在某些情況下要使用決策樹而不是回歸?為什么要規(guī)范參數(shù)?為什么要拆分數(shù)據(jù)集?當你了解為什么使用每個工具時,你將成為真正的機器學(xué)習(xí)從業(yè)者。
B:接受你不會記得所有學(xué)過的東西
不要瘋狂的做筆記,也不要每個課程都復(fù)習(xí) 3 次。在自己的實際工作中,你會經(jīng)常需要回過頭查看。
C:繼續(xù)前進,不要氣餒
盡量避免在一個話題上拖太久的時間。即便是對于機器學(xué)習(xí)教授來說,有些概念也很不好解釋。但是當你在實踐中開始應(yīng)用時,你會很快就懂得概念的真實含義。
D:視頻比教科書更有效
從我們的經(jīng)驗來看,教科書是很好的參考工具,但它很難堅持。我們強烈推薦視頻講座的形式。
步驟三:有目的實踐在海綿模式之后,我們會通過刻意練習(xí)的方式磨練技能,把機器學(xué)習(xí)能力提高到一個新水平。目標包括三個方面:
1.實踐完整的機器學(xué)習(xí)流程:包括數(shù)據(jù)收集、清洗、預(yù)處理,建立模型,調(diào)整參數(shù)和模型評估。
2.在真實的數(shù)據(jù)集中練習(xí),逐漸建立哪種模型適合哪種挑戰(zhàn)的直覺。
3.深入到一個具體主題中,例如在數(shù)據(jù)集中應(yīng)用不同類型的聚類算法,看哪些效果最好。
在完成這些步驟后,當你開始解決大型項目時就不會不知所措了。
3.1 機器學(xué)習(xí)工具
為了快速實現(xiàn)機器學(xué)習(xí)模型,我們推薦使用現(xiàn)成的建模工具。這樣的話,你會在短時間內(nèi)練習(xí)整個機器學(xué)習(xí)的工作流程,而無需在任何一個步驟花費太多時間。這會給你非常有價值的“大局直覺”(Big Picture Intuition)。
Python:Scikit-Learn
Scikit-learn 和 Sklearn 是通用機器學(xué)習(xí)中 Python 的黃金標準庫,它具有常規(guī)算法的實現(xiàn)。
R:Caret
Caret 為 R 語言中的模型包提供一個統(tǒng)一的界面。它還包括了預(yù)處理、數(shù)據(jù)拆分、模型評估的功能,使其成為一個完整的端到端解決方案。
3.2 實踐數(shù)據(jù)集
學(xué)習(xí)了工具后,你還需要一些數(shù)據(jù)集。數(shù)據(jù)科學(xué)和機器學(xué)習(xí)的藝術(shù),很多都在于解決問題時的幾十個微觀決定。我們會在不同的數(shù)據(jù)集中看到建模的結(jié)果。
任務(wù):從以下選項中選擇 5 到 10 個數(shù)據(jù)集。我們建議從 UCI 的機器學(xué)習(xí)庫開始,例如你可以選擇 3 個數(shù)據(jù)集,分別用于回歸、分類和聚類。
在進行機器學(xué)習(xí)工程的時候,想想以下問題:
你需要為每個數(shù)據(jù)集執(zhí)行哪些類型的預(yù)處理?
你需要進行降維操作嗎?你可以使用什么方法?
你可以如何拆分數(shù)據(jù)集?
你怎么知道模型是否出現(xiàn)“過擬合”?
你應(yīng)該使用哪些類型的性能指標?
不同的參數(shù)調(diào)整會如何影響模型的結(jié)果?
你能夠進行模型組合以得到更好的結(jié)果嗎?
你的聚類結(jié)果和直觀的相符么?
UCI 機器學(xué)習(xí)報告
UCI 機器學(xué)習(xí)報告采集了超過 350 個不同的數(shù)據(jù)集,專門為機器學(xué)習(xí)提供訓(xùn)練數(shù)據(jù)。你可以按照任務(wù)搜索(回歸、分類或聚類),也可以按照行業(yè)、數(shù)據(jù)集大小搜索。
Kaggle
Kaggle.com 以舉辦數(shù)據(jù)科學(xué)比賽聞名,但是該網(wǎng)站還擁有超過 180 個社區(qū)數(shù)據(jù)集,它們包含了有趣的話題,從用戶寵物小精靈到歐洲足球比賽的數(shù)據(jù)應(yīng)有盡有。
Data.gov
如果你正在尋找社會科學(xué)或者與政府有關(guān)的數(shù)據(jù)集,請查看 Data.gov。這是美國政府開放數(shù)據(jù)集合,你可以搜索超過 190,000 個數(shù)據(jù)集。
好了,現(xiàn)在到了真正有趣的部分了。到目前為止,我們已經(jīng)涵蓋了前提條件、基本理論和有目的實踐。現(xiàn)在我們準備好進入更大的項目。
這一步驟的目標是將機器學(xué)習(xí)技術(shù)整合到完整的、端到端的分析中。
4.1 完成一個機器學(xué)習(xí)項目
泰坦尼克號幸存者預(yù)測挑戰(zhàn)是一個非常受歡迎的機器學(xué)習(xí)實踐項目,事實上,這是 Kaggle.com 上最受歡迎的比賽。
我們喜歡以這個項目作為起點,因為它有很多偉大的教程。你可以從中了解到這些有經(jīng)驗的數(shù)據(jù)科學(xué)家們是怎么處理數(shù)據(jù)探索、特征工程和模型調(diào)參的。
Python 教程
我們真的非常喜歡這個教程,因為它教會你如何進行數(shù)據(jù)預(yù)處理和糾正數(shù)據(jù)。教程由 Pycon UK 提供。
教程地址:
R 教程
在 R 中使用 Caret 包來處理幾個不同的模型。本教程很好總結(jié)了端到端的預(yù)測建模過程。
教程地址:
這是一個“不負責任”的快速教程:僅僅是個教程,跳過了理論講解。不過這也很有用,而且它顯示了如何進行隨機森林操作。
教程地址:
4.2 從頭寫個算法
為了對機器學(xué)習(xí)有更深的理解,沒有什么比從頭寫個算法有幫助了,因為魔鬼總是在細節(jié)里。
我們建議從一些簡單的開始,例如邏輯回歸、決策樹或者 KNN 算法。
這個項目也為你提供了一個將數(shù)據(jù)語言翻譯成程序語言的實踐。當你想把最新的學(xué)術(shù)界研究應(yīng)用于工作時,這個技能將會十分方便。
而如果你卡住了,這里有一些提示:
維基百科有很多好資源,它有很多常見算法的偽代碼。
為了培養(yǎng)你的靈感,請嘗試查看現(xiàn)有機器學(xué)習(xí)軟件包的源代碼。
將你的算法分解,為采樣、梯度下降等編寫單獨的功能
從簡單開始,在嘗試編寫隨機森林前,先執(zhí)行一個決策樹。
4.3 選擇一個有趣的項目或領(lǐng)域
如果你沒有好奇心,你是很難學(xué)好的。但目前為止,也許你已經(jīng)找到了想堅持下去的領(lǐng)域,那么開始建模吧!
老實說這是機器學(xué)習(xí)最好的部分了。這是一個強大的工具,而一旦你開始理解,很多想法都會主動找上門。
好消息是,如果你一直在跟蹤,也準備好從事這份工作,那么你的收獲會遠超你的想象!
我們也推薦了 6 個有趣的機器學(xué)習(xí)項目。
地址:
這里有一個好消息,如果你已經(jīng)遵循并完成了所有任務(wù),那么你在應(yīng)用機器學(xué)習(xí)上將會比 90% 自稱是數(shù)據(jù)科學(xué)家的人更好。
而更好的消息是,你還有很多東西要學(xué)習(xí)。例如深度學(xué)習(xí)、強化學(xué)習(xí)、遷移學(xué)習(xí)、對抗生成模型等等。
成為最好的機器學(xué)習(xí)科學(xué)家的關(guān)鍵是永遠不要停止學(xué)習(xí)。在這個充滿活力、激動人心的領(lǐng)域,開始你的旅程吧!
該教程由 EliteDataScience 提供,我們翻譯了這份教程,略有改動。這是原文鏈接:
「范式大學(xué)」由第四范式發(fā)起,致力于成為“數(shù)據(jù)科學(xué)家”的黃埔軍校?!阜妒酱髮W(xué)系列課程」會和大家推薦戴文淵、楊強、陳雨強等機器學(xué)習(xí)領(lǐng)域頂尖從業(yè)人士的最新分享,以及由第四范式產(chǎn)品團隊推薦和整理的機器學(xué)習(xí)材料。
我們正在招募編輯記者、運營等崗位,工作地點在北京中關(guān)村,期待你的到來,一起體驗人工智能的風起云涌。
相關(guān)細節(jié),請在公眾號對話界面,回復(fù):“招聘”兩個字。
△ 掃碼強行關(guān)注『量子位』
追蹤人工智能領(lǐng)域最勁內(nèi)容