1. 程式人生 > >機器學習、深度學習的理論與實戰入門建議整理(二)

機器學習、深度學習的理論與實戰入門建議整理(二)

階段二.深度學習入門

在對機器學習有了一定的掌握後,就可以開始在深度學習方面的學習了。剛開始要注意對神經網路的一些基本概念的掌握,如什麼是感知機、什麼是多層感知機(前饋神經網路)、BP演算法的原理與推導等。個人覺得一個比較好的學習方式是,以視訊教程為主理出一個清晰的思路,以經典書籍、部落格文章、綜述性論文為輔加深理解,同時,任何時候都不要忘了實踐!

推薦的課程

1.UFLDL
http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial
http://ufldl.stanford.edu/wiki/index.php/UFLDL%E6%95%99%E7%A8%8B

(中文版)
這個教程可以在看完或看了一部分Cousera上吳恩達的公開課後開始看,主要介紹了autoencode,BP,self-taught,PCA等一些實用的工具,最重要的是有課後程式設計,幫助你快速瞭解。建議看的時候重點看BP演算法的推導及實現,softmax迴歸以及它與logistic迴歸的聯絡,以及卷積和池化部分的理解與實現。當然如果能把各個章節都踏踏實實地看過、實現過,那就最好不過了。

2.VGG Convolutional Neural Networks Practical
http://www.robots.ox.ac.uk/~vgg/practicals/cnn/
這是由牛津大學提出VGG網路那個團隊弄的一個CNN實踐的教程,用到了vlfeat這個包,需要安裝visual studio。裡面有網路的各種求導輸出,可以加深對CNN的理解。

6.Self-Paced Courses for Deep Learning
https://developer.nvidia.com/deep-learning-courses
這是英偉達官網上的一個很簡短的關於深度學習的課程,包括對深度學習的介紹以及各類程式設計庫如caffe、theano等的入門教程,可根據興趣選擇觀看

推薦的書籍

1.《Deep learning》.Yoshua Bengio, Ian Goodfellow, Aaron Courville
http://www.deeplearningbook.org/
這本是最推薦的,2016年剛出版的,涵蓋面非常廣且講解很清楚,篇幅較大,適合慢慢消化。

2.《Learning deep architecture for AI》.Yoshua Bengio
這是Bengio在2009年出版的書了,雖然相當較老,但很經典

推薦的綜述論文

2.《Deep learning in neural networks: An overview》
https://arxiv.org/pdf/1404.7828.pdf
RNN之父J.Schmidhuber的88頁的長篇大作,15年發表,主要總結了前饋神經網路(FNN)及遞迴神經網路(RNN)在監督學習、無監督學習及增強學習方面的發展歷程

3.《Representation learning: A review and new perspectives》
Bengio於13年發表的表徵學習的綜述,也是一篇經典

推薦的程式設計庫

推薦的部落格

6.Hacker’s guide to Neural Networks
http://karpathy.github.io/neuralnets/
這一篇主要是從程式設計的視角來對神經網路進行介紹,適合“talk is cheap,show me the code”型同學觀看,若覺得javascript看起來比較困難,可直接下載配套的python程式碼下來跟著看:
https://github.com/urwithajit9/HG_NeuralNetwork
值得一提的是,這篇部落格的作者Andrej Karpathy也是李飛飛的高徒,目前已加入OpenAI,它寫的其他部落格文章也值得讀一讀

階段三.實戰入門

“實戰入門”並不是指從這裡才開始實戰,而是說到這個階段可以去網上找一些感興趣的開源專案玩一玩了。“開源”可以算是這個領域的一大特點了,從各個實驗室到各大公司,都有非常多的開源專案值得學習,而且更新速度特別快,比如11月才舉行的ECCV,部分已被錄用的論文的程式碼現在已經開源了。尋找開源專案的方法有很多,大致可通過這麼幾個渠道:

1.公眾號文章及微博的轉發

公眾號就是之前提到的那幾個,微博的話“愛可可愛生活”更新的很勤,仔細找找應該能找到些有趣的

2.關注某個實驗室或某個大牛的進展

許多在做著頂尖工作的實驗室或大牛每年都會更新若干篇頂會頂刊的文章,其中部分是有開原始碼的,關注那麼幾個感興趣或和自己的方向比較相關的,時不時刷一刷沒準會有些意外收穫喔。這裡推薦幾個,但相信一定還有許多許多有待發現的。

實驗室:

大牛:

這是王曉剛列出的幾個主要方向,各個方向下都有對應的paper和project,都是vision領域的,非常適合還不確定做哪個方向或尚不清楚有哪些方向的同學多看、多瞭解

Ross B. Girshick
https://people.eecs.berkeley.edu/~rbg/
俗稱的rbg,從DPM到R-CNN三部曲,目標檢測領域最近6、7年的重要進展幾乎從未少過他的身影

3.project資源整合網站

4.推薦幾個值得一試的開源專案

小結

最好的學習方式:理論+實踐

最好的利用資源方式:不要急,一個一個來

  這份學習建議的整理是希望你能從三個階段來入門並逐漸掌握機器學習與深度學習,但就如引言中所說的,可能你看完了以後腦海中還是沒有一條清晰的線,也就是“我現在要做什麼、下一步做什麼、然後呢···”,關於這個也許之後我會抽時間整理出一個step-by-step的學習建議。另外,在整理這份學習建議時還是有些倉促,再加上本人才疏學淺,有哪裡錯誤或不得當的地方也希望能得到各位前輩的批評與指正,謝謝。最後,如果您也也曾收藏過一些本文未提及的不錯的資源(入門或進階皆可),那就請您在評論裡和大家一起分享吧,學無止境,嗯,就醬!