[TOC]
編者按:“范式大學”由第四范式發起,致力于成為培養工程師轉型為數據科學家的“黃埔軍校”。專欄專注于以人工智能解決具體商業問題。在這里你將會看到,企業如何通過可實施的方法完成 AI 轉型;個人如何通過最新的科技工具,快速成為能解決問題的機器學習工程師。
相信看到這篇文章的朋友,幾乎都想成為機器學習科學家。
事實上,絕大多數的付費課程,基本上都有完全免費的課程放在另一個地方。我們只是把這些信息整理好,告訴你在哪兒可以找到他們,以及通過什么樣的順序進行學習。
這樣,哪怕你是還沒畢業的大學生,或者是初入職場的工程師,都可以通過自學的方式掌握機器學習科學家的基礎技能,并在論文、工作甚至日常生活中快速應用。
在這里我們推薦一份用戶友好型的機器學習教程,你可以通過幾個月的學習成為機器學習科學家,完全免費。
一份用戶友好型的機器學習教程
當你學習機器學習課程時,有沒有被信息過載所淹沒?
大部分的學習者都遇到了這個問題,這不是他們的錯,因為絕大多數的機器學習課程都過于關注個別算法了。
沒錯,雖然算法很重要,但他們還是把太多時間花在了算法上。
以至于......你幾乎很難在短時間內走完一遍機器學習的流程,從而感受到通過它解決具體數據問題的巨大興奮。
這些機器學習課程關注于算法是因為它容易教。相比之下,如果機器學習老師要帶你走一遍機器學習的流程,那么他需要搭建計算環境,完成數據采集、清洗、拆分,特征處理,模型調參和模型預測,甚至他還需要一個面向學習者的交互界面。老師哪有這么多的工具,與其手把手帶著學生走一遭,還不如學習機器學習算法。
但這樣的問題是,很難有人能堅持通過自學,成為一個卓越的機器學習科學家。哪怕他是數學博士,或者技術高超的程序員,都很容易陷在細節中而難以有具體項目實現的成就感。
這份教程將會帶來完全不同的思路。它非常適合自學者,即便完全沒有編程的基礎,也能通過恰當的工具快速實現機器學習模型,解決工作、生活中遇到的具體問題。
值得注意的是,我們享用了世界頂級的機器學習資源,而不需要花費 1 分錢。
自我學習的方式
我們推薦通過 Doing Shit(不是技術術語)完成你的學習。
在這之前你也許已經學習過機器學習了,但從我和朋友們的經驗來看,往往會被各種神秘的符號、公式、大量的教科書和論文整的暈頭轉向,然后再也不想碰這惱人的玩意了。
我們的方法會更加友好,它的學習過程就像小朋友學習一樣,你會了解一些基礎的知識(但不一定要完全弄懂),然后通過好用的工具快速實現出來就好了。而當你被建模出來的結果吸引,那時候我們才談算法背后的數學邏輯和計算邏輯。
所以我們會在學習中做很多機器學習項目,這樣的好處是當你面對一個工作機會時,你就是一個經驗豐富的機器學習科學家了!
當然自學本身是需要自律的,這本教程將一直陪伴著你,以下是 4 個步驟。
1.前提條件 (不需要完全弄懂)
統計學、編程和數學(也可以不需要編程)
2.海綿模式
把自己浸泡在機器學習的各種理論中
3.目標實踐
通過機器學習包實踐 9 個有意思的題目
4.機器學習項目
深度參與到感興趣的項目和領域中
步驟 1:前提條件?
機器學習之所以看起來很嚇人,是因為總伴隨著那些晦澀難懂的術語。實際上,即便你是中文系畢業的,也可以學好機器學習。不過,我們需要你在一些領域有基礎的理解。
好消息是,一旦你滿足了前提條件,其余的將會非常容易。事實上,幾乎所有的機器學習都是把統計學和計算機科學的概念應用于數據領域。
任務:確保你了解基礎的統計學、編程和數學
統計學:理解統計學、特別是貝葉斯概率對許多機器學習算法來說都是至關重要的。
免費的指南:How to Learn Statistics for Data Science, The Self-Starter Way
[https://elitedatascience.com/learn-statistics-for-data-science](https://elitedatascience.com/learn-statistics-for-data-science)
編程:懂得編程將會更靈活的應用機器學習。
免費的指南:How to Learn Python for Data Science, The Self-Starter Way
[https://elitedatascience.com/learn-python-for-data-science](https://elitedatascience.com/learn-python-for-data-science)
數學:對原始算法的研究需要線性代數、多變量計算的基礎。
免費的指南:How to Learn Math for Data Science, The Self-Starter Way
[https://elitedatascience.com/learn-math-for-data-science](https://elitedatascience.com/learn-math-for-data-science)
你可以先看看這些教程,給你的機器學習道路打下知識基礎。
步驟 2:海綿模式?
海綿模式是盡可能吸收足夠多的機器學習理論知識。

海綿寶寶
現在有些人可能會想:“如果我不打算進行原創性研究,為什么在可以使用現有機器學習包的時候,還需要學習理論?”
這是一個合理的問題!
然而,如果你想把機器學習更靈活的應用于日常工作,學習一些基礎理論還是很有好處的,而且你并不需要完全弄懂。下面我們會劇透學習機器學習理論的 5 個理由。
(1)規劃和數據采集
數據采集真是一個昂貴和耗時的過程!那么我需要采集哪些類型的數據?根據模型的不同,我需要多少數據?這個挑戰是否可行?
(2)數據假設和預處理
不同的算法對數據輸入有不同的假設,那我應該如何預處理我的數據?我應該正則化嗎?假如我的模型缺少一些數據,它還穩定嗎?離群值怎么處理?
(3)解釋模型結果
簡單的認為機器學習是一個“黑盒子”的概念是錯誤的。是的,并不是所有的結果都直接可以解釋,但你需要診斷自己的模型然后改善它們。我要怎么評估模型是過擬合還是欠擬合?我要向業務利益相關者怎么解釋這些結果?以及模型還有多少的改善空間?
(4)改進和調整模型
你的第一次訓練很少會達到最佳模式,你需要了解不同的調參和正則化方法的細微差別。如果我的模型是過擬合了,我該如何補救?我應該花更多時間在特征工程上,還是數據采集上?我可以組合我的模型嗎?
(5)驅動商業價值
機器學習從來不會在真空中完成。如果你不了解武器庫中的工具,就無法最大化發揮它們的效能。在這么多結果指標中,哪些是優化的參考指標?哪個更為重要?或者還有其他的算法會表現更好嗎?
好消息是,你不需要一開始就知道所有問題的答案。所以我們推薦你從學習足夠的理論開始,然后快速進入到實踐。這樣的話,你比較能夠堅持下來,并在一段時間后真正精通機器學習。
以下是一些免費的機器學習資料。
2.1 機器學習視頻課程
這是來自哈佛大學和耶魯大學的世界級課程。
任務:完成至少一門課程
哈佛大學數據科學課程
端到端的數據科學課程。相比吳恩達的課程,它對機器學習的重視程度較低,但是從數據收集到分析,你可以在這里學到整個數據科學的工作流程。
課程主頁:[http://cs109.github.io/2015/](http://cs109.github.io/2015/)
斯坦福大學機器學習課程
這是吳恩達的著名課程,這些視頻說清楚了機器學習背后的核心理念。如果你的時間只能上一節課,我們建議這個。
課程主頁:[https://www.youtube.com/watch?v=qeHZOdmJvFU&list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW&index=1](https://www.youtube.com/watch?v=qeHZOdmJvFU&list=PLZ9qNFMHZ-A4rycgrgOYma6zxF4BZGGPW&index=1)
2.2 機器學習參考資料
接下來我們推薦行業中兩本經典的教材。
任務:看這些 PDF 作為教科書
An Introduction to Statistical Learning
Gentler 在書里介紹了統計學習的基本要素,適合所有機器學習的學習者。
PDF 地址:[http://www-bcf.usc.edu/~gareth/ISL/ISLR%20Sixth%20Printing.pdf](http://www-bcf.usc.edu/~gareth/ISL/ISLR%20Sixth%20Printing.pdf)
Elements of Statistical Learning
嚴格的介紹了機器學習理論和數學,推薦給機器學習的研究員。
PDF 地址:[http://statweb.stanford.edu/~tibs/ElemStatLearn/](http://statweb.stanford.edu/~tibs/ElemStatLearn/)
2.3 成功的關鍵
以下是每個步驟成功的關鍵。
A:注重大局,總是問為什么
每當你被介紹一個新概念時,問一句“為什么”。為什么在某些情況下要使用決策樹而不是回歸?為什么要規范參數?為什么要拆分數據集?當你了解為什么使用每個工具時,你將成為真正的機器學習從業者。
B:接受你不會記得所有學過的東西
不要瘋狂的做筆記,也不要每個課程都復習 3 次。在自己的實際工作中,你會經常需要回過頭查看。
C:繼續前進,不要氣餒
盡量避免在一個話題上拖太久的時間。即便是對于機器學習教授來說,有些概念也很不好解釋。但是當你在實踐中開始應用時,你會很快就懂得概念的真實含義。
D:視頻比教科書更有效
從我們的經驗來看,教科書是很好的參考工具,但它很難堅持。我們強烈推薦視頻講座的形式。
步驟 3:有目的實踐?
在海綿模式之后,我們會通過刻意練習的方式磨練技能,把機器學習能力提高到一個新水平。目標包括三個方面:
1.實踐完整的機器學習流程:包括數據收集、清洗、預處理,建立模型,調整參數和模型評估。
2.在真實的數據集中練習,逐漸建立哪種模型適合哪種挑戰的直覺。
3.深入到一個具體主題中,例如在數據集中應用不同類型的聚類算法,看哪些效果最好。
在完成這些步驟后,當你開始解決大型項目時就不會不知所措了。
3.1 機器學習的工具
為了快速實現機器學習模型,我們推薦使用現成的建模工具。這樣的話,你會在短時間內練習整個機器學習的工作流程,而無需在任何一個步驟花費太多時間。這會給你非常有價值的“大局直覺”(Big Picture Intuition)。
Python:Scikit-Learn
Scikit-learn 和 Sklearn 是通用機器學習中 Python 的黃金標準庫,它具有常規算法的實現。
R:Caret
Caret 為 R 語言中的模型包提供一個統一的界面。它還包括了預處理、數據拆分、模型評估的功能,使其成為一個完整的端到端解決方案。
3.2 實踐數據集
學習了工具后,你還需要一些數據集。數據科學和機器學習的藝術,很多都在于解決問題時的幾十個微觀決定。我們會在不同的數據集中看到建模的結果。
任務:從以下選項中選擇 5 到 10 個數據集。我們建議從 UCI 的機器學習庫開始,例如你可以選擇 3 個數據集,分別用于回歸、分類和聚類。
在進行機器學習工程的時候,想想以下問題:
* 你需要為每個數據集執行哪些類型的預處理?
* 你需要進行降維操作嗎?你可以使用什么方法?
* 你可以如何拆分數據集?
* 你怎么知道模型是否出現“過擬合”?
* 你應該使用哪些類型的性能指標?
* 不同的參數調整會如何影響模型的結果?
* 你能夠進行模型組合以得到更好的結果嗎?
* 你的聚類結果和直觀的相符么?
UCI 機器學習報告
UCI 機器學習報告采集了超過 350 個不同的數據集,專門為機器學習提供訓練數據。你可以按照任務搜索(回歸、分類或聚類),也可以按照行業、數據集大小搜索。
地址:[http://archive.ics.uci.edu/ml/](http://archive.ics.uci.edu/ml/)
Kaggle
[Kaggle.com](http://kaggle.com/)?以舉辦數據科學比賽聞名,但是該網站還擁有超過 180 個社區數據集,它們包含了有趣的話題,從用戶寵物小精靈到歐洲足球比賽的數據應有盡有。
[https://www.kaggle.com/datasets](https://www.kaggle.com/datasets)
Data.gov
如果你正在尋找社會科學或者與政府有關的數據集,請查看 Data.gov。這是美國政府開放數據集合,你可以搜索超過 190,000 個數據集。
[https://www.data.gov/](https://www.data.gov/)
步驟 4:機器學習項目?
好了,現在到了真正有趣的部分了。到目前為止,我們已經涵蓋了前提條件、基本理論和有目的實踐。現在我們準備好進入更大的項目。
這一步驟的目標是將機器學習技術整合到完整的、端到端的分析中。
4.1 完成一個機器學習項目
任務:完成泰坦尼克幸存者挑戰。
泰坦尼克號幸存者預測挑戰是一個非常受歡迎的機器學習實踐項目,事實上,這是?[Kaggle.com](http://kaggle.com/)?上最受歡迎的比賽。
我們喜歡以這個項目作為起點,因為它有很多偉大的教程。你可以從中了解到這些有經驗的數據科學家們是怎么處理數據探索、特征工程和模型調參的。
Python 教程
我們真的非常喜歡這個教程,因為它教會你如何進行數據預處理和糾正數據。教程由 Pycon UK 提供。
教程地址:[https://github.com/savarin/pyconuk-introtutorial](https://github.com/savarin/pyconuk-introtutorial)
R 教程
在 R 中使用 Caret 包來處理幾個不同的模型。本教程很好總結了端到端的預測建模過程。
教程地址:[http://amunategui.github.io/binary-outcome-modeling/](http://amunategui.github.io/binary-outcome-modeling/)
這是一個“不負責任”的快速教程:僅僅是個教程,跳過了理論講解。不過這也很有用,而且它顯示了如何進行隨機森林操作。
教程地址:[http://will-stanton.com/machine-learning-with-r-an-irresponsibly-fast-tutorial/](http://will-stanton.com/machine-learning-with-r-an-irresponsibly-fast-tutorial/)
4.2 從頭寫個算法?
為了對機器學習有更深的理解,沒有什么比從頭寫個算法有幫助了,因為魔鬼總是在細節里。
我們建議從一些簡單的開始,例如邏輯回歸、決策樹或者 KNN 算法。
這個項目也為你提供了一個將數據語言翻譯成程序語言的實踐。當你想把最新的學術界研究應用于工作時,這個技能將會十分方便。
而如果你卡住了,這里有一些提示:
* 維基百科有很多好資源,它有很多常見算法的偽代碼。
* 為了培養你的靈感,請嘗試查看現有機器學習軟件包的源代碼。
* 將你的算法分解,為采樣、梯度下降等編寫單獨的功能
* 從簡單開始,在嘗試編寫隨機森林前,先執行一個決策樹。
4.3 選擇一個有趣的項目或領域?
如果你沒有好奇心,你是很難學好的。但目前為止,也許你已經找到了想堅持下去的領域,那么開始建模吧!
老實說這是機器學習最好的部分了。這是一個強大的工具,而一旦你開始理解,很多想法都會主動找上門。
好消息是,如果你一直在跟蹤,也準備好從事這份工作,那么你的收獲會遠超你的想象!
我們也推薦了 6 個有趣的機器學習項目。
地址:[https://elitedatascience.com/machine-learning-projects-for-beginners](https://elitedatascience.com/machine-learning-projects-for-beginners)
恭喜你到達了自學指南的終點
這里有一個好消息,如果你已經遵循并完成了所有任務,那么你在應用機器學習上將會比 90% 自稱是數據科學家的人更好。
而更好的消息是,你還有很多東西要學習。例如深度學習、強化學習、遷移學習、對抗生成模型等等。
成為最好的機器學習科學家的關鍵是永遠不要停止學習。在這個充滿活力、激動人心的領域,開始你的旅程吧!
該教程由 EliteDataScience 提供,我們翻譯了這份教程,略有改動。這是原文鏈接:[https://elitedatascience.com/learn-machine-learning](https://elitedatascience.com/learn-machine-learning)
* * *
感謝[杜小芳](http://www.infoq.com/cn/author/%E6%9D%9C%E5%B0%8F%E8%8A%B3)對本文的審校。
- 15張圖閱盡人工智能現狀
- LeCun臺大演講:AI最大缺陷是缺乏常識,無監督學習突破困境
- Google首席科學家談Google是怎么做深度學習的
- 為你的深度學習任務挑選性價比最高GPU
- 史上最全面的深度學習硬件指南
- 機器學習
- 普通程序員如何向人工智能靠攏?
- 從機器學習談起
- 普通程序員如何轉向AI方向
- 機器學習6大算法,優勢劣勢全解析
- 除了 Python ,這些語言寫的機器學習項目也很牛(二)
- 五個鮮為人知,但又不可不知的機器學習開源項目
- 機器學習入門算法:從線性模型到神經網絡
- 機器學習常見算法分類匯總
- 最實用的機器學習算法Top5
- NLP
- Lucene的原理和應用
- 理解和使用自然語言處理之終極指南(Python編碼)(經典收藏版12k字,附數據簡化籌技術人員)
- 神經網絡
- 曾經歷過兩次低谷的人工神經網絡,還會迎來下一個低谷么?
- 人工神經網絡——維基
- 深度學習——維基
- A Neural Network in 11 lines of Python (Part 1)
- 深度學習
- 基于深度學習的機器翻譯
- 谷歌研究員2萬字批駁上海交大用深度學習推斷犯罪分子
- 理解這25個概念,你的「深度學習」才算入門!
- Deep Learning(深度學習)學習筆記整理系列
- 概述、背景、人腦視覺機理
- 特征
- Deep Learning
- Deep Learning 訓練
- Deep Learning(中文)
- 第1章 引言
- 深度學習如何入門?——知乎
- 文章收錄
- 神經系統