如何自學人工智慧?

景略集智發表於2018-05-22

歡迎關注我們,AI教程、學習資源、趣味科普、論文解讀,你想看的都在這裡!


最近不少同學躍躍欲試,想投入 AI 的懷抱,但苦於不知如何下手。其中,人工智慧的核心就是機器學習(Machine Learning),它是使計算機具有智慧的根本途徑,其應用遍及人工智慧的各個領域。

我們今天就來分享一篇來自 EliteDataScience 上專門講給機器學習入門自學者的教程,一步步教你如何從基礎小白進階為 ML 大拿。快上車吧,別找硬幣了,這趟車不要錢!

如何自學人工智慧?

你是否正在準備自學機器學習,但又不知道怎麼去學?

今天我們在這篇文章裡就教你怎樣免費獲得世界級的機器學習教育,你既不需要有博士學位,也不必是技術大牛。不管你是想成為資料科學家還是在開發中使用機器學習演算法,其實你都能比想象中更快地學習和應用機器學習。

本文告訴你在機器學習之路上的幾個步驟,保你不會迷路,下面開始我們的表演。

第一步:先搞懂什麼是機器學習

在悶頭學習機器學習之前,最好先把什麼是機器學習搞清楚,瞭解機器學習的基本概念。

簡單來說,機器學習就是教電腦怎樣從資料中學習,然後做出決策或預測。對於真正的機器學習來說,電腦必須在沒有明確程式設計的情況下能夠學習識別模型。

機器學習屬於電腦科學與統計學的交叉學科,在多個領域會以不同的面目出現,比如你應該聽過這些名詞:資料科學、大資料、人工智慧、預測型分析、計算機統計、資料探勘······

雖然機器學習和這些領域有很多重疊的地方,但也不能將它們混淆。例如,機器學習是資料科學中的一種工具,也能用於處理大資料。

機器學習自身也分為多個型別,比如監督式學習、非監督式學習、增強學習等等。例如:

郵件運營商將垃圾廣告資訊分類至垃圾箱,應用的是機器學習中的監督式學習;電商公司通過分析消費資料將消費者進行分類,應用的是機器學習中的非監督式學習;而無人駕駛汽車中的電腦合攝像頭與道路及其它車輛互動、學習如何導航,就是用到了增強學習。

想了解機器學習的入門知識,可以看看一些網路課程。對於想對機器學習領域的重點慨念有個基礎的瞭解的人來說,吳恩達教授的機器學習入門課程絕對必看:戳這裡

以及“無人車之父” Sebastian Thrun 的《機器學習入門》課程,對機器學習進行了詳細介紹,並輔以大量的程式設計操作幫助你鞏固所學內容:戳這裡

當然也少不了集智君整理製作的免費專欄,在這裡你可以免去安裝環境的煩惱,直接投入簡單地機器學習訓練中來:

邊看邊練的機器學習簡明教程

這些課程都是免費的哦!

大概瞭解機器學習後,我們就來到知識準備階段了。

第二步:預備知識

如果沒有基本的知識儲備,機器學習的確看起來很嚇人。要學習機器學習,你不必是專業的數學人才,或者程式設計師大牛,但你確實需要掌握這些方面的核心技能。

好訊息是,一旦完成預備知識,剩下的部分就相當容易啦。實際上,機器學習基本就是將統計學和電腦科學中的概念應用在資料上。

這一步的基本任務就是保證自己在程式設計和統計學知識上別掉隊。

2-1:用於資料科學中的Python程式設計

如果不懂程式設計,是沒法使用機器學習的。幸好,這裡有份免費教程,教你如何學習應用於資料科學中的Python語言:戳這裡

注:景略集智再補充三個資源:

[Python入門] 01 基本法則

從零學習資料科學中Python的完全指南

以及40多個Python學習資源的彙總文章

2-2:用於資料科學的統計學知識

瞭解統計學知識,特別是貝葉斯概率,對於許多機器學習演算法來說都是基本的要求。 這裡有份學習資料學習中統計學知識的教程:戳這裡

2-3:需要學習的數學知識

研究機器學習演算法需要一定的線性代數和多元微積分知識作為基礎。點這裡,獲取一份免費學習教程:戳這裡

第三步:開啟“海綿模式”,學習儘可能多的原理知識

所謂“海綿模式”,就是像海綿吸水一樣,儘可能多地吸收機器學習的原理和知識,這一步和第一步有些相似,但不同的是,第一步是對機器學習有個初步瞭解,而這一步是要掌握相關原理知識。

可能有些同學會想:我又不想做基礎研究,幹嘛要掌握這些原理,只要會用機器學習工具包不就行了嗎?

有這個疑問也很正常,但是對於任何想將機器學習應用在工作中的人來說,學習機器學習的基礎知識非常重要。比如你在應用機器學習中可能會遇到這些問題:

  • 資料收集是個非常耗時耗力的過程。你需要考慮:我需要收集什麼型別的資料?我需要多少資料?等此類的問題

  • 資料假設和預處理。不同的演算法需要對輸入資料進行不同的假設。我該怎樣預處理我的資料?我的模型對缺失的資料可靠嗎?

  • 解釋模型結果。說機器學習就是“黑箱”的觀點明顯是錯誤的。沒錯,不是所有的模型結果能直接判讀,但你需要能夠判斷模型的狀況,進而完善它們。我怎麼確定模型是過度擬合還是不充分擬合?模型還有多少改進空間?

  • 優化和除錯模型。很少有人剛開始就得到一個最佳模型,你需要了解不同引數之間的細微差別和正則化方法。如果我的模型過度擬合,該怎麼修正?我應該將幾個模型組合在一起嗎?

要想在機器學習研究中解答這些問題,掌握機器學習的知識原理必不可少。這裡推薦兩個世界級的機器學習課程,一定會讓你受益良多:

  1. 哈佛大學的機器學習課程,讓你瞭解從資料收集到資料分析的整個流程:戳這裡

(提示:這個課程和吳恩達教授的課程配合食用,效果更加)

  1. 史丹佛大學的機器學習課程,清楚地講解了機器學習的核心概念:戳這裡

還有兩部值得讀的參考書籍:《統計學習導論》和《統計學習基礎》

這兩部書的英文原版下載地址:

《An Introduction to Statistical Learning》

《Elements of Statistical Learning》

注:看不慣英文原版的同學,可以去讀這兩本書的中文版。

集智也建議大家可以多逛逛Reddit上的機器學習論壇:

機器學習版塊1

機器學習版塊2

機器學習版塊3

當然,Quora上的機器學習版塊也很有料:戳這裡

逛論壇不容易看到高階知識,你不能一直停留在菜鳥階段不是,要升級就有必要看看專業的論文。arXive是個好去處,是個收集物理學、數學、電腦科學與生物學的論文預印本的網站。

人工智慧版塊

機器學習版塊

如果嫌自己搜尋論文太麻煩,可以在網站 arxiv-sanity.com 上註冊一個賬號,它可以按自己的感興趣標籤給你推送最新的 arXive 上的論文。

第四步:針對性實際練習

在開啟“海綿模式”後,你應該掌握了機器學習的基礎理念知識,接著就該實際操作了。 實際操作主要是通過具體的、深思熟慮的實踐操作增強你的技能。本步目標有三個:

  • 練習機器學習的整個流程:收集資料,預處理和清理資料,搭建模型,訓練和除錯模型,評估模型。

  • 在真正的資料集上實踐操作:對於什麼樣的資料適合用什麼型別的模型,自己應逐漸建立這方面的判斷能力。

  • 深度探究:例如在上一步,你學習了很多機器學習演算法知識,在這一步就要將不同型別的演算法應用在資料集中,看看哪個效果最好。

完成這一步後,就可以進行更大規模的專案了。

4-1 九個基本部分

機器學習是一個非常廣泛和豐富的領域,幾乎在每個行業都有應用。因為要學習的東西太多,初學者很容易發慌,而且在面對很多個模型時也很容易迷失,看不到大局。

因此,我們把機器學習大概劃分為九個部分:

ML整體學習:

如何自學人工智慧?
基本的機器學習原理,比如方差權衡這些知識。

優化:

如何自學人工智慧?
為模型發現最優引數的演算法。

資料預處理:

如何自學人工智慧?
處理缺失資料、偏態分佈、異常值等。

取樣和拆分:

如何自學人工智慧?
怎樣拆分資料集來調整引數和避免過度擬合。

監督式學習:

如何自學人工智慧?
使用分類和迴歸模型從標記資料中學習。

非監督式學習

如何自學人工智慧?
使用因素和叢集分析模型從非標記資料中學習。

模型評估

如何自學人工智慧?
根據不同的效能度量做出決策。

整合學習

如何自學人工智慧?
將不同模型相結合,達到更好的效能。

商業應用

如何自學人工智慧?
機器學習如何幫助不同型別的商業業務。

4-2 實踐工具

對於初學者,我們建議採用現成可用的演算法,這樣可以把時間用在熟悉機器學習流程上,而不是寫演算法。根據你使用的程式語言,有兩個不錯的工具:

Python的Scikit-Learn:戳教程

R語言的Caret:戳教程

4-3 利用資料集實踐操作

在這步需要用資料集進行搭建和除錯模型的實際操作,也就是將你在“海綿模式”階段學到的理論轉變為程式碼。我們建議你選擇UCI Machine Learning Repo,Kaggle和http://Data.gov上的資料集開始入手:

UCI Machine Learning Repo

Kaggle資料集

DataGov資料集

第五步:機器學習專案

終於到了最後一步,也是很有意思的一步。目前為止,我們已經完成了:知識儲備、掌握基本原理、針對性練習等階段,現在我們準備探究更大的專案:

這一步的目標就是練習將機器學習技術應用於完整的端到端分析。

任務:完成下面的專案,依次從易到難。

5-1:“泰坦尼克號”倖存者預測

“泰坦尼克號”倖存者預測是練習機器學習時相當流行的選擇,而且有非常多的教程可供參考。

Python教程1

Python教程2

R語言教程1

R語言教程2

5-2 從零開始寫演算法

我們建議你先以一些簡單的方面寫起:邏輯迴歸、決策樹、k 最近鄰演算法等。

如果中間卡住了,這裡有些小技巧可以參考:

  • 維基百科是個不錯的資源庫,提供了一些常見演算法的虛擬碼。

  • 可以看看一些現成ML工具包的原始碼,獲得靈感。

  • 將演算法分為幾部分。寫出取樣、梯度下降等的分離函式。

  • 在開始寫整個演算法前,先寫一個簡單的決策樹。

5-3 選個有趣的專案或自己感興趣的領域

其實這應該是機器學習最棒的部分了,可以利用機器學習實現自己的想法。

如果實在沒想到好點子,這裡有8個有趣的初學者機器學習實踐專案:戳這裡

結語

如果你按照這個步驟一步步紮實學習的話,相信你最終一定在機器學習方面小有成就!

我們對初學機器學習的人還有10個小小的tips:

  • 為自己設定學習目標和期限,盡力完成。

  • 打好學習基礎,掌握基本理論。

  • 將實踐理論相結合,不要只關注某一個方面。

  • 試著自己從頭寫幾個演算法。

  • 多角度思考問題,找到自己感興趣的實踐專案。

  • 多想想每個演算法能產生什麼價值。

  • 不要相信科幻電影中對ML的胡吹。

  • 別過度理會網上關於ML知識的爭論。

  • 多想想資料的“輸入/輸出”,多問問“為什麼”。

  • 上集智,第一時間將自己升級→→集智

最後,祝同學們學有所成!

注:原文為英文,因此列舉的學習資源多為英文。如果擔心自己英文不好其實也沒關係,因為學習思路是一樣的,在相應階段尋找中文學習資料就ok了。


關注景略集智掘金主頁,精彩內容不再錯過!

相關文章