Source: Deep Learning on Medium

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.