作者 Sanny Kim郭一璞 編譯量子位 出品 | 公眾號 QbitAI
作者 Sanny Kim
跟著網路資料自學、刷MOOC是許多人學深度學習的方式,但深度學習相關資源眾多,應該從哪兒開始學呢?
富有自學經驗的GitHub用戶Sanny Kim貢獻出了一份深度學習自學指南。
她自學成才,有Udacity、deeplearning.ai、Coursera的一大堆課程認證,甚至連大學都是上的以自學、MOOC著稱的Minerva大學,自學卓有成效,曾經在微軟做實習軟體工程師,現在則是位元組跳動(頭條)AI實驗室的機器學習實習生。
下面,就讓我們來看看這份自學指南都包含什麼內容吧。由於資料課程非常多,建議大家存下來慢慢看。
作為深度學習從業者,最重要的基礎,一是代碼,二是數學。
代碼的選擇毋庸置疑,一定要學Python,畢竟這是當今深度學習界最火的語言,沒有之一。
而數學一樣重要,雖然數學常常難倒英雄漢,不過如果你只是想把深度學習拿來在你的領域試用的話,暫時不需要搞明白太多數學基礎,
但是,Sanny Kim建議,熟知數學理論基礎,使用深度學習框架會更易懂,因此需要一定的微積分、線性代數和統計學基礎,
學Python
Python可以選擇下面的課程:
MIT 6.0001課程https://www.youtube.com/watch?v=ytpJdnlu9ug&list=PLUl4u3cNGP63WbdFxL8giv4yhgdMGaZNA CodeCademyhttps://www.codecademy.com/learn/learn-python如何像計算機科學家一樣思考http://interactivepython.org/runestone/static/thinkcspy/index.html備用鏈接:https://runestone.academy哈佛CS50https://www.edx.org/course/cs50s-introduction-to-computer-science
MIT 6.0001課程
CodeCademy
哈佛CS50課程里Python講得比較少,如果你喜歡閱讀,可交互的在線書《如何像計算機科學家一樣思考》會更適合你。
學微積分
微積分方面有幾個必須搞懂的概念:微分,鏈式法則和偏導數。
數學基礎好、想要快速學習微積分的同學請戳:
MIT 18.01 單變數微積分https://www.youtube.com/watch?v=jbIQW0gkgxo&t=1s
MIT 18.01 單變數微積分
數學不太好的同學請戳:
倫納德教授的微積分1https://www.youtube.com/watch?v=fYyARMqiaag&list=PLF797E961509B4EB5
倫納德教授的微積分1
已經學過需要複習一下,或者幾乎放棄治療、只想簡單了解一下的同學請戳:
可汗學院微積分1https://www.khanacademy.org/math/calculus-1
可汗學院微積分1
補充材料:
3Blue1Brown 微積分的本質https://www.youtube.com/watch?v=WUvTyaaNkzM&list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr
3Blue1Brown 微積分的本質
學線性代數
線代方面有幾個必須搞懂的概念:向量,矩陣,矩陣運算,包括加減乘除逆運算。
還是一樣,想認認真真搞懂線代的同學請戳:
MIT 18.06 線性代數https://www.youtube.com/watch?v=ZK3O402wf1c&list=PLE7DDD91010BC51F8
MIT 18.06 線性代數
走馬觀花的同學請戳:
可汗學院線性代數https://www.khanacademy.org/math/linear-algebra
可汗學院線性代數
戳這個來了解更多實際的寫代碼方法:
Rachel Thomas的計算線性代數https://www.youtube.com/watch?v=8iGzBMboA0I&index=1&list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY
Rachel Thomas的計算線性代數
斯坦福CS229線性代數複習資料http://cs229.stanford.edu/section/cs229-linalg.pdf3Blue1Brown 線性代數的本質https://www.youtube.com/watch?v=kjBOesZCoqc&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
斯坦福CS229線性代數複習資料
概率與統計
概率統計方面有幾個必須搞懂的概念:平均值,標準差,分布,採樣,貝葉斯定理。
哈佛統計110https://www.youtube.com/watch?v=KbB0FjPg0mw&list=PL2SOU6wwxB0uwwH80KTQ6ht66KWxbzTIo可汗學院概率統計https://www.khanacademy.org/math/statistics-probabilityBrandon Foltz統計學101https://www.youtube.com/user/BCFoltz/videos
哈佛統計110
斯坦福CS229概率統計複習資料http://cs229.stanford.edu/section/cs229-prob.pdf
斯坦福CS229概率統計複習資料
列了這麼多數學課,你要是覺得上面這三門課學起來太累,可以只看和深度學習、機器學習相關的部分,那麼安利你學習下面這兩份材料:
深度學習需要的矩陣微積分 作者:Terence Parr,Jeremy Howardhttps://arxiv.org/abs/1802.01528不想看pdf的手機用戶可戳:https://explained.ai/matrix-calculus/index.htmlMIT 18.065 數據分析、信號處理和機器學習中的矩陣方法(2018)作者:Gilbert Stranghttps://www.youtube.com/playlist?list=PLUl4u3cNGP63oMNUHXqIUcrkS2PivhN3k
深度學習需要的矩陣微積分
作者:Terence Parr,Jeremy Howard
當然,因為數學嘛,畢竟是門大殺器,要是實在學不下去,可以先開始學下面的深度學習部分,看到哪兒原理不懂了,再回來翻資料理解一下。
現在,恭喜你學會了Python,還搞懂了一部分數學理論知識,終於可以開始學正兒八經的深度學習了。
深度學習入門非常重要的兩套課程,分別是
吳恩達的deeplearning.aihttps://www.coursera.org/specializations/deep-learning Jeremy Howard和Rachel Thomas的fast.aihttp://course.fast.ai/
吳恩達的deeplearning.ai
Jeremy Howard和Rachel Thomas的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,用Colabhttps://towardsdatascience.com/fast-ai-lesson-1-on-google-colab-free-gpu-d2af89f53604
攻略:學fast.ai,用Colab
最後,給讀書黨安利:
神經網路與深度學習作者:Michael Nielsenhttp://neuralnetworksanddeeplearning.com/
神經網路與深度學習
視頻課程
不能光靠MOOC學深度學習,下面這些視頻課程也要學習了解一下:
3Blue1Brown的神經網路https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3piComputerphile的神經網路https://www.youtube.com/playlist?list=PLzH6n4zXuckoezZuZPnXXbvN-9jMFV0qhBrandon Rohrer的神經網路https://www.youtube.com/watch?v=ILsA4nyG7I0 Python實用機器學習教程https://www.youtube.com/watch?v=OGxgnH8y2NM&list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v
3Blue1Brown的神經網路
Python實用機器學習教程
對新人友好的博客
刷博客也是自學的重要途徑,這裡一些經典博客可以作為學習資料:
在處理可視化和動量方面做得非常好的Distill.pubhttps://distill.pub/Andrej Karpathy的老博客http://karpathy.github.io/深度強化學習https://simoninithomas.github.io/Deep_reinforcement_learning_Course/Towards Data Sciencehttps://towardsdatascience.com/
在處理可視化和動量方面做得非常好的Distill.pub
寫代碼的資料
Jupyter筆記本:
Jupyter入門https://www.youtube.com/watch?v=HW29067qVWkDataCamp Jupyter教程https://www.datacamp.com/community/tutorials/tutorial-jupyter-notebook?utmJupyter的坑,請注意避開https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUhkKGvjtV-dkAIsUXP-AL4ffI/preview?slide=id.g3b600ce1e2_0_0
Jupyter入門
NumPy:
斯坦福CS231 Numpy教程http://cs231n.github.io/python-numpy-tutorial/DataCamp Numpy教程https://www.datacamp.com/community/tutorials/python-numpy-tutorial
斯坦福CS231 Numpy教程
Pandas:
Data School綜合教程系列Pandas數據分析https://www.youtube.com/watch?v=yzIMircGU5I&list=PL5-da3qGB5ICCsgW1MxlZ0Hq8LL5U3u9yPandas的代碼基礎短教程https://www.youtube.com/watch?v=CmorAWRsCAw&list=PLeo1K3hjS3uuASpe-1LjfG5f14Bnozjwy
Data School綜合教程系列Pandas數據分析
Scikit-learn:
Data School scikit-learn教程系列https://www.youtube.com/watch?v=CmorAWRsCAw&list=PLeo1K3hjS3uuASpe-1LjfG5f14Bnozjwy
Data School scikit-learn教程系列
Matplotlib:
Sentdex Matplotlib系列https://www.youtube.com/watch?v=q7Bo_J8x_dw&list=PLQVvvaa0QuDfefDfXb9Yf0la1fPDKluPFMatplotlib視頻教程https://www.youtube.com/watch?v=b3lK639ymu4&list=PLNmACol6lYY5aGQtxghQTq0bHXYoIMORy
Sentdex Matplotlib系列
現在,基礎、原理、代碼你都學的差不多了,終於可以開始使用深度學習這項大殺器了。
那,拿來干點啥,從什麼項目開始下手呢?可以看這些找找靈感:
超厲害的深度學習ideahttps://github.com/NirantK/awesome-project-ideasKaggle比賽https://www.kaggle.com/competitionsKaggle數據集https://www.kaggle.com/datasets
超厲害的深度學習idea
另外,還需要做處選擇,在TensorFlow、PyTorch、Keras等一大堆框架里選邊站,找一個你覺得好用的框架。
項目實踐好了之後,就可以開始寫技術博客啦!
現在,你終於成為了一個掌握深度學習技能的人,可以考慮在計算機視覺、自然語言處理、機器學習、自動駕駛……等許多領域深入發展了。
不過,Sanny Kim還是建議大家先去學:
fast.ai的第二部分(2018版,2019版還沒更新到第二部分)http://course18.fast.ai/part2.html
fast.ai的第二部分(2018版,2019版還沒更新到第二部分)
可以從這裡了解一些前沿的東西,比如GAN、神經翻譯、超解析度之類的,之後就可以選擇一個你喜歡的方向深入研究了。
計算機視覺
斯坦福CS231n(2017)https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk斯坦福CS231n(2016)https://www.youtube.com/watch?v=NfnWJUyUJYU&list=PLkt2uSq6rBVctENoVBg1TpCC7OQi31AlCUCF計算機視覺(2012)https://www.youtube.com/watch?v=715uLCHt4jE&list=PLd3hlSJsX_ImKP68wfKZJVIPTd8Ie5u-9
斯坦福CS231n(2017)
斯坦福CS231n不同年份有不同年份的特點,比如2017年有一個關於生成模型的課程,2016年有Jeff Dean的演講,如果想了解在深度學習爆發之前計算機視覺的發展,可以看最後一個課程。
自然語言處理
斯坦福CS224N NLP深度學習(2019)https://www.youtube.com/playlist?list=PLoROMvodv4rOhcuXMZkNm7j3fVwBBY42zStanford CS224N NLP深度學習(2017)https://www.youtube.com/watch?v=OQQ-W_63UgQ&list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6CMU NLP神經網路(2019)https://www.youtube.com/playlist?list=PL8PYTP1V4I8Ajj7sY6sdtmjgkt7eo2VMs牛津&DeepMind深度學習NLP(2017)https://www.youtube.com/watch?v=RP3tZFcC2e8&list=PL613dYIGMXoZBtZhbyiBqb0QtgK6oJbpmGitHub:https://github.com/oxford-cs-deepnlp-2017/lectures
斯坦福CS224N NLP深度學習(2019)
斯坦福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_YQhObCMU深度學習課程(2017)https://www.youtube.com/watch?v=fDlOQrLX8Hs&list=PLpIxOj-HnDsOSL__Buy7_UEVQkyfhHapa牛津深度學習課程(2015)https://www.youtube.com/watch?v=PlhFWT7vAEw&list=PLjK8ddCbDMphIMSXn-w1IjyYpHU3DaUYwIan Goodfellow的《深度學習》(俗稱花書)https://www.deeplearningbook.org/NIPS(2017)會議視頻https://nips.cc/Conferences/2017/VideosICML(2017)會議視頻https://icml.cc/Conferences/2017/VideosICLR(2018)會議視頻https://www.facebook.com/pg/iclr.cc/videos/
Fullstack深度學習訓練營(2019年)
強化學習
如果想研究強化學習(RL),那很不幸你前面學的deeplearning.ai和fast.ai里都沒有,所以Sanny Kim建議按照下面的順序學習:
Arxiv Insight的強化學習視頻介紹https://www.youtube.com/watch?v=JgvyzIkgxF0Jacob Schrum的強化學習簡介https://www.youtube.com/watch?v=3T5eCou2erg&list=PLWi7UcbOD_0u1eUjmF59XW2TGHWdkHjnSAndrej 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=PLoROMvodv4rOSOPzutgyCTapiGlY2Nd8uOpenAI深度學習Spinning up(2018)https://spinningup.openai.com/en/latest/DeepMind深度學習&強化學習進階(2018)https://www.youtube.com/watch?v=iOh7QUZGyiU&list=PLqYmG7hTraZDNJre23vqCGIVpfZ_K2RZsDavid 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-EyP1ND8MqJEJnSvaoUShrAWYe51UMILA強化學習暑期學校(2017)https://mila.quebec/en/cours/deep-learning-summer-school-2017/Udacity深度強化學習GitHub Repohttps://github.com/udacity/deep-reinforcement-learningThomas Simonini深度強化學習課程https://simoninithomas.github.io/Deep_reinforcement_learning_Course/
Arxiv Insight的強化學習視頻介紹
機器學習
想要了解機器學習,吳恩達的課程是十分經典的教材。如果你想學習更多相關的數學理論,可以學加州理工的課程。
吳恩達的機器學習課程(2012)https://www.coursera.org/learn/machine-learning加州理工CS156機器學習課程(2012)http://work.caltech.edu/telecourse.htmlChristopher 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/
吳恩達的機器學習課程(2012)
自動駕駛
如果你對自動駕駛感興趣,可以去學MIT的課程,包含廣泛的相關內容介紹,還有比如Aurora這種專業自動駕駛公司大佬的分享。
MIT自動駕駛課程(2018年)https://www.youtube.com/watch?v=-6INDaLcuJY&list=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf自動駕駛的計算機視覺:問題,數據集和最新技術(2017)https://arxiv.org/pdf/1704.05519.pdfICCV自動駕駛計算機視覺教程(2015)https://sites.google.com/site/cvadtutorial15/materialsUdacity自動駕駛ideahttps://github.com/ndrplz/self-driving-car
MIT自動駕駛課程(2018年)
各類補充資料
你可能會發現,梯度下降、反向傳播,這些問題都出現了
Sebastian Ruder梯度下降博客http://ruder.io/optimizing-gradient-descent/CS231n反向傳播http://cs231n.github.io/optimization-2/
Sebastian Ruder梯度下降博客
重點論文:
AlexNet(2012)https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdfVGG(2014)https://arxiv.org/abs/1409.1556InceptionNet(2014)https://arxiv.org/pdf/1409.4842.pdfResNet(2015)https://arxiv.org/abs/1512.03385生成對抗網路(2014年)https://arxiv.org/abs/1406.2661Yolo對象檢測(2015)https://arxiv.org/abs/1506.02640用深度強化學習玩雅達利遊戲(2013)https://arxiv.org/pdf/1312.5602.pdf
AlexNet(2012)
備忘錄:
深度學習https://stanford.edu/~shervine/teaching/cs-229/cheatsheet-deep-learningPyTorchhttps://www.sznajdman.com/pytorch-cheat-sheet/Numpyhttps://www.datacamp.com/community/blog/python-numpy-cheat-sheetPandashttps://www.datacamp.com/community/blog/python-pandas-cheat-sheetMatplotlibhttps://www.datacamp.com/community/blog/python-matplotlib-cheat-sheetScikit-Learnhttps://www.datacamp.com/community/blog/scikit-learn-cheat-sheetJupyter Notebookhttps://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
— 完 —
量子位 · QbitAI
?? ? 追蹤AI技術和產品新動態
戳右上角「+關注」獲取最新資訊↗↗
如果喜歡,請分享or點贊吧~比心?