標籤:

心得丨從0到1,教你如何利用大學四年無師自通,學好機器學習!

首先,我並不是想勸大家都來做機器學習...但如果這個方向是你的興趣,在大學時打好基礎可以先人一步!

我想從從三個方向來說: a. 知識積累 b. 經驗積累 c. 素養積累

1. 知識學習:

1.1. 掌握好必備的數學基礎,其實簡單說在大學程度主要是三門課: a. 微積分 b. 線性代數. c.概率與統計。如果學有餘力,還可以看看優化方向的東西,但這個不是強求。

1.2. 掌握好一些基礎的計算機核心課程,比如資料庫,並行運算,離散數學(暫且把它放到計算機這一欄裡面)。至於編程方面的技巧,我倒覺得不是需要做到特別厲害。如果能力有限的話,可以放低對操作系統,計算機結構這種比較偏底層的課程。人生要學會抓大放小,不要苛求自己樣樣精通。

1.3. 學好Python,了解Python上的編程習慣(PEP8)和語法糖。同時可以多了解一些Python對應的數據科學/機器學習的工具庫,比如pandas, numpy,scipy, sklearn等。即使將來你不做機器學習,膠水語言Python的知識還是可以有很大的幫助。選擇Python的另一個原因是大部分深度學習框架,Tensorflow/Theano/Keras/Pytorch等都是基於或有Python介面。

歡迎在騰訊課堂學習動腦學院Python課程。

1.4. 開始學習基礎的機器學習,比較推薦的方法是:

a. 觀看Andrew Ng 在Coursera上的機器學習課程

b. 同時開始閱讀基礎的機器學習書籍(比如《集體編程智慧》《Python機器學習》《Introduction to Statistical Learning》等)。

這個階段,最重要的就是不要貪多嚼不爛。如果你瀏覽網站,會發現大家都說你必須讀Elements of Statistical Learning, PRML之類的大部頭。我承認閱讀這樣的書會有幫助,但不大適合一開始直接閱讀,因為有可能會讓你「從入門到放棄」。

在你有了一定的基礎知識後,你已經知道自己需要接著做什麼了,我希望把選擇權交還給你,而不是推薦成堆的課程和書籍。當然,如果你希望繼續深入的話,中文可以閱讀周志華老師的《機器學習》和李航老師的《統計學習基礎》,英文可以入手《Elements of Statistical Learning》和《Deep Learning》。在這個階段,重點要形成成體系的知識脈絡,切記貪多嚼不爛,切記!

1.5. 學好英語,至少打下閱讀和聽力的基礎。雖然人工智慧領域中國現在已經做得很不錯,但主流的書籍、期刊和會議,資料都是英文的。

2. 實踐經歷:

2.1. 嘗試儘早接觸科研,進實驗室。一般來說,大三的時候你應該已經有了基本的機器學習知識,儘管還比較淺。這個時候可以向老師/學長/學姐毛遂自薦進實驗室,即使是無償勞動和做基本的苦力活。進實驗室有兩個明顯的好處:

a. 對某個小方向會有比較深入的了解。一般實驗室做純理論的不大需要本科生,做機器視覺或者自然語言處理(NLP)等小方向的比較需要本科生,所以這是很好的深入了解一個方向的機會。

b. 補充了研究經歷也可以明白自己是否適合這個領域。如果運氣好的話,你也有可能成為論文的作者之一,甚至可以去開會(公款旅遊順道見一下業內大佬)。這對於繼續深造和去國外繼續學習都很有幫助,有科研經歷和論文是很大的籌碼,對於找工作來說也絕對有利無害。

2.2. 如果對科研的興趣一般,可以嘗試儘早實習。大部分我們從書上看到的方法其實或多或少都是理想模型,甚至很多都比較過時了。舉例,現在大部分教科書里神經網路的激活函數還是sigmoid,而工業界早就不用sigmoid了。機器學習的新手最大的門檻就是學了很多知識,卻沒有使用和檢驗的機會,而儘早實習可以給你更直觀的感受,防止只有一身屠龍之技。

2.3. 可能科研和實習機會有時候可遇不可求,這時候就要自己找項目來做,用興趣來驅動項目。比較好的方法包括參加Kaggle競賽,天池競賽,或者將機器學習運用於自己感興趣的事情上。

3. 社科人文:

3.1. 機器學習作為一個變化飛速的領域,要有自己的「堅持」和「品味」。舉個簡單的例子,現在的深度學習大放光彩需要歸功於一批科學家在神經網路低谷時的堅持。但同時,即使只說機器學習,也不要相信只有深度學習最好,不能固執。如果對機器學習感興趣,就不要今天覺得網路安全好,明天覺得人機互動(HCI)最有前途。追逐熱點往往到手的都是泡沫。

3.2. 多讀不同領域的書,比如社科類、經濟類、人文類。因為數據科學的起點是以數據為基礎,終點提取見解提供反饋。而見解不像數字一樣一眼就可以看出高低大小,而需要閱歷來多角度分析。很多人覺得計算機學科的人讀數學看論文就夠了,實則不然,科學總會和社會有交織。舉個例子,是否該將人工智慧應用于軍事就是最近知乎上很火的問題,但回答這個問題就需要你有足夠的非計算機知識儲備,科技沒有善惡,而人有。

3.3. 放低身段,多和別人交流。其實這一點有一點牽強,但我發現做機器學習的小夥伴一般都很有性格,很多也比較內向(包括我自己),這可能適用於大部分理工科的朋友。即便如此,我還是建議大家稍微放開一些,因為以數據為導向的工作大部分都要求互動,比如數據分析師、數據科學家等。

4. 寫在最後:

因此,看了這麼多過來人分享經驗後,我最希望的是你既不要急著全盤接受,也不要因為不對胃口全盤否定。慢下來,好好想想,這大概才是做科學工作的正確態度。


推薦閱讀:

Python(3)嘗試破解wifi無線密碼
給妹子講python--04迭代和列表解析式
Python機器學習實踐—決策樹
Python數據分析之方差分析

TAG:Python |