一個沒有基礎的工科研究生如何學習神經網路?
雙控專業
先科普,嚴肅的科普:
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三者的關係是什麼?_?
※預測和回歸的區別是什麼?