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