进大厂全靠自学,微软amp;头条实习生现身说法:我是这样自学深度学习的丨课程传送门...
作者 Sanny Kim?
郭一璞 編譯?
量子位 出品 | 公眾號(hào) QbitAI
跟著網(wǎng)絡(luò)資料自學(xué)、刷MOOC是許多人學(xué)深度學(xué)習(xí)的方式,但深度學(xué)習(xí)相關(guān)資源眾多,應(yīng)該從哪兒開始學(xué)呢?
富有自學(xué)經(jīng)驗(yàn)的GitHub用戶Sanny Kim貢獻(xiàn)出了一份深度學(xué)習(xí)自學(xué)指南。
她自學(xué)成才,有Udacity、deeplearning.ai、Coursera的一大堆課程認(rèn)證,甚至連大學(xué)都是上的以自學(xué)、MOOC著稱的Minerva大學(xué),自學(xué)卓有成效,曾經(jīng)在微軟做實(shí)習(xí)軟件工程師,現(xiàn)在則是字節(jié)跳動(dòng)(頭條)AI實(shí)驗(yàn)室的機(jī)器學(xué)習(xí)實(shí)習(xí)生。
下面,就讓我們來看看這份自學(xué)指南都包含什么內(nèi)容吧。由于資料課程非常多,建議大家存下來慢慢看。
學(xué)好Python和數(shù)學(xué)
作為深度學(xué)習(xí)從業(yè)者,最重要的基礎(chǔ),一是代碼,二是數(shù)學(xué)。
代碼的選擇毋庸置疑,一定要學(xué)Python,畢竟這是當(dāng)今深度學(xué)習(xí)界最火的語言,沒有之一。
而數(shù)學(xué)一樣重要,雖然數(shù)學(xué)常常難倒英雄漢,不過如果你只是想把深度學(xué)習(xí)拿來在你的領(lǐng)域試用的話,暫時(shí)不需要搞明白太多數(shù)學(xué)基礎(chǔ),
但是,Sanny Kim建議,熟知數(shù)學(xué)理論基礎(chǔ),使用深度學(xué)習(xí)框架會(huì)更易懂,因此需要一定的微積分、線性代數(shù)和統(tǒng)計(jì)學(xué)基礎(chǔ),
學(xué)Python
Python可以選擇下面的課程:
MIT 6.0001課程
https://www.youtube.com/watch?v=ytpJdnlu9ug&list=PLUl4u3cNGP63WbdFxL8giv4yhgdMGaZNA
CodeCademy
https://www.codecademy.com/learn/learn-python
如何像計(jì)算機(jī)科學(xué)家一樣思考
http://interactivepython.org/runestone/static/thinkcspy/index.html
備用鏈接:https://runestone.academy
哈佛CS50
https://www.edx.org/course/cs50s-introduction-to-computer-science
哈佛CS50課程里Python講得比較少,如果你喜歡閱讀,可交互的在線書《如何像計(jì)算機(jī)科學(xué)家一樣思考》會(huì)更適合你。
學(xué)微積分
微積分方面有幾個(gè)必須搞懂的概念:微分,鏈?zhǔn)椒▌t和偏導(dǎo)數(shù)。
數(shù)學(xué)基礎(chǔ)好、想要快速學(xué)習(xí)微積分的同學(xué)請(qǐng)戳:
MIT 18.01 單變量微積分
https://www.youtube.com/watch?v=jbIQW0gkgxo&t=1s
數(shù)學(xué)不太好的同學(xué)請(qǐng)戳:
倫納德教授的微積分1
https://www.youtube.com/watch?v=fYyARMqiaag&list=PLF797E961509B4EB5
已經(jīng)學(xué)過需要復(fù)習(xí)一下,或者幾乎放棄治療、只想簡(jiǎn)單了解一下的同學(xué)請(qǐng)戳:
可汗學(xué)院微積分1
https://www.khanacademy.org/math/calculus-1
補(bǔ)充材料:
3Blue1Brown 微積分的本質(zhì)
https://www.youtube.com/watch?v=WUvTyaaNkzM&list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr
學(xué)線性代數(shù)
線代方面有幾個(gè)必須搞懂的概念:向量,矩陣,矩陣運(yùn)算,包括加減乘除逆運(yùn)算。
還是一樣,想認(rèn)認(rèn)真真搞懂線代的同學(xué)請(qǐng)戳:
MIT 18.06 線性代數(shù)
https://www.youtube.com/watch?v=ZK3O402wf1c&list=PLE7DDD91010BC51F8
走馬觀花的同學(xué)請(qǐng)戳:
可汗學(xué)院線性代數(shù)
https://www.khanacademy.org/math/linear-algebra
戳這個(gè)來了解更多實(shí)際的寫代碼方法:
Rachel Thomas的計(jì)算線性代數(shù)
https://www.youtube.com/watch?v=8iGzBMboA0I&index=1&list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY
補(bǔ)充材料:
斯坦福CS229線性代數(shù)復(fù)習(xí)資料
http://cs229.stanford.edu/section/cs229-linalg.pdf
3Blue1Brown 線性代數(shù)的本質(zhì)
https://www.youtube.com/watch?v=kjBOesZCoqc&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
概率與統(tǒng)計(jì)
概率統(tǒng)計(jì)方面有幾個(gè)必須搞懂的概念:平均值,標(biāo)準(zhǔn)差,分布,采樣,貝葉斯定理。
哈佛統(tǒng)計(jì)110
https://www.youtube.com/watch?v=KbB0FjPg0mw&list=PL2SOU6wwxB0uwwH80KTQ6ht66KWxbzTIo
可汗學(xué)院概率統(tǒng)計(jì)
https://www.khanacademy.org/math/statistics-probability
Brandon Foltz統(tǒng)計(jì)學(xué)101
https://www.youtube.com/user/BCFoltz/videos
補(bǔ)充材料:
斯坦福CS229概率統(tǒng)計(jì)復(fù)習(xí)資料
http://cs229.stanford.edu/section/cs229-prob.pdf
列了這么多數(shù)學(xué)課,你要是覺得上面這三門課學(xué)起來太累,可以只看和深度學(xué)習(xí)、機(jī)器學(xué)習(xí)相關(guān)的部分,那么安利你學(xué)習(xí)下面這兩份材料:
深度學(xué)習(xí)需要的矩陣微積分
作者:Terence Parr,Jeremy Howard
https://arxiv.org/abs/1802.01528
不想看pdf的手機(jī)用戶可戳:https://explained.ai/matrix-calculus/index.html
MIT 18.065 數(shù)據(jù)分析、信號(hào)處理和機(jī)器學(xué)習(xí)中的矩陣方法(2018)
作者:Gilbert Strang
https://www.youtube.com/playlist?list=PLUl4u3cNGP63oMNUHXqIUcrkS2PivhN3k
當(dāng)然,因?yàn)閿?shù)學(xué)嘛,畢竟是門大殺器,要是實(shí)在學(xué)不下去,可以先開始學(xué)下面的深度學(xué)習(xí)部分,看到哪兒原理不懂了,再回來翻資料理解一下。
深度學(xué)習(xí)入門
現(xiàn)在,恭喜你學(xué)會(huì)了Python,還搞懂了一部分?jǐn)?shù)學(xué)理論知識(shí),終于可以開始學(xué)正兒八經(jīng)的深度學(xué)習(xí)了。
深度學(xué)習(xí)入門非常重要的兩套課程,分別是
吳恩達(dá)的deeplearning.ai
https://www.coursera.org/specializations/deep-learning
Jeremy Howard和Rachel Thomas的fast.ai
http://course.fast.ai/
這兩份資料在深度學(xué)習(xí)MOOC領(lǐng)域幾乎無人不知無人不曉了,吳恩達(dá)的課程重視理論解釋,fast.ai更側(cè)重編碼,Sanny Kim是這樣學(xué)這兩套課程的:
1、先看deeplearning.ai的1、2、4、5;
2、在看fast.ai的第一部分;
3、看deeplearning.ai的3;
4、(可選)做deeplearning.ai的作業(yè);
5、把上面的1~4復(fù)習(xí)一遍。
fast.ai從第二部分開始相對(duì)比較難,建議后面再學(xué)。另外,想充分利用fast.ai,最好有一塊GPU,沒有的話就去薅Google羊毛,學(xué)習(xí)使用Colab(反正將來一定會(huì)用到的)。
攻略:學(xué)fast.ai,用Colab
https://towardsdatascience.com/fast-ai-lesson-1-on-google-colab-free-gpu-d2af89f53604
最后,給讀書黨安利:
神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)
作者:Michael Nielsen
http://neuralnetworksanddeeplearning.com/
視頻課程
不能光靠MOOC學(xué)深度學(xué)習(xí),下面這些視頻課程也要學(xué)習(xí)了解一下:
3Blue1Brown的神經(jīng)網(wǎng)絡(luò)
https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi
Computerphile的神經(jīng)網(wǎng)絡(luò)
https://www.youtube.com/playlist?list=PLzH6n4zXuckoezZuZPnXXbvN-9jMFV0qh
Brandon Rohrer的神經(jīng)網(wǎng)絡(luò)
https://www.youtube.com/watch?v=ILsA4nyG7I0
Python實(shí)用機(jī)器學(xué)習(xí)教程
https://www.youtube.com/watch?v=OGxgnH8y2NM&list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v
對(duì)新人友好的博客
刷博客也是自學(xué)的重要途徑,這里一些經(jīng)典博客可以作為學(xué)習(xí)資料:
在處理可視化和動(dòng)量方面做得非常好的Distill.pub
https://distill.pub/
Andrej Karpathy的老博客
http://karpathy.github.io/
深度強(qiáng)化學(xué)習(xí)
https://simoninithomas.github.io/Deep_reinforcement_learning_Course/
Towards Data Science
https://towardsdatascience.com/
寫代碼的資料
Jupyter筆記本:
Jupyter入門
https://www.youtube.com/watch?v=HW29067qVWk
DataCamp Jupyter教程
https://www.datacamp.com/community/tutorials/tutorial-jupyter-notebook?utm
Jupyter的坑,請(qǐng)注意避開
https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUhkKGvjtV-dkAIsUXP-AL4ffI/preview?slide=id.g3b600ce1e2_0_0
NumPy:
斯坦福CS231 Numpy教程
http://cs231n.github.io/python-numpy-tutorial/
DataCamp Numpy教程
https://www.datacamp.com/community/tutorials/python-numpy-tutorial
Pandas:
Data School綜合教程系列Pandas數(shù)據(jù)分析
https://www.youtube.com/watch?v=yzIMircGU5I&list=PL5-da3qGB5ICCsgW1MxlZ0Hq8LL5U3u9y
Pandas的代碼基礎(chǔ)短教程
https://www.youtube.com/watch?v=CmorAWRsCAw&list=PLeo1K3hjS3uuASpe-1LjfG5f14Bnozjwy
Scikit-learn:
Data School scikit-learn教程系列
https://www.youtube.com/watch?v=CmorAWRsCAw&list=PLeo1K3hjS3uuASpe-1LjfG5f14Bnozjwy
Matplotlib:
Sentdex Matplotlib系列
https://www.youtube.com/watch?v=q7Bo_J8x_dw&list=PLQVvvaa0QuDfefDfXb9Yf0la1fPDKluPF
Matplotlib視頻教程
https://www.youtube.com/watch?v=b3lK639ymu4&list=PLNmACol6lYY5aGQtxghQTq0bHXYoIMORy
終于能用深度學(xué)習(xí)了
現(xiàn)在,基礎(chǔ)、原理、代碼你都學(xué)的差不多了,終于可以開始使用深度學(xué)習(xí)這項(xiàng)大殺器了。
那,拿來干點(diǎn)啥,從什么項(xiàng)目開始下手呢?可以看這些找找靈感:
超厲害的深度學(xué)習(xí)idea
https://github.com/NirantK/awesome-project-ideas
Kaggle比賽
https://www.kaggle.com/competitions
Kaggle數(shù)據(jù)集
https://www.kaggle.com/datasets
另外,還需要做處選擇,在TensorFlow、PyTorch、Keras等一大堆框架里選邊站,找一個(gè)你覺得好用的框架。
項(xiàng)目實(shí)踐好了之后,就可以開始寫技術(shù)博客啦!
開啟新篇章
現(xiàn)在,你終于成為了一個(gè)掌握深度學(xué)習(xí)技能的人,可以考慮在計(jì)算機(jī)視覺、自然語言處理、機(jī)器學(xué)習(xí)、自動(dòng)駕駛……等許多領(lǐng)域深入發(fā)展了。
不過,Sanny Kim還是建議大家先去學(xué):
fast.ai的第二部分(2018版,2019版還沒更新到第二部分)
http://course18.fast.ai/part2.html
可以從這里了解一些前沿的東西,比如GAN、神經(jīng)翻譯、超分辨率之類的,之后就可以選擇一個(gè)你喜歡的方向深入研究了。
計(jì)算機(jī)視覺
斯坦福CS231n(2017)
https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk
斯坦福CS231n(2016)
https://www.youtube.com/watch?v=NfnWJUyUJYU&list=PLkt2uSq6rBVctENoVBg1TpCC7OQi31AlC
UCF計(jì)算機(jī)視覺(2012)
https://www.youtube.com/watch?v=715uLCHt4jE&list=PLd3hlSJsX_ImKP68wfKZJVIPTd8Ie5u-9
斯坦福CS231n不同年份有不同年份的特點(diǎn),比如2017年有一個(gè)關(guān)于生成模型的課程,2016年有Jeff Dean的演講,如果想了解在深度學(xué)習(xí)爆發(fā)之前計(jì)算機(jī)視覺的發(fā)展,可以看最后一個(gè)課程。
自然語言處理
斯坦福CS224N NLP深度學(xué)習(xí)(2019)
https://www.youtube.com/playlist?list=PLoROMvodv4rOhcuXMZkNm7j3fVwBBY42z
Stanford CS224N NLP深度學(xué)習(xí)(2017)
https://www.youtube.com/watch?v=OQQ-W_63UgQ&list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6
CMU NLP神經(jīng)網(wǎng)絡(luò)(2019)
https://www.youtube.com/playlist?list=PL8PYTP1V4I8Ajj7sY6sdtmjgkt7eo2VMs
牛津&DeepMind深度學(xué)習(xí)NLP(2017)
https://www.youtube.com/watch?v=RP3tZFcC2e8&list=PL613dYIGMXoZBtZhbyiBqb0QtgK6oJbpm
GitHub:
https://github.com/oxford-cs-deepnlp-2017/lectures
斯坦福CS224N的NLP、深度學(xué)習(xí)課程很棒,包含視頻、PPT、作業(yè)、作業(yè)答案甚至還有課堂項(xiàng)目,相比之下2019版本包含了更多新內(nèi)容。
牛津和DeepMind合作的項(xiàng)目也很不錯(cuò),還附帶了GitHub。
繼續(xù)研究深度學(xué)習(xí)
Fullstack深度學(xué)習(xí)訓(xùn)練營(yíng)(2019年)
https://fullstackdeeplearning.com/march2019
伯克利CS294深度無監(jiān)督學(xué)習(xí)(2019)
https://sites.google.com/view/berkeley-cs294-158-sp19/home
斯坦福CS230深度學(xué)習(xí)(2018)
https://www.youtube.com/playlist?list=PLoROMvodv4rOABXSygHTsbvUz4G_YQhOb
CMU深度學(xué)習(xí)課程(2017)
https://www.youtube.com/watch?v=fDlOQrLX8Hs&list=PLpIxOj-HnDsOSL__Buy7_UEVQkyfhHapa
牛津深度學(xué)習(xí)課程(2015)
https://www.youtube.com/watch?v=PlhFWT7vAEw&list=PLjK8ddCbDMphIMSXn-w1IjyYpHU3DaUYw
Ian Goodfellow的《深度學(xué)習(xí)》(俗稱花書)
https://www.deeplearningbook.org/
NIPS(2017)會(huì)議視頻
https://nips.cc/Conferences/2017/Videos
ICML(2017)會(huì)議視頻
https://icml.cc/Conferences/2017/Videos
ICLR(2018)會(huì)議視頻
https://www.facebook.com/pg/iclr.cc/videos/
強(qiáng)化學(xué)習(xí)
如果想研究強(qiáng)化學(xué)習(xí)(RL),那很不幸你前面學(xué)的deeplearning.ai和fast.ai里都沒有,所以Sanny Kim建議按照下面的順序?qū)W習(xí):
Arxiv Insight的強(qiáng)化學(xué)習(xí)視頻介紹
https://www.youtube.com/watch?v=JgvyzIkgxF0
Jacob Schrum的強(qiáng)化學(xué)習(xí)簡(jiǎn)介
https://www.youtube.com/watch?v=3T5eCou2erg&list=PLWi7UcbOD_0u1eUjmF59XW2TGHWdkHjnS
Andrej Karpathy關(guān)于深度強(qiáng)化學(xué)習(xí)的博客文章
http://karpathy.github.io/2016/05/31/rl/
吳恩達(dá)關(guān)于馬爾可夫決策過程的論文第1-2章
http://rll.berkeley.edu/deeprlcoursesp17/docs/ng-thesis.pdf
斯坦福CS234強(qiáng)化學(xué)習(xí)(2019)
https://www.youtube.com/playlist?list=PLoROMvodv4rOSOPzutgyCTapiGlY2Nd8u
OpenAI深度學(xué)習(xí)Spinning up(2018)
https://spinningup.openai.com/en/latest/
DeepMind深度學(xué)習(xí)&強(qiáng)化學(xué)習(xí)進(jìn)階(2018)
https://www.youtube.com/watch?v=iOh7QUZGyiU&list=PLqYmG7hTraZDNJre23vqCGIVpfZ_K2RZs
David Silver強(qiáng)化學(xué)習(xí)課程
https://www.youtube.com/watch?v=2pWv7GOvuf0&list=PLzuuYNsE1EZAXYR4FJ75jcJseBmo4KQ9-
伯克利CS294深層強(qiáng)化學(xué)習(xí)課程(2017)
http://rll.berkeley.edu/deeprlcoursesp17/
伯克利CS294深度強(qiáng)化學(xué)習(xí)(2018)
http://rail.eecs.berkeley.edu/deeprlcourse/
強(qiáng)化學(xué)習(xí):簡(jiǎn)介(2018年)
https://drive.google.com/file/d/1opPSz5AZ_kVa1uWOdOiveNiBFiEOHjkG/view
伯克利深度強(qiáng)化學(xué)習(xí)訓(xùn)練營(yíng)(2017)
https://www.youtube.com/watch?v=qaMdN6LS9rA&list=PLAdk-EyP1ND8MqJEJnSvaoUShrAWYe51U
MILA強(qiáng)化學(xué)習(xí)暑期學(xué)校(2017)
https://mila.quebec/en/cours/deep-learning-summer-school-2017/
Udacity深度強(qiáng)化學(xué)習(xí)GitHub Repo
https://github.com/udacity/deep-reinforcement-learning
Thomas Simonini深度強(qiáng)化學(xué)習(xí)課程
https://simoninithomas.github.io/Deep_reinforcement_learning_Course/
機(jī)器學(xué)習(xí)
想要了解機(jī)器學(xué)習(xí),吳恩達(dá)的課程是十分經(jīng)典的教材。如果你想學(xué)習(xí)更多相關(guān)的數(shù)學(xué)理論,可以學(xué)加州理工的課程。
吳恩達(dá)的機(jī)器學(xué)習(xí)課程(2012)
https://www.coursera.org/learn/machine-learning
加州理工CS156機(jī)器學(xué)習(xí)課程(2012)
http://work.caltech.edu/telecourse.html
Christopher Bishop的《模式識(shí)別和機(jī)器學(xué)習(xí)書》(2006)
https://www.microsoft.com/en-us/research/uploads/prod/2006/01/Bishop-Pattern-Recognition-and-Machine-Learning-2006.pdf
吳恩達(dá)《Machine Learning Yearning》
https://www.mlyearning.org/
自動(dòng)駕駛
如果你對(duì)自動(dòng)駕駛感興趣,可以去學(xué)MIT的課程,包含廣泛的相關(guān)內(nèi)容介紹,還有比如Aurora這種專業(yè)自動(dòng)駕駛公司大佬的分享。
MIT自動(dòng)駕駛課程(2018年)
https://www.youtube.com/watch?v=-6INDaLcuJY&list=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf
自動(dòng)駕駛的計(jì)算機(jī)視覺:問題,數(shù)據(jù)集和最新技術(shù)(2017)
https://arxiv.org/pdf/1704.05519.pdf
ICCV自動(dòng)駕駛計(jì)算機(jī)視覺教程(2015)
https://sites.google.com/site/cvadtutorial15/materials
Udacity自動(dòng)駕駛idea
https://github.com/ndrplz/self-driving-car
各類補(bǔ)充資料
你可能會(huì)發(fā)現(xiàn),梯度下降、反向傳播,這些問題都出現(xiàn)了
Sebastian Ruder梯度下降博客
http://ruder.io/optimizing-gradient-descent/
CS231n反向傳播
http://cs231n.github.io/optimization-2/
重點(diǎn)論文:
AlexNet(2012)
https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
VGG(2014)
https://arxiv.org/abs/1409.1556
InceptionNet(2014)
https://arxiv.org/pdf/1409.4842.pdf
ResNet(2015)
https://arxiv.org/abs/1512.03385
生成對(duì)抗網(wǎng)絡(luò)(2014年)
https://arxiv.org/abs/1406.2661
Yolo對(duì)象檢測(cè)(2015)
https://arxiv.org/abs/1506.02640
用深度強(qiáng)化學(xué)習(xí)玩雅達(dá)利游戲(2013)
https://arxiv.org/pdf/1312.5602.pdf
備忘錄:
深度學(xué)習(xí)
https://stanford.edu/~shervine/teaching/cs-229/cheatsheet-deep-learning
PyTorch
https://www.sznajdman.com/pytorch-cheat-sheet/
Numpy
https://www.datacamp.com/community/blog/python-numpy-cheat-sheet
Pandas
https://www.datacamp.com/community/blog/python-pandas-cheat-sheet
Matplotlib
https://www.datacamp.com/community/blog/python-matplotlib-cheat-sheet
Scikit-Learn
https://www.datacamp.com/community/blog/scikit-learn-cheat-sheet
Jupyter Notebook
https://www.datacamp.com/community/blog/jupyter-notebook-cheat-sheet
傳送門
GitHub
https://github.com/sannykim/deep-learning-guide
推特
https://twitter.com/sannykimchi/status/1138103256792494085?s=21
? ?喜歡就點(diǎn)「在看」吧 !?
總結(jié)
以上是生活随笔為你收集整理的进大厂全靠自学,微软amp;头条实习生现身说法:我是这样自学深度学习的丨课程传送门...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现在还有没有人不学 Python 的?
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习