「完全指南」6个月,每周10-20小时,零基础掌握深度学习
新智元编译
来源:towardsdatascience.com
编译:马文
【新智元导读】在大约6个月的时间里,学习、跟踪和参与到深度学习state-of-the-art的工作中是完全可能的。实现这一目标只需5个步骤,本文带来详细介绍。
必备条件
你愿意在接下来的6个月每周花费10-20小时
你已经有一些编程技能。在学习过程中,你应该能够轻松学会Python,以及云的知识(假设没有Python和云的背景)。
已经接受过一些数学教育(代数、几何等)。
能够访问互联网和使用计算机。
6个月,循序渐进5个步骤掌握深度学习
第1步
我们通过开车来学习驾驶,而不是通过学习离合器和内燃机的工作原理。至少最开始不是这样。学习深度学习时,我们将遵循同样的自上而下的方法。
作为入门,学习fast.ai的“给程序员的深度学习课程-Part 1”[1]。这需要花费4-6周的时间。这个课程有一个在云上运行代码的实践。Google Colaboratory[2]提供免费的GPU接入,其他的选项还有Paperspace, AWS, GCP, Crestle 和 Floydhub。所有这些都很好用。你不用开始配置自己的机器,至少这个阶段还不用。
第2步
学完第一步的入门课程,现在应该学一些基本知识了。学习微积分和线性代数。
对于微积分,MIT的Big Picture of Calculus[3] 这个课程提供了一个很好的概述。
对于线性代数,Gilbert Strang在MIT OpenCourseWare开的《线性代数》课程[4]很棒。
完成上面两个课程后,可以阅读 Matrix Calculus for Deep Learning [5].
第3步
现在是了解深度学习的自下而上的方法的时候了。在Coursera学习吴恩达的Deep Learning Specialization的全部5门课[6]。理想情况下,考虑到你目前已经得到的背景知识,你应该能够每周完成一门课程。
第4步
“只用功不玩耍,聪明的孩子也变傻”
做一个实战项目。你可以深入钻研一个深度学习库(例如,Tensorflow、PyTorch、MXNet),并针对任何你喜欢的问题,从头开始实现一个架构。
前三个步骤是关于如何使用、在哪里使用深度学习,以及打下坚实的基础的过程。这一步就是从零开始实现一个项目,并在使用工具方面打下坚实的基础。
第5步
现在可以开始学习fast.ai第二部分的课程了——给程序员的前沿深度学习课程(Cutting Edge Deep Learning for Coders)[7]。这个课程涉及更高级的主题,你将学习阅读最新的研究论文,并从中得到启发。
以上每个步骤都大约需要4-6周的时间。总共大约26周的时间,如果你遵循上述步骤的过程,你将获得深度学习的坚实基础。
那么再下一步呢?
学习斯坦福的CS231n[8]和CS224d[9]课程。这两个都是非常深度的视觉和NLP领域的很棒的课程。这两个课程覆盖了该领域最先进的研究。同时阅读Ian Goodfellow 、Yoshua Bengio 和Aaron Courville三位大牛合著的Deep Learning这本书[10],这能够巩固你的理解。
Happy deep learning!
课程和资源链接:
[1]Practical Deep Learning for Coders — Part 1 http://course.fast.ai/
[2]Google Colaboratory https://colab.research.google.com/
[3]Big Picture of Calculus https://ocw.mit.edu/resources/res-18-005-highlights-of-calculus-spring-2010/highlights_of_calculus/big-picture-of-calculus/
[4]Linear Algebra https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/
[5]Matrix Calculus for Deep Learning http://parrt.cs.usfca.edu/doc/matrix-calculus/index.html
[6]Deep Learning Specialisation https://www.coursera.org/specializations/deep-learning
[7]Cutting Edge Deep Learning for Coders http://course.fast.ai/part2.html
[8]CS231n http://cs231n.stanford.edu/
[9]CS224d http://cs224d.stanford.edu/
[10]deep learning book http://www.deeplearningbook.org/