Guide to Deep Learning
This blog contains a guide to get started with Deep Learning as well as get in-depth knowledge of the field.
The guide is divided into three sections:
- Prerequisites: You will need experience in these before starting off with deep learning.
- Basic: This contains resources for beginners, with an estimated time of completion.
- Advanced: This contains resources for better insights into the mathematics and details of Deep Learning, provided for both theory and implementation.
Do give the disclaimer at the bottom a read.
I. Prerequisites
1. Basic knowledge of Python.
II. Basic
1. Udacity’s Intro to Machine Learning Course (UD-120): This course gives you hands-on learning of the basics of Machine Learning, which will be useful later on.
- Estimated time to complete: 1 week
- You can leave lecture 6 and 17
2. Book by Michael Neilsen: This book takes you through the basics of Deep Learning, covering what neural networks are as well as a thorough mathematical overview of the backpropagation algorithm. It also contains a comprehensive explanation of a Handwritten Digit Classifier written completely in NumPy.
- Estimated time to complete: 1–2 weeks
- Read all 6 chapters
- Try to code the classifier by yourself without referring to the book.
3. Stanford’s Computer Vision course (CS-231n) (Winter 2016): This course gives an overview of neural networks and CNNs, which are useful in the application of deep learning to the field of computer vision.
- Estimated time to complete: 1 week
- Watch the first 7 lectures
- The rest of the lectures give a brief overview of the different directions in which deep learning has been applied to the field of computer vision and are optional.
- Assignments of the course can be skipped
4. Andrew Ng’s Deeplearning.ai 5-Course Specialization: This specialization is a must for learning the basic theory of deep learning and getting a first-hand experience of applying it to some amusing tasks.
- Estimated time to complete: 1–1.5 months
- Don’t leave the assignments!
- Tip: Make sure to apply for financial aid 15 days before you plan to start the course so that you can do the assignments.
5. Blogs: The following blogs can be read for a better understanding of useful concepts in the field of ML and DL:
- Recommender System through Collaborative Filtering
- Introduction to k-Nearest Neighbours
- Blogs by Christopher Olah (read blogs of sections named Neural Networks, RNN, CNN, Visualizing Neural Networks)
- Ensembling Methods
- An Overview of Gradient Descent Optimization Algorithms
- Lecture Notes of CS-231N (read Module 1 and 2)
- Blogs by Machine Learning Mastery (refer for machine learning algorithms and their Python implementations)
- Blogs by Distill (generally has really good blogs to read)
- Introduction to RNNs (read parts 1 to 4)
- Maximum Likelihood Estimation (MLE)
- Maximum A-Posteriori (MAP)
III. Advanced
A. Theory
- Deep Learning Book: This book is considered the bible of deep learning and gives a very thorough explanation of deep learning concepts.
- Parts 1 and 2 are a must read
- Part 3 can be read as per interest
- Many concepts and questions asked in ML and DL interviews are explained in this book.
2. Linear Algebra:
- Three Blue One Brown Playlist: A very nice visualization of linear algebra concepts is given in the videos, which helps to understand some common operations.
- Gilbert Strang’s Introduction to Linear Algebra Course: A lengthy but very comprehensive explanation of linear algebra concepts.
3. Probability:
- Statistics 110: A lengthy but comprehensive explanation of probability concepts.
4. Andrew Ng’s Machine Learning Course (CS-229): Usually an introductory course to the field of Machine Learning. A very thorough explanation of the mathematics behind some of the algorithms and theory learned in course UD-120 is given in this course.
5. Stanford’s Natural Language Processing Course (CS-224N) (Winter 2019): A very nice course for learning about the application of deep learning in the field of natural language processing. Both lectures and assignments are worth doing.
B. Implementation
1. Fast.ai: This course takes you through the process of implementing deep learning concepts, from the model architectures to the nit-picky details.
- Part 1: http://course18.fast.ai/index.html
- Part 2: http://course18.fast.ai/part2.html
- Jupyter Notebooks:
a. dl1 : part 1 directory
b. dl2 : part 2 directory
2. PyTorch
3. Tensorflow
Disclaimer
- This guide is based on the opinions of the members of VLG. There may be other ways to learn which suit different individuals.
- This guide also does not contain resources for Reinforcement Learning as of now.