如何入門深度學習?
人工神經網路最近在很多領域(例如面部識別,物體發現和圍棋)都取得了突破,深度學習變得炙手可熱。如果你對深度學習感興趣的話,這篇文章是個不錯的起點。
如果你學過線性代數,微積分,概率論和編程,我建議你從斯坦福大學的CS231n課程開始。這門課內容廣泛,寫得很高。可每次課的幻燈片都可以下載,雖然官方網站刪除了配套的視頻,但是你很容易就能在網上搜索到。
如果你沒有學過那些數學課,網上也有很多免費的學習材料可以用來學習必要的數學知識。Gilbert Stange的線性代數課程很適合入門。對於其他科目,edX上有MIT的微積分和概率論課程。
如果想學習更多關於機器學習的東西,Andrew Ng在Coursera上的機器學習課程是最佳入門選擇。除此之外,Yaser Abu-Mostafa的機器學習課程更關注理論,但也很適合初學者。學習深度學習並不要求掌握機器學習,但如果能有一些了解的話還是很有幫助的。此外,學習經典的機器學習,而不僅僅是深度學習,能讓我們有深厚的理論背景————因為,深度學習並不總是最佳方案。
CS231n並不是在線深度學習課程的唯一選擇。Geoffrey Hinton的Coursera課程『用於機器學習的神經網路』(Neural Nerworks for Machine Learning)涵蓋了諸多內容,Hugo Larochelle的『神經網路課』(Neural Networks Class) 也是如此。這兩門課都有視頻材料。Nando de Freitas的在線課程也帶有視頻、幻燈片和家庭作業。
如果你不喜歡看視頻,而是更喜歡閱讀,《神經網路和深度學習》(Neural Networks and Deep Learning)是一本為深度學習的初學者撰寫的在線免費書。《深度學習之書》(The Deep Learning Book)也是一本很贊的免費書,不過內容略高階一點。
有了基礎知識之後,還可以往這些方面發展:
- 幾乎上述所有的深度學習材料都或多或少的涉及到計算機視覺(Computer Vision)。
- 遞歸神經網路(Recurrent Nerual Networks)是用於解決諸如機器翻譯和語音識別之類的問題的神經網路模型的基礎。Andrej Karpathy關於RNN的博客文章可以幫你學習它。Christopher Olah的博客上有一篇文章用非常形象生動的方式解釋了很多深度學習的概念。他關於LSTM網路的文章是一篇很不錯的導論,LSTM是一種應用廣泛的RNN變體。
- 自然語言處理:CS224d課程介紹了深度學習在自然語言處理中的應用。更高階的課程來自Kyunghyun Cho(這裡有課堂筆記)和Yoav Goldberg。
- 增強學習:如果你想要控制機器人,或者是在圍棋比賽上戰勝人類,增強學習或許是最佳選擇。Andrej Karpathy關於深度增強學習的博客文章可以幫你入門。David Silver最近也發表了一篇介紹深度增強學習的短文章。
深度學習框架:深度學習框架很多,最有名的三個應該是Tensorflow(谷歌),Torch(Facebook)和Theano(MILA)。三個都很牛逼,如果一定要推薦一個的話,我建議初學者去試試Tensorflow。Tensorflow的教程很不錯。
訓練神經網路幾乎離不開GPU。雖然不是必須的,但GPU可以幫你更快的完成工作。NVIDIA顯卡是工業標準,大部分研究實驗室都在用一千美元的顯卡,很少有便宜貨能搞定這個事情。另一個成本更低的辦法是從諸如亞馬遜之類的雲計算服務供應商那租一個帶GPU的實例(這裡有短教程)。
祝你好運!
2016年6月26日
原文地址:http://ofir.io/How-to-Start-Learning-Deep-Learning/
推薦閱讀:
※神經網路的每一層網路(針對特定的問題)有什麼實際的意義嗎?
※聽說你還不懂機器學習?圖片解讀基本概念、五大流派與九種常見演算法
※《淺析感知機(二)--學習演算法及python代碼剖析》
※歷史|文章筆記-從線性分類器到卷積神經網路
TAG:深度学习DeepLearning | 机器学习 | 生物信息学 |