一文了解人工智慧該如何入門

隨著阿爾法狗人機大戰的勝利,人工智能已經成為最火的話題,人臉識別,內容推薦,無人駕駛等人工智能產物被大家熟知。大家都看好人工智能的前景。那麼,如果對人工智能感興趣,作為小白該如何入門呢?

關於人工智能、機器學習、深度學習的關係如下圖所示,在我看來其中並沒有明顯的區分。

一文了解人工智能該如何入門

入門人工智能我們到底該學些什麼呢。我結合著自己學習經歷和工作經歷,給大家說幾個部分。

一、數學基礎部分

學習人工智能,要有一些數學基礎,好在要求的數學基礎都是高中及大學的層次,相信大家都學過。即使忘了,再去尋找以前的記憶也相對容易一些。我列舉下必備的知識。

1.線性代數(矩陣、特徵值、特徵向量、秩)

2.微積分(極限、導數、拉格朗日中值、泰勒級數展開)

3.統計學 (相關性分析、期望、方差、分佈、指標)

注:很多文章都說凸優化的知識,其實凸優化多數都是用在研究領域,對於剛入門作用不大,暫時不建議大家看。

書籍方面:去翻下大學相關課程教材即可。不建議從頭開始學,很耗時,去翻翻上面說的幾部分內容就可以。如果覺得不夠可以再去看看吳軍的《數學之美》和李航的《統計學習方法》。這兩本書還是比較經典的。

二、Python語言基礎

現在機器學習中,Python語言用的居多。如果你是程序員出身,已經有過Python,C++,Java語言的話,這一步就很簡單了。如果你現在還不懂編程語言,也沒關係,Python是一門很簡單的語言。Python語言其實也有難點,但好在機器學習裡面用不上,是不是有難以掩飾的激動,相信大家經過1周時間基本就可以應用了。我給同學們列舉下該學習哪部分。

基礎部分:推薦給大家一個網上的教程,如果這個鏈接失效了,也可以自己在搜索引擎上搜《Python3教程》關鍵字(這裡推薦大家學習Python3,如果已經有了Python2的基礎,也可以忽略) https://m.runoob.com/python3/。

模塊部分:Numpy、Pandas、Matplotlib。這幾個是需要大家掌握的。大家自己在搜索引擎上搜。

其他的呢,可以看下scikit-learn這個模塊。他是機器學習的一個Python庫。有很多機器學習方面的模型,用scikit-learn可以很快的實現。大家也可以在瞭解機器學習之後,再學習也可以。

三、機器學習基礎

這一部分內容還是很多的,講的都是一些經典的入門算法,大家要好好的感受下這些算法的精髓。

  • 線性迴歸、梯度下降、邏輯迴歸
  • 決策樹和隨機森林(ID3、C4.5、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)

機器學習算法:LR,GBDT,XGBoost, lightGBM

深度學習基礎:BP算法,dropout, BN等

深度學習算法:CNN,RNN,LSTM,GRU,GAN等


分享到:


相關文章: