In this brief post, I describe a very coarse learning roadmap of ML within the range of what you can learn from lectures. Once you are beyond this level, you may want to move on to my sequel to this blog post: Current Landscape of Machine Learning, which describes which papers and external sources you may want to read in order to understand the current ML landscape.

## Leaning prerequisite Math & CS courses

There are four courses that need to be taken after learning single-variable Calculus (with corresponding MIT OCW course number and link attached as an example):

- Multi-variable Calculus (equivalent to 18.02)
- Elementary Probability & Statistics (equivalent to 18.05)
- Linear Algebra (equivalent to 18.06)
- Introduction to CS & Python (equivalent to 6.0001)

## Learning ML & DL & RL

#### ML

It is highly beneficial to learn some classical ML (the things before DL) to understand the context. There are many ways to learn ML.

- Machine Learning (Coursera)
- Introduction to Machine Learning (MIT OCW 6.036)
- Pattern Recognition and Machine Learning by Christopher Bishop

#### DL

To study DL, I highly recommend Dive into Deep Learning (D2L). D2L is an interactive, up-to-date, self-contained, freely available online learning resource of DL. In my opinion, it is by far the most efficient way of learning DL. Relevant links are listed below:

D2L usually displays their code in three different frameworks: MXNet, PyTorch and Tensorflow. It is highly recommended to choose PyTorch option whenever possible.

Before starting D2L, it is highly recommended to learn how to use Google Colab (tutorial), which you can almost always use for running any code in this section. It is also highly recommended to try some tutorials on Numpy and PyTorch while reading D2L.

D2L contains a chapter for reviewing prerequisite math titled “Appendix: Mathematics for Deep Learning”. After finishing the four prerequisite Math & CS courses listed in the previous section, you should feel comfortable with almost everything presented there, and for the ones you are not you can learn from the section.

The following is a good reference:

#### RL

Unlike ML, the options for RL are quite limited. I have found the following course to be sufficient for this purpose: