這兩年,人工智能已經火到了全民皆知的地步。隨着阿爾法狗聲名鵲起以後,無人駕駛、人臉識別、郵箱分類、圖片美化、聲紋識別等人工智能的產物都進入了你們的視線。你們都對人工智能的前景很看好。其中不乏一些想入門人工智能的學生和IT類職員。
html
本文並非給你們上人生課,用機器學習的語言來講,我這篇文章不是分類文,而是迴歸文。也就是說,具體要不要入門人工智能,你們要本身想好了,若是已經堅決了信念,從此要在人工智能的路上走下去的話,恭喜你,你至少已經成功了四分之一。我結合着本身在人工智能領域的經驗,給你們分享下該如何入門人工智能,但願可以幫助處於迷茫中的人羣。python
人工智能只是一個大領域,他擁有兩個小領域,一個是機器學習,另外一個是深度學習。那麼同窗們是否是一入門,就要抉擇是選擇深度學習仍是機器學習呢? 一入門就選的話,估計同窗們會很痛苦,還好,這個時候並不須要選擇,由於深度學習是機器學習的子類,換句話說就是,想要學習深度學習,機器學習的部分知識你也是要掌握的。那麼擺在你們面前的就只剩下一條路了,先學習機器學習!程序員
我不會像不少文章那樣列舉幾十個連接堆在那,毫無先後關係,內容多的讓人崩潰。我結合着本身學習的心路歷程,推薦幾個經典的東西,讓你們優雅的入門。面試
數學基礎部分算法
學習機器學習,要有一些數學基礎,好在要求的數學基礎都是高中及大學的層次,相信你們都學過。即便忘了,再去尋找之前的記憶也相對容易一些。我列舉下必備的知識。編程
1.線性代數(矩陣、特徵值、特徵向量、秩)app
2.微積分(極限、導數、拉格朗日中值、泰勒級數展開)框架
3.統計學 (相關性分析、指望、方差、分佈、指標)dom
注:不少文章都說凸優化的知識,其實凸優化多數都是用在研究領域,對於剛入門做用不大,暫時不建議你們看。機器學習
書籍方面:去翻下大學相關課程教材便可。不建議從頭開始學,很耗時,去翻翻上面說的幾部份內容就能夠。若是以爲不夠能夠再去看看吳軍的《數學之美》和李航的《統計學習方法》。這兩本書仍是比較經典的。
視頻方面:我錄製了一門數學基礎入門的課,感興趣的話,能夠看下。
Python語言基礎
如今機器學習中,Python語言用的居多。若是你是程序員出身,已經有過Python,C++,Java語言的話,這一步就很簡單了。若是你如今還不懂編程語言,也不要緊,Python是一門很簡單的語言。Python語言其實也有難點,但好在機器學習裏面用不上,是否是有難以掩飾的激動【劫後餘生臉】.相信你們通過1周時間基本就能夠應用了。我給同窗們列舉下該學習哪部分。
基礎部分:推薦給你們一個網上的教程,若是這個連接失效了,也能夠本身在搜索引擎上搜《Python3教程》關鍵字(這裏推薦你們學習Python3,若是已經有了Python2的基礎,也能夠忽略) https://m.runoob.com/python3/。
模塊部分:Numpy、Pandas、Matplotlib。這幾個是須要你們掌握的。你們本身在搜索引擎上搜。若是我之後發現好的這方面的文章,再推薦給你們。
視頻方面:我也錄製了一門Python基礎入門的課,就是針對這三個模塊進行的講解。感興趣的話,能夠看下。
其餘的呢,能夠看下scikit-learn這個模塊。他是機器學習的一個Python庫。有不少機器學習方面的模型,用scikit-learn能夠很快的實現。你們也能夠在瞭解機器學習以後,再學習也能夠。
機器學習基礎
這一部份內容仍是不少的,講的都是一些經典的入門算法,你們要好好的感覺下這些算法的精髓。
線性迴歸、梯度降低、邏輯迴歸
決策樹和隨機森林(ID三、C4.五、CART、GBDT、RandomForest)
SVM (軟間隔、損失函數、核函數、SMO算法、libSVM)
聚類(K-Means、聚譜類SC)
EM算法(最大似然估計、Jensen不等式、混合高斯分佈、主題模型pLSA)
主題模型LDA
隱馬爾可夫模型
書籍方面:Andrew Ng — Machine Learning Coursera from Stanford
視頻方面:我也錄製了一門機器學習基礎入門的課。
有了上面的基礎,選擇一門由淺入深的課程來學習。基礎打下後,對機器學習已經有了充足的瞭解,能夠用機器學習來解決一個實際的問題。解決實際問題的時候,可能涉及到上面基礎部分的延伸,相信有了上面的基礎部分,再繼續學習起來就容易不少。經過實戰經驗積累之後,能夠考慮繼續進行學習。這時候有兩個選擇,深度學習或者繼續機器學習。深度學習是目前最火熱的機器學習方向,這裏推薦你們選擇TensorFlow框架。它是谷歌公司的開源框架,雖說並非最先的,可是不管它背後的技術沉澱,仍是它的更新速度都是好的。也在開源的衆多深度學習的框架中遙遙領先。深度學習其中一些方法已經跟傳統的機器學習不太同樣,所以能夠單獨學習。除了深度學習之外,機器學習還包括統計學習,集成學習等實用方法。若是條件足夠,能夠同時學習二者,一些規律對二者是共通的。學習完後,你已經具有了較強的知識儲備,能夠進入較難的實戰。這時候有兩個選擇,工業界的能夠選擇看開源項目,以改代碼爲目的來讀代碼;學術界的能夠看特定領域的論文,爲解決問題而想發論文。不管哪者,都須要知識過硬,以及較強的編碼能力,所以很能考察和鍛鍊水平。通過這個階段之後,能夠說是踏入AI領域的門了。
入門以後也算是值得高興了,可是你離精通其實還有很遠的一段路要走,想要在這個行業長久地活下去,內功的修煉要比外功重要得多,否則會活得很累,也很難得到一個優秀的晉升空間。入門以後,趕快找一家公司去工做。在工做中會把你學習的知識融會貫通。並且剛步入公司,也會有一些大拿級別的人帶你。這樣的話,對你從此的發展都有很大的幫助。
另外列舉一些面試中常常考的知識點。
線性迴歸數學推導
可用性評估:獲取難度、覆蓋率、準確率
特徵清洗:清洗異常樣本
採樣:數據不均衡、樣本權重
單個特徵:無量綱化(標準化、歸一化)、二值化、離散化、缺失值(均值)、啞編碼(一個定性特徵擴展爲N個定量特徵)
數據變換:log、指數、Box-Cox 降維:主成分分析PCA、線性判別分析LDA、SVD分解
特徵選擇:Filter(相關係數、卡方檢驗)、Wrapper(AUC、設計評價函數A*、Embedded(L1-Lasso、L2-Ridge、決策樹、DL)
點擊博客裏個人主頁,有更多幫助你們入門的課程!