如何自學人工智能?

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


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

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

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

今天咱們在這篇文章裏就教你怎樣免費得到世界級的機器學習教育,你既不須要有博士學位,也沒必要是技術大牛。無論你是想成爲數據科學家仍是在開發中使用機器學習算法,其實你都能比想象中更快地學習和應用機器學習。程序員

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

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

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

簡單來講,機器學習就是教電腦怎樣從數據中學習,而後作出決策或預測。對於真正的機器學習來講,電腦必須在沒有明確編程的狀況下可以學習識別模型。算法

機器學習屬於計算機科學與統計學的交叉學科,在多個領域會以不一樣的面目出現,好比你應該聽過這些名詞:數據科學、大數據、人工智能、預測型分析、計算機統計、數據挖掘······編程

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

機器學習自身也分爲多個類型,好比監督式學習、非監督式學習、加強學習等等。例如:

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

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

以及「無人車之父」 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了。


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

相關文章
相關標籤/搜索