學習人工智慧的路線?

就是想問問大家學習AI一條從淺入深的路線,具體需要學習哪些課程,掌握哪些技能?

我是大一的在校學生,平時的課業負擔不是很大,我的專業是信息管理與信息系統。今年在自學C語言的時候,偶然間看到了AI,然後就產生了很大的興趣,想在課餘的時間裡學習一下。能達到對以後求職有幫助最好,沒有的話作為興趣也不錯。我的專業課程有沒有相關的?


1. 引言

也許你和這個叫『機器學習』的傢伙一點也不熟,但是你舉起iphone手機拍照的時候,早已習慣它幫你框出人臉;也自然而然點開今日頭條推給你的新聞;也習慣逛淘寶點了找相似之後貨比三家;亦或喜聞樂見微軟的年齡識別網站結果刷爆朋友圈。恩,這些功能的核心演算法就是機器學習領域的內容。
套用一下大神們對機器學習的定義,機器學習研究的是計算機怎樣模擬人類的學習行為,以獲取新的知識或技能,並重新組織已有的知識結構使之不斷改善自身。簡單一點說,就是計算機從數據中學習出規律和模式,以應用在新數據上做預測的任務。近年來互聯網數據大爆炸,數據的豐富度和覆蓋面遠遠超出人工可以觀察和總結的範疇,而機器學習的演算法能指引計算機在海量數據中,挖掘出有用的價值,也使得無數學習者為之著迷。
但是越說越覺得機器學習有距離感,雲里霧裡高深莫測,我們不是專家,但說起算有一些從業經驗,做過一些項目在實際數據上應用機器學習。這一篇就我們的經驗和各位同仁的分享,總結一些對於初學者入門有幫助的方法和對進階有用的資料。

2. 機器學習關注問題

並非所有的問題都適合用機器學習解決(很多邏輯清晰的問題用規則能很高效和準確地處理),也沒有一個機器學習演算法可以通用於所有問題。咱們先來了解了解,機器學習,到底關心和解決什麼樣的問題。

從功能的角度分類,機器學習在一定量級的數據上,可以解決下列問題:

1.分類問題

根據數據樣本上抽取出的特徵,判定其屬於有限個類別中的哪一個。比如:
垃圾郵件識別(結果類別:1、垃圾郵件 2、正常郵件)
文本情感褒貶分析(結果類別:1、褒 2、貶)
圖像內容識別識別(結果類別:1、喵星人 2、汪星人 3、人類 4、草泥馬 5、都不是)。

2.回歸問題

根據數據樣本上抽取出的特徵,預測一個連續值的結果。比如:
星爺《美人魚》票房
大帝都2個月後的房價
隔壁熊孩子一天來你家幾次,寵幸你多少玩具

3.聚類等問題

根據數據樣本上抽取出的特徵,讓樣本抱抱團(相近/相關的樣本在一團內)。比如:
google的新聞分類
用戶群體劃分
我們再把上述常見問題划到機器學習最典型的2個分類上。
分類與回歸問題需要用已知結果的數據做訓練,屬於「監督學習」
聚類的問題不需要已知標籤,屬於「非監督學習」。

如果在IT行業(尤其是互聯網)里溜達一圈,你會發現機器學習在以下熱點問題中有廣泛應用:

1.計算機視覺

典型的應用包括:人臉識別、車牌識別、掃描文字識別、圖片內容識別、圖片搜索等等。

2.自然語言處理

典型的應用包括:搜索引擎智能匹配、文本內容理解、文本情緒判斷,語音識別、輸入法、機器翻譯等等。

3.社會網路分析

典型的應用包括:用戶畫像、網路關聯分析、欺詐作弊發現、熱點發現等等。

4.推薦

典型的應用包括:蝦米音樂的「歌曲推薦」,某寶的「猜你喜歡」等等。

3. 入門方法與學習路徑

OK,不廢話,直接切重點丟乾貨了。看似學習難度大,曲線陡的機器學習,對大多數入門者也有一個比較通用的學習路徑,也有一些優秀的入門資料可以降低大家的學習門檻,同時激發我們的學習樂趣。

簡單說來,大概的一個學習路徑如下

簡單說一點,之所以最左邊寫了『數學基礎』『典型機器學習演算法』『編程基礎』三個並行的部分,是因為機器學習是一個將數學/演算法理論和工程實踐緊密結合的領域,需要紮實的理論基礎幫助引導數據分析與模型調優,同時也需要精湛的工程開發能力去高效化地訓練和部署模型和服務。
需要多說一句的是,在互聯網領域從事機器學習的人,有2類背景的人比較多,其中一部分(很大一部分)是程序員出身,這類同學工程經驗相對會多一些,另一部分是學數學統計領域的同學,這部分同學理論基礎相對紮實一些。因此對比上圖,2類同學入門機器學習,所欠缺和需要加強的部分是不一樣的。

下面就上述圖中的部分,展開來分別扯幾句:

3.1數學基礎

有無數激情滿滿大步向前,誓要在機器學習領域有一番作為的同學,在看到公式的一刻突然就覺得自己狗帶了。是啊,機器學習之所以相對於其他開發工作,更有門檻的根本原因就是數學。每一個演算法,要在訓練集上最大程度擬合同時又保證泛化能力,需要不斷分析結果和數據,調優參數,這需要我們對數據分布和模型底層的數學原理有一定的理解。所幸的是如果只是想合理應用機器學習,而不是做相關方向高精尖的research,需要的數學知識啃一啃還是基本能理解下來的。至於更高深的部分,恩,博主非常願意承認自己是『數學渣』。
基本所有常見機器學習演算法需要的數學基礎,都集中在微積分、線性代數和概率與統計當中。下面我們先過一過知識重點,文章的後部分會介紹一些幫助學習和鞏固這些知識的資料。

3.1.1微積分

微分的計算及其幾何、物理含義,是機器學習中大多數演算法的求解過程的核心。比如演算法中運用到梯度下降法、牛頓法等。如果對其幾何意義有充分的理解,就能理解「梯度下降是用平面來逼近局部,牛頓法是用曲面逼近局部」,能夠更好地理解運用這樣的方法。
凸優化和條件最優化 的相關知識在演算法中的應用隨處可見,如果能有系統的學習將使得你對演算法的認識達到一個新高度。

3.1.2 線性代數

大多數機器學習的演算法要應用起來,依賴於高效的計算,這種場景下,程序員GG們習慣的多層for循環通常就行不通了,而大多數的循環操作可轉化成矩陣之間的乘法運算,這就和線性代數有莫大的關係了
向量的內積運算更是隨處可見。
矩陣乘法與分解在機器學習的主成分分析(PCA)和奇異值分解(SVD) 等部分呈現刷屏狀地出現。

3.1.3 概率與統計

從廣義來說,機器學習在做的很多事情,和統計層面數據分析和發掘隱藏的模式,是非常類似的。
極大似然思想、貝葉斯模型 是理論基礎,樸素貝葉斯(Na?ve Bayes )、語言模型(N-gram)、隱馬爾科夫(HMM)、隱變數混合概率模型是他們的高級形態。
常見分布如高斯分布是混合高斯模型(GMM)等的基礎。

3.2 典型演算法

絕大多數問題用典型機器學習的演算法都能解決,粗略地列舉一下這些方法如下:
處理分類問題的常用演算法包括:邏輯回歸(工業界最常用),支持向量機,隨機森林,樸素貝葉斯(NLP中常用),深度神經網路(視頻、圖片、語音等多媒體數據中使用)。
處理回歸問題的常用演算法包括:線性回歸,普通最小二乘回歸(Ordinary Least Squares Regression),逐步回歸(Stepwise Regression),多元自適應回歸樣條(Multivariate Adaptive Regression Splines)
處理聚類問題的常用演算法包括:K均值(K-means),基於密度聚類,LDA等等。
降維的常用演算法包括:主成分分析(PCA),奇異值分解(SVD) 等。
推薦系統的常用演算法:協同過濾演算法
模型融合(model ensemble)和提升(boosting)的演算法包括:bagging,adaboost,GBDT,GBRT
其他很重要的演算法包括:EM演算法等等。
我們多插一句,機器學習里所說的「演算法」與程序員所說的「數據結構與演算法分析」里的「演算法」略有區別。前者更關注結果數據的召回率、精確度、準確性等方面,後者更關注執行過程的時間複雜度、空間複雜度等方面。 。當然,實際機器學習問題中,對效率和資源佔用的考量是不可或缺的。

3.3 編程語言、工具和環境

看了無數的理論與知識,總歸要落到實際動手實現和解決問題上。而沒有工具所有的材料和框架、邏輯、思路都給你,也寸步難行。因此我們還是得需要合適的編程語言、工具和環境幫助自己在數據集上應用機器學習演算法,或者實現自己的想法。對初學者而言,Python和R語言是很好的入門語言,很容易上手,同時又活躍的社區支持,豐富的工具包幫助我們完成想法。相對而言,似乎計算機相關的同學用Python多一些,而數學統計出身的同學更喜歡R一些。我們對編程語言、工具和環境稍加介紹:

3.3.1 python

python有著全品類的數據科學工具,從數據獲取、數據清洗到整合各種演算法都做得非常全面。
網頁爬蟲: scrapy
數據挖掘:
pandas:模擬R,進行數據瀏覽與預處理。
numpy:數組運算。
scipy:高效的科學計算。
matplotlib:非常方便的數據可視化工具。
機器學習:
scikit-learn:遠近聞名的機器學習package。未必是最高效的,但是介面真心封裝得好,幾乎所有的機器學習演算法輸入輸出部分格式都一致。而它的支持文檔甚至可以直接當做教程來學習,非常用心。對於不是非常高緯度、高量級的數據,scikit-learn勝任得非常好(有興趣可以看看sklearn的源碼,也很有意思)。
libsvm:高效率的svm模型實現(了解一下很有好處,libsvm的係數數據輸入格式,在各處都非常常見)
keras/TensorFlow:對深度學習感興趣的同學,也能很方便地搭建自己的神經網路了。
自然語言處理:
nltk:自然語言處理的相關功能做得非常全面,有典型語料庫,而且上手也非常容易。
互動式環境:
ipython notebook:能直接打通數據到結果的通道,方便至極。強力推薦。

3.3.2 R

R最大的優勢是開源社區,聚集了非常多功能強大可直接使用的包,絕大多數的機器學習演算法在R中都有完善的包可直接使用,同時文檔也非常齊全。常見的package包括:RGtk2, pmml, colorspace, ada, amap, arules, biclust, cba, descr, doBy, e1071, ellipse等等。另外,值得一提的是R的可視化效果做得非常不錯,而這對於機器學習是非常有幫助的。

3.3.3 其他語言

相應資深程序員GG的要求,再補充一下Java和C++相關機器學習package。

Java系列

WEKA Machine Learning Workbench 相當於java中的scikit-learn
其他的工具如Massive Online Analysis(MOA)、MEKA 、 Mallet 等也非常有名。
更多詳細的應用請參考這篇文章《25個Java機器學習工具庫》

C++系列

mlpack,高效同時可擴充性非常好的機器學習庫。
Shark:文檔齊全的老牌C++機器學習庫。

3.3.4 大數據相關

Hadoop:基本上是工業界的標配了。一般用來做特徵清洗、特徵處理的相關工作。
Spark:提供了MLlib這樣的大數據機器學習平台,實現了很多常用演算法。但可靠性、穩定性上有待提高。

3.3.5 操作系統

mac和Linux會方便一些,而windows在開發中略顯力不從心。所謂方便,主要是指的mac和linux在下載安裝軟體、配置環境更快捷。
對於只習慣windows的同學,推薦anaconda,一步到位安裝完python的全品類數據科學工具包。

3.4 基本工作流程

以上我們基本具備了機器學習的必要條件,剩下的就是怎麼運用它們去做一個完整的機器學習項目。其工作流程如下:

3.4.1 抽象成數學問題

明確問題是進行機器學習的第一步。機器學習的訓練過程通常都是一件非常耗時的事情,胡亂嘗試時間成本是非常高的。
這裡的抽象成數學問題,指的我們明確我們可以獲得什麼樣的數據,目標是一個分類還是回歸或者是聚類的問題,如果都不是的話,如果劃歸為其中的某類問題。

3.4.2 獲取數據

數據決定了機器學習結果的上限,而演算法只是儘可能逼近這個上限。
數據要有代表性,否則必然會過擬合。
而且對於分類問題,數據偏斜不能過於嚴重,不同類別的數據數量不要有數個數量級的差距。
而且還要對數據的量級有一個評估,多少個樣本,多少個特徵,可以估算出其對內存的消耗程度,判斷訓練過程中內存是否能夠放得下。如果放不下就得考慮改進演算法或者使用一些降維的技巧了。如果數據量實在太大,那就要考慮分散式了。

3.4.3 特徵預處理與特徵選擇

良好的數據要能夠提取出良好的特徵才能真正發揮效力。
特徵預處理、數據清洗是很關鍵的步驟,往往能夠使得演算法的效果和性能得到顯著提高。歸一化、離散化、因子化、缺失值處理、去除共線性等,數據挖掘過程中很多時間就花在它們上面。這些工作簡單可複製,收益穩定可預期,是機器學習的基礎必備步驟。
篩選出顯著特徵、摒棄非顯著特徵,需要機器學習工程師反覆理解業務。這對很多結果有決定性的影響。特徵選擇好了,非常簡單的演算法也能得出良好、穩定的結果。這需要運用特徵有效性分析的相關技術,如相關係數、卡方檢驗、平均互信息、條件熵、後驗概率、邏輯回歸權重等方法。

3.4.4 訓練模型與調優

直到這一步才用到我們上面說的演算法進行訓練。現在很多演算法都能夠封裝成黑盒供人使用。但是真正考驗水平的是調整這些演算法的(超)參數,使得結果變得更加優良。這需要我們對演算法的原理有深入的理解。理解越深入,就越能發現問題的癥結,提出良好的調優方案。

3.4.5 模型診斷

如何確定模型調優的方向與思路呢?這就需要對模型進行診斷的技術。
過擬合、欠擬合 判斷是模型診斷中至關重要的一步。常見的方法如交叉驗證,繪製學習曲線等。過擬合的基本調優思路是增加數據量,降低模型複雜度。欠擬合的基本調優思路是提高特徵數量和質量,增加模型複雜度。
誤差分析 也是機器學習至關重要的步驟。通過觀察誤差樣本,全面分析誤差產生誤差的原因:是參數的問題還是演算法選擇的問題,是特徵的問題還是數據本身的問題……
診斷後的模型需要進行調優,調優後的新模型需要重新進行診斷,這是一個反覆迭代不斷逼近的過程,需要不斷地嘗試, 進而達到最優狀態。

3.4.6 模型融合

一般來說,模型融合後都能使得效果有一定提升。而且效果很好。
工程上,主要提升演算法準確度的方法是分別在模型的前端(特徵清洗和預處理,不同的採樣模式)與後端(模型融合)上下功夫。因為他們比較標準可複製,效果比較穩定。而直接調參的工作不會很多,畢竟大量數據訓練起來太慢了,而且效果難以保證。

3.4.7 上線運行

這一部分內容主要跟工程實現的相關性比較大。工程上是結果導向,模型在線上運行的效果直接決定模型的成敗。 不單純包括其準確程度、誤差等情況,還包括其運行的速度(時間複雜度)、資源消耗程度(空間複雜度)、穩定性是否可接受。
這些工作流程主要是工程實踐上總結出的一些經驗。並不是每個項目都包含完整的一個流程。這裡的部分只是一個指導性的說明,只有大家自己多實踐,多積累項目經驗,才會有自己更深刻的認識。

3.5 關於積累項目經驗

初學機器學習可能有一個誤區,就是一上來就陷入到對各種高大上演算法的追逐當中。動不動就我能不能用深度學習去解決這個問題啊?我是不是要用boosting演算法做一些模型融合啊?我一直持有一個觀點,『脫離業務和數據的演算法討論是毫無意義的』。
實際上按我們的學習經驗,從一個數據源開始,即使是用最傳統,已經應用多年的機器學習演算法,先完整地走完機器學習的整個工作流程,不斷嘗試各種演算法深挖這些數據的價值,在運用過程中把數據、特徵和演算法搞透,真正積累出項目經驗 才是最快、最靠譜的學習路徑。
那如何獲取數據和項目呢?一個捷徑就是積极參加國內外各種數據挖掘競賽,數據直接下載下來,按照競賽的要求去不斷優化,積累經驗。國外的Kaggle和國內的DataCastle 以及阿里天池比賽都是很好的平台,你可以在上面獲取真實的數據和數據科學家們一起學習和進行競賽,嘗試使用已經學過的所有知識來完成這個比賽本身也是一件很有樂趣的事情。和其他數據科學家的討論能開闊視野,對機器學習演算法有更深層次的認識。
有意思的是,有些平台,比如阿里天池比賽,甚至給出了從數據處理到模型訓練到模型評估、可視化到模型融合增強的全部組件,你要做的事情只是參與比賽,獲取數據,然後使用這些組件去實現自己的idea即可。具體內容可以參見阿里雲機器學習文檔。

3.6 自主學習能力

多幾句嘴,這部分內容和機器學習本身沒有關係,但是我們覺得這方面的能力對於任何一種新知識和技能的學習來說都是至關重要的。 自主學習能力提升後,意味著你能夠跟據自己的情況,找到最合適的學習資料和最快學習成長路徑。

3.6.1 信息檢索過濾與整合能力

對於初學者,絕大部分需要的知識通過網路就可以找到了。
google搜索引擎技巧——組合替換搜索關鍵詞、站內搜索、學術文獻搜索、PDF搜索等——都是必備的。
一個比較好的習慣是找到信息的原始出處,如個人站、公眾號、博客、專業網站、書籍等等。這樣就能夠找到系統化、不失真的高質量信息。
百度搜到的技術類信息不夠好,建議只作為補充搜索來用。各種搜索引擎都可以交叉著使用效果更好。
學會去常見的高質量信息源中搜索東西:stackoverflow(程序相關)、quora(高質量回答)、wikipedia(系統化知識,比某某百科不知道好太多)、知乎(中文、有料)、網盤搜索(免費資源一大把)等。
將搜集到的網頁放到分類齊全的雲端收藏夾里,並經常整理。這樣無論在公司還是在家裡,在電腦前還是在手機上,都能夠找到自己喜歡的東西。
搜集到的文件、代碼、電子書等等也放到雲端網盤裡,並經常整理。

3.6.2 提煉與總結能力

經常作筆記,並總結自己學到的知識是成長的不二法門。其實主要的困難是懶,但是堅持之後總能發現知識的共性,就能少記一些東西,掌握得更多。
筆記建議放到雲端筆記里,印象筆記、為知筆記都還不錯。這樣在坐地鐵、排隊等零碎的時間都能看到筆記並繼續思考。

3.6.3 提問與求助能力

機器學習的相關QQ群、論壇、社區一大堆。總有人知道你問題的答案。
但是大多數同學都很忙,沒法像家庭教師那樣手把手告訴你怎麼做。
為了讓回答者最快明白你的問題,最好該學會正確的問問題的方式:陳述清楚你的業務場景和業務需求是什麼,有什麼已知條件,在哪個具體的節點上遇到困難了,並做過哪些努力。
有一篇經典的文章告訴你怎樣通過提問獲得幫助:《提問的智慧》,強力推薦。 話鋒犀利了些,但裡面的乾貨還是很好的。
別人幫助你的可能性與你提問題的具體程度和重要性呈指數相關。

3.6.4 分享的習慣

我們深信:「證明自己真的透徹理解一個知識,最好的方法,是給一個想了解這個內容的人,講清楚這個內容。」 分享能夠最充分地提升自己的學習水平。這也是我們堅持長期分享最重要的原因。
分享還有一個副產品,就是自己在求助的時候能夠獲得更多的幫助機會,這也非常重要。

4. 相關資源推薦

文章的最後部分,我們繼續放送乾貨。其實機器學習的優質資源非常多。博主也是翻遍瀏覽器收藏夾,也問同事取了取經,整合了一部分資源羅列如下:

4.1 入門資源

首先coursera 是一個非常好的學習網站,集中了全球的精品課程。上述知識學習的過程都可以在上面找到合適的課程。也有很多其他的課程網站,這裡我們就需要學習的數學和機器學習演算法推薦一些課程(有一些課程有中文字幕,有一些只有英文字幕,有一些甚至沒有字幕,大家根據自己的情況調整,如果不習慣英文,基礎部分有很多國內的課程也非常優質):

微積分相關

Calculus: Single Variable
Multivariable Calculus

線性代數

Linear Algebra
概率統計
Introduction to Statistics: Descriptive Statistics
Probabilistic Systems Analysis and Applied Probability

編程語言

Programming for Everybody:Python
DataCamp: Learn R with R tutorials and coding challenges:R

機器學習方法

Statistical Learning(R)
machine learning:強烈推薦,Andrew Ng老師的課程

機器學習基石

機器學習技術:林軒田老師的課相對更有深度一些,把作業做完會對提升對機器學習的認識。
自然語言處理:斯坦福大學課程
日常閱讀的資源
@愛可可-愛生活的微博
機器學習日報的郵件訂閱 等。

轉自 人工智慧之機器學習路線圖 - 劉玉剛--AI-技術研究院 - 博客頻道 - CSDN.NET


給大家整兩張圖,希望對大家有幫助!


首先表揚一下,大一就開始關注AI了,雖然平時新聞到處都有,但可見小學弟還是挺有遠見的,且讓我來裝一波,大家系好安全帶,我要開車了哈哈哈!

一.首先要在思想上認識到AI的重要性,當然你已經認識到了,不然不會問了,但是還不夠。

這裡我推薦一些入門的書籍

a) 《奇點臨近》

b) 《未來簡史》

c) 《智能時代》

d) 《 人工智慧時代》

e) 《智能主義》

f) 《 科學的極致——漫談人工智慧》

先隨便挑幾本看完再說,大致了解一下大佬們對於未來的一些技術預測,和未來可能的社會場景及商業模型,這一步是讓你心裡有譜,人工智慧到底十個什麼東西,他能幹什麼,為什麼可以干,以及目前的一些主流思想等等。

光看書肯定也還不夠你想像未來的場面,這裡再推薦一下視頻(電影、電視、廣告)

a) 人工智慧

b) I robot

c) 西部世界

d) 終結者

e) 黑客帝國

上面是影視,下面推薦幾個有意思的廣告和宣傳片

1.奧迪無人駕駛汽車廣告 這個是最近刷屏的廣告

2.微軟未來科技宣傳片 這個年代有點遠了,15年的

3.哈弗汽車未來暢想圖 這個逼格很高,看著很過癮,按照目前的自動駕駛來看有生之年有希望

4.韓國智能家居宣傳片

5.康寧未來科技生活宣傳片

6.智能家居終極理想廣告片

7.未來科技生活一

8.未來科技生活二

9.未來科技生活三

二.思想境界到了,是不是感覺科技感爆棚,恨不得立刻創業,奈何專業知識不強,客官稍等一大波知識即將襲來

1.老樣子還是先上書籍清單

數學類:

數學知識是為了以後學機器學習的相關演算法你可能用得著,但是如果你不想鑽研技術的話呢,建議題主只需要一目十行的瀏覽一遍即可,涉及到應用層面的可以細看;鑽研技術的也用不著細看,只需要書中的東西你能看懂一半就OK了,當然你說你非要看完看透的話,那我也只能說一句「哥,你咋這麼溜呢,帶我飛吧!」,建議對著目錄看一遍,然後看一些公式的運用就可以了,推導過程千萬別深究。

《數學之美》

《微積分基礎》

《線性代數應該這樣學》

《線性代數及其應用》

《概率論與數理統計》

《 統計學習方法》

編程類:

編程類的知識,我相信大家應該多少都有一些基礎,目前我也只推薦大家學習一到兩門語言就行了,我學的是Python和C語言,當然學會Python就已經可以走遍部分世界了(哈哈低調一點,畢竟Python還是有不少缺點和不足的);處理數據的語言類,只需會用就行了,我也就是剛剛入門一些R、MATLAB(這個一定要會,功能很強大,特別是做一些數學類的矩陣運算簡直是利器),其他的數據分析類spark、spring等懂一些就可以了,畢竟我們主體還是為了AI服務的。

Python編程:從入門到實踐

利用Python進行數據分析

機器學習類:

還是老樣子,技術路線的找准方向深究,畢竟一個人的能力有限,我建議是先通讀一篇,主要是了解目前的主流演算法、框架,還有目前的一些技術瓶頸等。非技術路線的還是老樣子這次是一目三行,主要關注一些演算法的應用,這時候也可以嘗試思考一些別人沒有想到的可能應用場景以及商業場景,結合一些目前現有的演算法能夠為人們帶來哪些改變,以及還有哪些是現在技術達不到、未來可能達到的,最好總結出自己的思考成果。

《機器學習(周志華)》

《機器學習實戰》

《神經網路與機器學習》

《Python中的機器學習》

框架類:

主流框架就那幾個,會用就行,其實不需要書也可以的,TensorFlow、Caffe、Theano、Torch、DMTK、DTPAR、ROS,只要懂前面兩個就行了,主要是第一個,其他的技術宅們自己倒騰去吧!這裡只推薦一本書。

Tensorflow:實戰Google深度學習框架

題主可能抓狂了,這麼多書得看到什麼時候呢?這裡大概說一下閱讀時間。思想和視野開闊類的那六本書,前面的兩本書屬於科普類的,挑個沒事的周末看快點 2本/天,這種速度就可以了,看完之後記得畫個思維導圖(Xmind/mindmanager)總結梳理一下,中間的三本書平均 1.5本/天,至於後面的那本可能需要3-4天。

數學知識類:非技術路線的 1本/2天,技術路線的 1本/4天,

編程類:非技術路線的 1本/5天,技術路線的 1本/2周,

機器學習類:非技術類的 1本/1周,技術路線的1本/2周,

框架類:非技術路線的再懂了一些編程的基礎上會一些演算法的模型框架就可,能看懂就行

技術路線的對自己要求高點,把一些主流開源的演算法模型框架看一遍,看不懂的就算了,然後對照著網上別人的模型自己用數據輸入倒騰一下,看看能不能輸出一些有價值的東西。這個就不好估算時間了,但是平均來算的話大概2周左右的樣子。

自己算一下,所有的通讀看完其實要不了多少時間的,大概技術類的需要128天,非技術類的70天,當然啦以上都是基於你在真正想在這方面投入的的時間,平時沒有這麼多時間的大概也就往後拖3個月左右,也就是大概6-9個月的時間你就差不多可以算是入門了,入門以後你就有自己的規划了,相信也有自己的看法和學習方法了,要是中途走走停停的,可能就不止這點時間了中間如果有自己懂的可以自己估算著省點時間,哥們重在堅持,很多人就是半路放棄了,別看這些時間不長,但是看書比較枯燥的,很多人都堅持不來。

看書不過癮?視頻即將來襲。視頻類的只需看機器學習類的就可以了,有時間的可以去Ng的創業公司網站上逛逛deeplearning.ai,裡面有很多視頻教程,當然啦有些是要錢的,看你投資了;數學類的我個人建議把書掃一遍就夠了,遇到不懂的百度/知乎就ok了,其他的沒必要了。

1.Ng的《機器學習》課程和《深度學習工程師》,網易雲課堂上都有免費的系列視頻

2.台灣林軒老師的《機器學習基石》

3.楊瀾的AI訪談節目

4.北大的人工智慧公開課(網易雲課堂

5.斯坦福李飛飛-深度學習計算機視覺

三.平時多留意AI方面的最新資訊,養成好的習慣

1.這裡推薦一些知識社區網站:

a) 知乎(所有AI的問答和知乎Live)

b) 簡書(所有AI文章)

c) 人人都是產品經理(產品經理學習的最佳社區)

d) 36氪(AI行業研究報告和AI新聞)

e) CSDN(可以跟隨AI方面的博主學習系統的AI知識)

知識社區類網站

中文視頻學習類網站

2. AI論文下載網(有些是要花錢的,但對未來的投資來說都是些小錢)

這個主要是看一些權威專家關於目前的技術現狀、研究方向、商業探討等,聽著就高大上對吧,多看幾篇就可以在人群中探討一番未來的趨勢發展

i. 維普

ii. 萬方

iii. 中國知網

iv. 谷歌學術

部分論文網站

3.這裡是資訊類的網站

a) 36氪

b) 虎嗅

c) 極客公園

d) 商業周刊

e) 中關村在線

資訊類網站

4.微信公眾號

a) 飯糰AI產品經理大本營(這個是業內最早成立的AI PM社區,有很多AI PM的開拓者在這裡分享乾貨,不過要花點錢)

b) 集智俱樂部(科學的極致——漫談人工智慧,這本書是這個俱樂部出的)

c) 量子位

d) 專知(有很多AI的專業知識和大佬見解)

e) AI科技大本營

AI論壇

AI公司

AIDB

5.整理輸出:看完書或者視頻之後一定要輸出自己的內容,這點是重中之重,沒有輸出總結,那我寫這麼多的字相當於白寫了。

1) 簡書(輸出自己所得所想)

2) 知乎(輸出自己所得所想)

3) CSDN(輸出自己所得所想)

以上的這些資訊類網站,每天堅持看。早上可以看 3.資訊類的網站裡面的一些新聞類文章,可以了解最新的一些AI科技進展和思考;下午或晚上可以看 4.微信公眾號 裡面的公眾號文章或者看看最近那些關於AI的文章又刷屏了;平常沒事時就看看 1.知識社區網站 里學習系統的知識和解決疑難雜症問題等。

四.行業知識

上面的專業知識了解的差不多了,習慣也養成了,是時候該為自己的未來規劃一波了,這時候需要了解一些行業、商業市場類的知識

1) 政策

a) 國家AI規劃

b) 人才扶持政策

c) 創業資金扶持政策

首先來看一下國家層面的政策,最近兩年國內外出台了不少政策,然而那些跟我們AI有關呢?最近的有

國內:

1.工業和信息化部印發了《促進新一代人工智慧產業發展三年行動計劃(2018-2020年)》

2.國務院印發《新一代人工智慧發展規劃》

3.《「互聯網+」人工智慧三年行動實施方案》

國外:

1.美國發布了《為人工智慧的未來做好準備》、《國家人工智慧研究和發展戰略計劃》、《人工智慧、自動化與經濟報告》

2.英國發布《人工智慧對未來決策的機會和影響》和《機器人技術和人工智慧》

3.德國發布《德國2020高技術戰略》中的工業4.0

4.日本的機器人發展報告

2) 城市對比(北上廣深杭成武+雄安新區)

a) 人才對比

b) 行業完整對比(產業鏈雛形)

c) 行業集中度及公司分布

d) AI氛圍對比

這裡主要看一下未來哪些城市的發展潛力比較好,能給未來的我們帶來機會,上面提到的六個城市加一個新區,論綜合發展來看北京最佳,全國一半左右的AI創業公司集中在北京,更何況有百度一天天的宣傳AI,最近谷歌又在北京建立研發中心,京東最近也在用AI布局智慧物流和家居,小米也是智能家居硬體市場的老大哥,所以說未來北京機會肯定是大大的有;

論發展潛力來看深圳也是有不少機會的,深圳對普通大學畢業的要友好很多,有鵝場在AI上的布局,想來深圳也不會落後北京太多;

論商業爆發場景來看,杭州也是個不能忽視的城市,阿里巴巴在移動互聯時代給杭州帶來了無可匹敵的影響力,以阿里的戰略布局來看,未來杭州也是適合年輕人去闖闖的;

未來最有想像空間的城市肯定是最近成立的雄安新區了,這個傳說中涉及千年大計的新區,現在BATJ都在雄安搞事情,號稱要建立把雄安建成智慧城市的模範;

至於成都和武漢這兩個城市,前一個是去年剛升為國家第六個中心城市(北京、上海、廣州、重慶、天津),最近成都發展勢頭很猛,未來AI城市的布局,成都有一席之地,至於武漢中部唯一的副省級城市(全國共有15個)肩負著中部崛起的重擔,且是全國大學生最多的一個城市,如果未來有針對AI和大學生的優惠地方政策出台,武漢也是大有可為,且成都和武漢是兩個大學生未來落戶成本較低的兩個城市,雄安新區運氣好+眼光長遠的話也算一個。

3)細分行業

a) 醫療

b) 無人車

c) 安防

d) VR/AR

e) 機器人

f) 金融

以上這些細分行業說起來就的另開一個回答了,這裡不再細說,靠自己了,對哪個感興趣就往哪個方向上鑽,切記貪多嚼不爛,比如看重VR/AR的話平時就多花功夫學習計算機視覺、機器視覺、圖像處理、虛擬技術、3D重建等相關知識,至於其他的細分行業就無需深入了,只需看看新聞稍微了解一下常識不至於成為行業白痴即可。

4)軟實力提升

1.心理類:平時可以多看看心理類的書籍,可能你會問了,這跟AI有啥子關係。關係還真大了,未來AI的發展涉及到的關於倫理、法律、人文等問題時,心理知識很重要,能在一些心理判斷上給予你自己的看法以面對未來的種種不可定因素的影響。

2.價值觀類:可以看看佛學、哲學等相關書籍和視頻,這個也是非常重要的,可以再精神層面讓你受益,目前AI發展的階段還在感知層面,未來還有認知層面,而這個時候就需要人們去思考AI本質是什麼,要學會問為什麼,而這就需要一些虛的東西(三觀、心理、哲學等)來提供基礎了,其實有時候技術帶來的發展,每次只有20%的人受益,主要原因是精神層面的境界80%的人都沒有達到足以抓住技術的變革所帶來的機遇,這便是大家熟知的二八法則的一個小方面。

3.商業視角:平時在生活中可以多關注人們的需求本質,鍛煉自己的商業敏銳力

下面貼幾張思維導圖,不喜輕噴啊!

綜上是我自己最近學習AI的一些建議和觀點看法,如果你已經堅持著做完了,那麼恭喜你已經可以自己開車了,至於穩不穩就看你自己平時的功力深不深了。

同志們有用的話,文章左下角是不是有個「點贊」按鈕很可愛啊,可愛的話點一個唄!畢竟開車也累啊,雖然剛拿到駕照哈哈 。

「滴,學生卡」,又要上車了。


需要先循序漸進地學習幾門基礎知識:1、高等數學2、線性代數3、概率和數理統計4、一門計算機語言(Java/C++/Python and the like)5、演算法一定要自學的話,除了看書,建議看人工智慧視頻課程,否則不太容易好學。判斷這些基礎知識是否學好的標準,不是去做幾套考題。最有效的辦法是應聘計算機公司的初級程序員。入職後可以繼續往下看

&>&>&>&>&>恭喜你已經入門一隻腳!不過要坐到AI演算法工程師的位置,還要啃這幾門知識:1、計算原理2、模式識別3、人工智慧導論,個人推薦:Artificial Intelligence: A Modern Approach,雖然有些年頭了,但很經典!接下來要看你喜歡哪個具體方向了,NLP、圖像還是語音,相關書籍就不推薦了。這時需要:1)找個開源框架多練練手了,2)多看國際會議經典論文。記住:演算法不是萬能的,多讀數據,會有靈感。

建議這樣走:首先先弄清楚人工智慧的分類,從接觸一名新學科來說,先搞清楚其家譜體系,這樣子按照各個線條來深入了解就好,所以在了解人工智慧之前,我建議先看看有哪些分類:機器人,各種各樣的機器人智能家電;跟家電有關的智能軟硬體智能出行;跟出行有關的智能硬體,比如智能汽車和自行車等等;智能設備,比如大型工程使用的操控性智能設備;智能用品:剃鬚刀、牙刷也有可能是智能的.......先把分類弄清楚,然後搞一個行業圖譜,並且能夠弄清楚它的上下游,這樣有助於你對行業的了解,也有助你進入行業交流也非常迅速並且暢通無阻。然後開始看各種各樣的人工智慧報告,這種報告其實還蠻多的,也會有不少公眾號會放出類似的報告,閱讀報告是最快了解行業的方式。當然,報告不是萬能的,智能作為輔助工具來了解,除了報告之外,就是多看點類似的書,通常最好的方法,就是上網上書店把所有關於人工智慧的書都搜索出來,然後在根據裡面的題目挑選一些比較好的書,這樣有助於快速兩家技術和行業狀況,而且比較系統。當然,報告不是萬能的,智能作為輔助工具來了解,除了報告之外,就是多看點類似的書,通常最好的方法,就是上網上書店把所有關於人工智慧的書都搜索出來,然後在根據裡面的題目挑選一些比較好的書,這樣有助於快速兩家技術和行業狀況,而且比較系統。當然,上面說的這些都是基於自學,只能說是理論水平和視野,真正的操作,還是建議你自己去實操,或者找一家公司學習。如果你還是學生,你可以利用假期去實習,如果你已經出來了,然後又特別喜歡,可以業餘玩玩,或者乾脆跳槽到相關的公司,哪怕你不是在該部門,但已經離真正的人工智慧團隊非常近了。因為最好的學習方式是去實踐。


我開始也是搜了很久沒有搜到一個系統學習人工智慧的地方

後來索性也不找了 還不如自己建一個

也想做人工智慧這個行業 所以自己也在學習

後來發現網上的人工智慧要麼是付費的 要麼就是邏輯混亂不知道從何下手

於是決定自己開發一個網站 專門做人工智慧教育 建立一個社群大家一起學習交流

把該學的內容全部做了一個梳理

優覓AI-人工智慧在線學習社群

有興趣的朋友可以一起合夥做 目前就我一個人 精力有限 技術不到位 請多指教


知乎應該把重複的問題合併一下或者刪除掉。


推薦閱讀:

如何評價疑犯追蹤(Person of Interest)第四季最後一集S4E22(Finale)?
藝術是服務於人的什麼?
機器人、自動控制等領域有哪些不拘一格的論文或書?
求reinforcement learning and Q-learning 歷史?
為什麼阿西莫夫的機器人三大定律未被寫入現存的智能機器人的程序中?

TAG:學習 | 人工智慧 | 編程 | 學習規劃 |