内容简介:跟着网络资料自学、刷MOOC是许多人学深度学习的方式,但深度学习相关资源众多,应该从哪儿开始学呢?富有自学经验的GitHub用户Sanny Kim贡献出了一份深度学习自学指南。
作者 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
— 完 —
小程序|全类别AI学习教程
AI社群|与优秀的人交流
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态
喜欢就点「在看」吧 !
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Fluent Python
Luciano Ramalho / O'Reilly Media / 2015-8-20 / USD 39.99
Learn how to write idiomatic, effective Python code by leveraging its best features. Python's simplicity quickly lets you become productive with it, but this often means you aren’t using everything th......一起来看看 《Fluent Python》 这本书的介绍吧!