所謂萬丈高樓平地起,搞數據科學、機器學習或深度學習,一開始至少得學會跟計算機打交道吧,怎麼跟計算機打交道呢?編程。
第一步:學習編程
實話說,計算機體系很龐大,除了語言、數據機構、算法之外,計算機體系結構、操作系統、網絡、數據庫等等領域龐大。但不管怎樣,學習如何編寫代碼、如何編程是必需的。學完語言、數據結構、算法等基礎知識後,如何更進一步提高編程能力呢?上LeetCode刷題成爲很多人的不二之選。
第二步:紮實數學
數學是搞數據科學的必備基礎,數學不紮實,機器學習裏很多原理、推導、公式便無法理解透徹,比如單單一個SVM就涉及到求導、凸優化等數學知識。所以如果數學忘了,很有必要複習並重新紮實數學基礎。
涵蓋內容:微積分、數理統計與概率論、矩陣、凸優化
推薦書籍:數理統計學簡史、矩陣分析與應用by張賢達、凸優化(Convex Optimization)
第三步:掌握適合數據科學的Python
python在當今的數據分析很熱,廣泛應用於金融、電商等領域的大數據分析,也非常適合數據工作者利用它處理數據,所以Python在數據領域應用的越來越廣泛。
第四步:開始學習機器學習
機器學習技術在很多領域應用廣泛,包括在數據挖掘、搜索、推薦、廣告、自然語言處理等等中。所以學好機器學習,是搞更多應用領域的前提條件。此外,學習機器學習,不單單只是學習一個個模型、算法就足夠,因爲實際的機器學習工作中,分析問題、處理數據、處理特徵佔絕大部分工作。所以不要以爲看到一個課程涵蓋許許多多的模型/算法就以爲撿到了寶,看一個ML課程有沒有工業實戰,最快速的判斷標準之一就是看它講不講以及是否能講好特徵工程、模型調優等工程點。
推薦書籍:PRML
第五步:再進一步之學習DL
得益於計算機越發強大的計算能力,神經網絡的加強版深度學習(權且容許我這麼不專業的叫法)越發火熱,從AlphaGo、無人駕駛再到最近的AlphaGo 2.0橫掃中日韓頂級棋手,AI可謂出盡了風頭,在這個人工智能與大數據的時代,不學點AI,都不好意思出門跟人打招呼說我是搞計算機技術的了。
第六步:做實驗及上kaggle實戰
紙上得來終覺淺、絕知此事要躬行。理論學習再多最終還是要實戰。爲降低門檻起見,你可以從做一個一個有趣的深度學習實驗開始,比如學梵高作畫、自動玩flappy bird等等。然後,在kaggle上多刷刷一些數據競賽項目
第七步:實習或工作
如果你是想做數據挖掘、計算機視覺、自然語言處理,很多經典最新論文值得一讀。如果足夠了,那就正式出山到實際江湖上闖一闖吧:找份工作,幹一把!
推薦公司:有資源、有數據的偏大型一點的公司