網路上關於深度學習的資料實在太多了,這裡列出的只是我個人讀過覺得相當不錯的資源,看不夠的話請右轉 Google 搜尋「Deep Learning」,絕對能滿足絕大部分的需求。如果有好的文章卻被漏掉了,也非常歡迎留言推薦,一定儘快補上。

機器學習

如果完全還不知道 Deep Learning 是什麼,甚至對機器學習 (Machine Learning) 都沒有概念,Andrew Ng 在 Coursera 開的課程[1]絕對能給你一個好的開始,雖然是英文授課,但有中文字幕可以參考。除了 Andrew Ng 開的課,華語世界也有個相當熱門的 MOOC 課程─台大林軒田老師在 Coursear 上教授的 Machine Learing;雖然課程已經結束,但所有的影片都公開在 Youtube 上[2]。不過要提醒一下,雖然林老師是中文授課,但可別因此覺得親切,與 Andrew 的課程相比,林軒田老師的課程更重視理論根基,數學很重。

深度學習

對機器學習有概念,但不知道什麼是深度學習的讀者,可以從 PyData 2015 London 的一個 talk 開始[3],它提供了簡短的摘要,從 Learning 的概念開始講起,到介紹如何使用 Python libraries 來達成基本的深度學習任務。有一點概念以後,相當推薦 Michael Nielsen 所寫的 Neural Networks and Deep Learning[4],這篇深入淺出地帶領讀者從最基本的 Perception,一路走到近年來深度學習熱門的技巧像是 Dropout, Batch Normalization 等等,配合大量的 Javascript 導讀與實作範例,是本非常實用的小書。想要收藏更完整的 Deep Learning 知識,可以參考這本由 Ian Goodfellow, Yoshua Bengio 與 Aaron Courville 合著的 Deep Learning[5]。一邊唸書的同時,推薦可以配合著看 Christopher Olah 的部落格[6],她把很多不易理解的概念(例如 Backpropagation)做了視覺化,或者是用不同的角度切入,常常能帶給讀者「原來還可以這樣看啊!」的收穫。對於對深度學習有相當好的理解、甚至自己開發新 model 的讀者,如果遇到困難,推薦可以看看 Russell Stewart 的這篇 Introduction to debugging neural networks [8],或許解 bug 的靈感就藏在其中。

電腦視覺 (Computer Vision)

Deep Learning 其實不只能拿來做視覺辨識,它在自然語言、推薦系統甚至金融商品預測等等也都有很好的表現。不過本篇文章是以視覺辨識為主要範例,如果對電腦視覺有興趣,Stanford 開設的 CS231n Computer Vision [7]是很好的入門課程。

[1] https://www.coursera.org/learn/machine-learning/
[2] https://www.youtube.com/playlist?list=PLXVfgk9fNX2I7tB6oIINGBmW50rrmFTqf
[3] Python For Image Understanding: Deep Learning with Convolutional Neural Nets
[4] http://neuralnetworksanddeeplearning.com/index.html
[5] http://www.deeplearningbook.org/
[6] http://colah.github.io/
[7] http://cs231n.stanford.edu/
[8] http://russellsstewart.com/blog/0