一個沒有基礎的工科研究生如何學習神經網路?

雙控專業


先科普,嚴肅的科普:

Andrew Ng 的Machine Learning 開放課。 手把手教你Machine Learning

然後是

林軒田 基石+技法 周志華的西瓜書。

科普完了,你發現數學基礎可能不夠,就補補數學。主要是微積分、線性代數、概率和統計。

然後在回去看 林軒田的PPT 西瓜書。 直到完全看懂。

如果走到這一步,還沒放棄。你已經不是湊熱鬧的人啦,你自己會挑一些好書看,會辨別網上的亂七八糟聲音。

------------------------------

知乎,或者其他人,應為專業對口,數理能力強。會說一些驕傲的話把你帶進坑裡面。我學一句哈

「這個不好學么,不要基礎的,三個月PRML,直接看最近幾年的論文,然後python寫起來」

------------------------------------------

看懂西瓜書後,有一些實踐點的數據集合。 選一個合適的工具 MATLAB 也好,python也罷。工具熟悉後,你一些想法可以畫圖出來看看。 比如一個分類器的分類邊界什麼的。

準備好後,才是是基本巨著。我的建議是晚一點看好,免得進去只見樹木不見森林

《The Elements of Statistical Learning》

《Pattern Recognition And Machine Learning》

這些不要從頭往回看,而是自己及筆記,一個專題一個專題的整理。 比如線性回歸,看看定義和數學符號,PRML的貝葉斯解釋, 梯度下降的解,數學分析的解,幾何的解釋。 應用,對應工具(比如 python scikit-learn)的API。 自己也可以好好思考一下,是否可以增量訓練,是否可以並行訓練 等等有意義有點深度和實用價值的問題。

幾個大的專題你學下來,走到這裡。你應該回去複習了更多次的數學,最優化理論,線性代數。基本上可以參加一些在線的比賽啦,也是比較容易找到工作的人。

----------------------------------------------------

在後面,才是根據自己興趣。深入探索 神經網路,或者SVM等具體的一個課題。這些課題都是互相借鑒思想,觸類旁通的東西。 關鍵還是上面的基礎。


神經網路是一個應用很廣的技術,比如自然語言處理、圖像處理、增強學習等。每一個領域的內容都很豐富,大概導論的話都可以給本科生開一個學期,也有大量的課程公開資料。

不知道樓主對哪些領域感興趣?如果只是泛泛可以參考Stanford的Machine Learning,UT的Neural Network。書籍有周志華、Deep Learning等等。但是如果有聚焦領域的話這些資料可能或者淺或者太廣了。

很多應用領域都需要相應的知識儲備,比如DQN自然需要事先掌握Q-learning。如果題主有專門的應用領域還是找些更專門的資料比較好。

課程和書籍可以看,但是最重要的是自己實現/跑一遍。有些數學理論並不妨礙你的實現,而且後者應該更受到重視也更簡單。Tensorflow,Theano等框架網上有很多教程,Github有各個任務的別人實現好的代碼。

其實你可以把卷積核當成濾波器,可能會發現神經網路和信號與系統等課程的概念是相通的,所以也許並沒有你想像的那麼困難。


建議題主先入門一下機器學習基礎,推薦Andrew ng的視頻,因為題主主要針對神經網路,推薦一個在線免費學習網站http://neuralnetworksanddeeplearning.com/,講的很好。


學好數學,學好至少一門編程語言


推薦閱讀:

word2vec 相比之前的 Word Embedding 方法好在什麼地方?
在使用relu的網路中,是否還存在梯度消失的問題?
關於語音識別特徵提取該如何入門?
詞向量,LDA,word2vec三者的關係是什麼?_?
預測和回歸的區別是什麼?

TAG:機器學習 | 神經網路 |