Disclaimer: I am not an expert; I’m a learner, and I’ve just outlined what has worked for me and although I have tried making it more general, this could still, to some extent, be a subjective list.
This list assumes the following:
- that you have no prior background when it comes to machine learning
- that you have completed high school math (maybe you’ve forgotten, but that’s okay)
- that you don’t know much about Python but aren’t too unfamiliar with programming languages. If you know some Python, awesome. If you’re an expert, even better. If you know another programming language, that’ll help a lot! You more or less know where you fit here so move forward accordingly; let’s assume that you are a beginner in Python (or programming in general).
There’s no particular order to this, and the resources I suggest could be subjective. As a learner, you’re free to roam around, but having some basic foundation when it comes to math & programming (Python) is key.
I’m going to paste some materials below. These aren’t necessarily in order.
My suggestion: complete (1), get some basic understanding of Python (and some PyTorch too if you have time) in (2) (you do not need to master Python or PyTorch! learn as you go!), complete the 3B1B playlist from (3.1.1) — make sure you have a basic high-level understanding of the concepts — and start (3.2). The rest can be done concurrently with something else. Even if you skip some parts, make sure you come back to complete it. When I say this, I’m not talking about the course, but the topic!
To be clear
If you find something from below not good enough or interactive, it’s okay to refer to something else to cover that topic. It’s all subjective, anyway. You probably know what works best for you. What’s important is that you cover that topic in some way.
Okay, here’s the list.
1. Math
Again, could be subjective but it’s important to get the absolute foundations down. So, I suggest:
1.1 Math for ML Specialization on Coursera:
Course Link
Covers basic linear algebra, calculus, and statistics required for ML. You don’t need to pay; just audit the courses.
- basic fundamental understanding only, which I consider important since being able to understand mathematical intuition is super essential, even if it’s just a basic one. Has the following courses: (a) Linear Algebra Course, (b) Calculus Course, (c) Probability and Statistics Course
1.2 Essence of Linear Algebra YouTube playlist by 3B1B
Course Link
Highly recommend this. The material is in YouTube video format as well as reading format. You can watch/do this concurrently with the linear algebra course above.
1.3 Differential Equations Playlist by 3B1B
Course Link
I highly recommend this playlist as well. YouTube playlist as well as text format available. You can watch/do this concurrently with the calculus course above.
1.4 Essence of Calculus Playlist by 3B1B
Course Link
another highly recommended playlist series. YouTube playlist as well as text format available. You can watch/do this concurrently with the calculus course above.
NOTE
You can search videos on the Statquest YouTube channel for any math concepts from above that you find confusing. For instance, I found the PCA explanation on the Coursera course quite confusing, and Statquest’s video cleared it up for me. You can also do that with the Trefor Bazett channel; it’s got tons of valuable material.
DISCLAIMER: Regarding the 3B1B Courses
These courses are for getting a high-level preview of the concepts and are not necessarily to be relied upon for purely learning. For that, you need paper, a pen, and some proper math exercises to solve. But that’s exactly why doing the 3B1B courses concurrently with more rigorous math materials is very effective.
2. Programming (Python, PyTorch, etc.)
Pretty sure this is something you might already know where to look at to learn. I’ll still paste some materials below and you can see if they might be helpful to you:
2.1 Practical Python Course
Course Link
~ 40 hours of intense work to finish, focusing mainly on script writing, basic data manipulation, and program organization
2.2 Intro to DL with PyTorch (Udacity)
Course Link
by the creators of PyTorch
2.3 PyTorch: Zero to Mastery on YouTube
Course Link
25 hours of content on YouTube, materials are documented really well. HIGHLY RECOMMEND THIS.
3. The “ML” Stuff
People have their own views on how to start this as well, so I’ll paste materials that I think are helpful to get started as well.
3.1 The “Theory”
3.1.1 Neural Network Playlist by 3B1B
Playlist Link
His YouTube videos are interactive & intuitive. Highly recommend watching this before doing any NN projects or hands-on exercises in my opinion. Text format available too!
3.1.2 Machine Learning Specialization by Andrew Ng
Specialization Link
You can audit the course and get the basics of ML down.
3.1.3 ML Playlist by Statquest
Playlist Link
Always learn something new from this guy, he’s really good.
3.2 The Hands-On Approach
Neural Network - Zero to Hero Series by Andrej Karpathy
Link to the series
This series can get quite heavy (there are videos for each project, each one is long), and that’s exactly why I strongly recommend you watch all of his videos and consume everything. That’s all we need to do to reach a certain level of mastery.
IMPORTANT
Some people actually start their ML journey with this series by Karpathy, and that’s fine too. However, there will be lots of things that one doesn’t necessarily understand and has to search up the internet separately (that’s what I did), thus leading to all the materials I listed above. Therefore, in a way, properly understanding this series requires a certain level of understanding of everything I’ve listed out so far, but that’s the whole point! If you finish this series and understand most of it, you are no longer an amateur.
Some more resources
Do some small-scale side projects too! Kaggle is nice. Also, try to consume as much as you can from people like Sebastian Raschka in addition to Andrej Karpathy.
You can try reading some ml-related books and read some papers as well. Here are some books I was told are good (disclaimer: I have not yet read them all, so please check them out with your own curiosity):
- Machine Learning with PyTorch and Scikit-Learn by Raschka - Liu - Vahid
- Understanding Deep Learning by Simon Prince
- Alice’s Adventures in Differentiable Wonderland by Scardapane
- Designing Machine Learning Systems by Chip Huyen
For papers, it’s quite open but you can take a look at the links below for a kickstart:
Good luck!