作者 Sanny Kim

郭一璞 編譯量子位 出品 | 公眾號 QbitAI

跟著網路資料自學、刷MOOC是許多人學深度學習的方式,但深度學習相關資源眾多,應該從哪兒開始學呢?

富有自學經驗的GitHub用戶Sanny Kim貢獻出了一份深度學習自學指南。

她自學成才,有Udacity、deeplearning.ai、Coursera的一大堆課程認證,甚至連大學都是上的以自學、MOOC著稱的Minerva大學,自學卓有成效,曾經在微軟做實習軟體工程師,現在則是位元組跳動(頭條)AI實驗室的機器學習實習生。

下面,就讓我們來看看這份自學指南都包含什麼內容吧。由於資料課程非常多,建議大家存下來慢慢看。

學好Python和數學

作為深度學習從業者,最重要的基礎,一是代碼,二是數學。

代碼的選擇毋庸置疑,一定要學Python,畢竟這是當今深度學習界最火的語言,沒有之一。

而數學一樣重要,雖然數學常常難倒英雄漢,不過如果你只是想把深度學習拿來在你的領域試用的話,暫時不需要搞明白太多數學基礎,

但是,Sanny Kim建議,熟知數學理論基礎,使用深度學習框架會更易懂,因此需要一定的微積分、線性代數和統計學基礎,

學Python

Python可以選擇下面的課程:

MIT 6.0001課程

youtube.com/watch?

CodeCademy

codecademy.com/learn/le如何像計算機科學家一樣思考interactivepython.org/r備用鏈接:runestone.academy哈佛CS50edx.org/course/cs50s-in

哈佛CS50課程里Python講得比較少,如果你喜歡閱讀,可交互的在線書《如何像計算機科學家一樣思考》會更適合你。

學微積分

微積分方面有幾個必須搞懂的概念:微分鏈式法則偏導數

數學基礎好、想要快速學習微積分的同學請戳:

MIT 18.01 單變數微積分

youtube.com/watch?

數學不太好的同學請戳:

倫納德教授的微積分1

youtube.com/watch?

已經學過需要複習一下,或者幾乎放棄治療、只想簡單了解一下的同學請戳:

可汗學院微積分1

khanacademy.org/math/ca

補充材料:

3Blue1Brown 微積分的本質

youtube.com/watch?

學線性代數

線代方面有幾個必須搞懂的概念:向量矩陣矩陣運算,包括加減乘除逆運算。

還是一樣,想認認真真搞懂線代的同學請戳:

MIT 18.06 線性代數

youtube.com/watch?

走馬觀花的同學請戳:

可汗學院線性代數

khanacademy.org/math/li

戳這個來了解更多實際的寫代碼方法:

Rachel Thomas的計算線性代數

youtube.com/watch?

補充材料:

斯坦福CS229線性代數複習資料

cs229.stanford.edu/sect3Blue1Brown 線性代數的本質youtube.com/watch?

概率與統計

概率統計方面有幾個必須搞懂的概念:平均值標準差分布採樣貝葉斯定理

哈佛統計110

youtube.com/watch?可汗學院概率統計khanacademy.org/math/stBrandon Foltz統計學101youtube.com/user/BCFolt

補充材料:

斯坦福CS229概率統計複習資料

cs229.stanford.edu/sect

列了這麼多數學課,你要是覺得上面這三門課學起來太累,可以只看和深度學習、機器學習相關的部分,那麼安利你學習下面這兩份材料:

深度學習需要的矩陣微積分

作者:Terence Parr,Jeremy Howard

arxiv.org/abs/1802.0152不想看pdf的手機用戶可戳:explained.ai/matrix-calMIT 18.065 數據分析、信號處理和機器學習中的矩陣方法(2018)作者:Gilbert Strangyoutube.com/playlist?

當然,因為數學嘛,畢竟是門大殺器,要是實在學不下去,可以先開始學下面的深度學習部分,看到哪兒原理不懂了,再回來翻資料理解一下。

深度學習入門

現在,恭喜你學會了Python,還搞懂了一部分數學理論知識,終於可以開始學正兒八經的深度學習了。

深度學習入門非常重要的兩套課程,分別是

吳恩達的deeplearning.ai

coursera.org/specializa

Jeremy Howard和Rachel Thomas的fast.ai

course.fast.ai/

這兩份資料在深度學習MOOC領域幾乎無人不知無人不曉了,吳恩達的課程重視理論解釋,fast.ai更側重編碼,Sanny Kim是這樣學這兩套課程的:

1、先看deeplearning.ai的1、2、4、5;

2、在看fast.ai的第一部分;

3、看deeplearning.ai的3;

4、(可選)做deeplearning.ai的作業;

5、把上面的1~4複習一遍。

fast.ai從第二部分開始相對比較難,建議後面再學。另外,想充分利用fast.ai,最好有一塊GPU,沒有的話就去薅Google羊毛,學習使用Colab(反正將來一定會用到的)。

攻略:學fast.ai,用Colab

towardsdatascience.com/

最後,給讀書黨安利:

神經網路與深度學習

作者:Michael Nielsenneuralnetworksanddeeplearning.com

視頻課程

不能光靠MOOC學深度學習,下面這些視頻課程也要學習了解一下:

3Blue1Brown的神經網路

youtube.com/playlist?Computerphile的神經網路youtube.com/playlist?Brandon Rohrer的神經網路youtube.com/watch?

Python實用機器學習教程

youtube.com/watch?

對新人友好的博客

刷博客也是自學的重要途徑,這裡一些經典博客可以作為學習資料:

在處理可視化和動量方面做得非常好的Distill.pub

distill.pub/Andrej Karpathy的老博客karpathy.github.io/深度強化學習simoninithomas.github.ioTowards Data Sciencetowardsdatascience.com/

寫代碼的資料

Jupyter筆記本:

Jupyter入門

youtube.com/watch?DataCamp Jupyter教程datacamp.com/community/Jupyter的坑,請注意避開docs.google.com/present

NumPy:

斯坦福CS231 Numpy教程

cs231n.github.io/pythonDataCamp Numpy教程datacamp.com/community/

Pandas:

Data School綜合教程系列Pandas數據分析

youtube.com/watch?Pandas的代碼基礎短教程youtube.com/watch?

Scikit-learn:

Data School scikit-learn教程系列

youtube.com/watch?

Matplotlib:

Sentdex Matplotlib系列

youtube.com/watch?Matplotlib視頻教程youtube.com/watch?

終於能用深度學習了

現在,基礎、原理、代碼你都學的差不多了,終於可以開始使用深度學習這項大殺器了。

那,拿來干點啥,從什麼項目開始下手呢?可以看這些找找靈感:

超厲害的深度學習idea

github.com/NirantK/awesKaggle比賽kaggle.com/competitionsKaggle數據集kaggle.com/datasets

另外,還需要做處選擇,在TensorFlow、PyTorch、Keras等一大堆框架里選邊站,找一個你覺得好用的框架。

項目實踐好了之後,就可以開始寫技術博客啦!

開啟新篇章

現在,你終於成為了一個掌握深度學習技能的人,可以考慮在計算機視覺、自然語言處理、機器學習、自動駕駛……等許多領域深入發展了。

不過,Sanny Kim還是建議大家先去學:

fast.ai的第二部分(2018版,2019版還沒更新到第二部分)

course18.fast.ai/part2.

可以從這裡了解一些前沿的東西,比如GAN、神經翻譯、超解析度之類的,之後就可以選擇一個你喜歡的方向深入研究了。

計算機視覺

斯坦福CS231n(2017)

youtube.com/watch?斯坦福CS231n(2016)youtube.com/watch?UCF計算機視覺(2012)youtube.com/watch?

斯坦福CS231n不同年份有不同年份的特點,比如2017年有一個關於生成模型的課程,2016年有Jeff Dean的演講,如果想了解在深度學習爆發之前計算機視覺的發展,可以看最後一個課程。

自然語言處理

斯坦福CS224N NLP深度學習(2019)

youtube.com/playlist?Stanford CS224N NLP深度學習(2017)youtube.com/watch?CMU NLP神經網路(2019)youtube.com/playlist?牛津&DeepMind深度學習NLP(2017)youtube.com/watch?GitHub:github.com/oxford-cs-de

斯坦福CS224N的NLP、深度學習課程很棒,包含視頻、PPT、作業、作業答案甚至還有課堂項目,相比之下2019版本包含了更多新內容。

牛津和DeepMind合作的項目也很不錯,還附帶了GitHub。

繼續研究深度學習

Fullstack深度學習訓練營(2019年)

fullstackdeeplearning.com伯克利CS294深度無監督學習(2019)sites.google.com/view/b斯坦福CS230深度學習(2018)youtube.com/playlist?CMU深度學習課程(2017)youtube.com/watch?牛津深度學習課程(2015)youtube.com/watch?Ian Goodfellow的《深度學習》(俗稱花書)deeplearningbook.org/NIPS(2017)會議視頻nips.cc/Conferences/201ICML(2017)會議視頻icml.cc/Conferences/201ICLR(2018)會議視頻facebook.com/pg/iclr.cc

強化學習

如果想研究強化學習(RL),那很不幸你前面學的deeplearning.ai和fast.ai里都沒有,所以Sanny Kim建議按照下面的順序學習:

Arxiv Insight的強化學習視頻介紹

youtube.com/watch?Jacob Schrum的強化學習簡介youtube.com/watch?Andrej Karpathy關於深度強化學習的博客文章karpathy.github.io/2016吳恩達關於馬爾可夫決策過程的論文第1-2章rll.berkeley.edu/deeprl斯坦福CS234強化學習(2019)youtube.com/playlist?OpenAI深度學習Spinning up(2018)spinningup.openai.com/eDeepMind深度學習&強化學習進階(2018)youtube.com/watch?David Silver強化學習課程youtube.com/watch?伯克利CS294深層強化學習課程(2017)rll.berkeley.edu/deeprl伯克利CS294深度強化學習(2018)rail.eecs.berkeley.edu/強化學習:簡介(2018年)drive.google.com/file/d伯克利深度強化學習訓練營(2017)youtube.com/watch?MILA強化學習暑期學校(2017)mila.quebec/en/cours/deUdacity深度強化學習GitHub Repogithub.com/udacity/deepThomas Simonini深度強化學習課程simoninithomas.github.io

機器學習

想要了解機器學習,吳恩達的課程是十分經典的教材。如果你想學習更多相關的數學理論,可以學加州理工的課程。

吳恩達的機器學習課程(2012)

coursera.org/learn/mach加州理工CS156機器學習課程(2012)work.caltech.edu/telecoChristopher Bishop的《模式識別和機器學習書》(2006)microsoft.com/en-us/res吳恩達《Machine Learning Yearning》mlyearning.org/

自動駕駛

如果你對自動駕駛感興趣,可以去學MIT的課程,包含廣泛的相關內容介紹,還有比如Aurora這種專業自動駕駛公司大佬的分享。

MIT自動駕駛課程(2018年)

youtube.com/watch?自動駕駛的計算機視覺:問題,數據集和最新技術(2017)arxiv.org/pdf/1704.0551ICCV自動駕駛計算機視覺教程(2015)sites.google.com/site/cUdacity自動駕駛ideagithub.com/ndrplz/self-

各類補充資料

你可能會發現,梯度下降、反向傳播,這些問題都出現了

Sebastian Ruder梯度下降博客

ruder.io/optimizing-graCS231n反向傳播cs231n.github.io/optimi

重點論文:

AlexNet(2012)

papers.nips.cc/paper/48VGG(2014)arxiv.org/abs/1409.1556InceptionNet(2014)arxiv.org/pdf/1409.4842ResNet(2015)arxiv.org/abs/1512.0338生成對抗網路(2014年)arxiv.org/abs/1406.2661Yolo對象檢測(2015)arxiv.org/abs/1506.0264用深度強化學習玩雅達利遊戲(2013)arxiv.org/pdf/1312.5602

備忘錄:

深度學習

stanford.edu/~shervine/PyTorchsznajdman.com/pytorch-cNumpydatacamp.com/community/Pandasdatacamp.com/community/Matplotlibdatacamp.com/community/Scikit-Learndatacamp.com/community/Jupyter Notebookdatacamp.com/community/

傳送門

GitHub

github.com/sannykim/dee

推特

twitter.com/sannykimchi

量子位 · QbitAI

?? ? 追蹤AI技術和產品新動態

戳右上角「+關注」獲取最新資訊↗↗

如果喜歡,請分享or點贊吧~比心?


推薦閱讀:
相关文章