How Would I Learn Machine Learning Again?
Machine learning (ML) is one of the fastest (if not the fastest) growing fields in technology. More and more people want to learn ML, and there are a bunch of resources out there, which might make you confused if you are new to this area.
I mostly learn ML on my own, and I have done a lot of research to find the best learning resources. How would I learn ML if I had a chance to learn it from scratch again in 2023?
People learn differently. Therefore, this article is not a guide to learning ML that everyone should follow but the way I want myself to get into this field again. Perhaps it’s good for you to know my background so you will know if my recommendation fits you.
My Background
I’m not an ML expert. I’m an undergraduate student at the National University of Singapore, majoring in Computer Engineering.
Previously, I worked as a ML Engineer Intern at a startup in Singapore, and I have secured a Data Science Intern at another startup in Paris (I have time to write regularly since the visa is pending now 😬).
I was first introduced to ML in the winter break of my freshman year by taking Coursera Deep Learning Specialization by Andrew Ng, one of the most popular pioneers in AI. Prior to taking the MOOC, I have a decent background in calculus, linear algebra, statistics, and programming in C and Python.
So, this article will be best suitable for you if you have the same background as me around the time I first learned ML. In other words, you:
- Have not taken any major cause or read any in-depth books on ML
- Know how to code in Python: apart from very basic stuff, you should know some object-oriented programming concepts (how to design classes, how to implement inheritance in Python)
- Are somewhat familiar with Python’s main scientific libraries: numpy, pandas, and matplotlib
- Have basic math knowledge, especially linear algebra (it’s fine if you don’t know, but understanding vector and matrix operations will help you understand the underlying mechanisms of ML algorithms). If you want to learn linear algebra, check out MIT 18.06 taught by Professor Gilbert Strang, probably the best linear algebra course ever.
The following books and courses are not listed in sequential order. You can learn them in the order of your preference or take multiple ones at the same time. It’s totally fine to skip some since it will take you a lot of time to learn them all.
CS50’s Introduction to Artificial Intelligence with Python
CS50 needs no more introduction. It’s an on-campus and online introductory course on computer science taught by Professor David J Malan at Harvard University. Apart from the original course, CS50 offers other learning tracks as well. One of them is Artificial Intelligence or CS50 AI.
Wait… what? Are we supposed to learn ML instead of AI?
You are right. This course is not specifically about machine learning, but having a broad overview of different topics of artificial intelligence will help you in the long run.
CS50 AI covers a variety of concepts and algorithms at the foundation of modern AI. The best thing about this course is that you will have a chance to get your hands dirty. You need to do 1–2 projects per week and 7 weeks in total, in which you will implement certain algorithms/concepts taught in the lecture to build game-playing engines, a crossword solver, or an image classification model.
A minesweeper-solving agent — one of the course’s projects
It took me a while to solve all the projects, but it was worth it.
And the course is totally free. You have to pay to get an Edx certification, but all content is available on CS50’s website.
Andrew Ng’s Machine Learning Specialization (Coursera)
Machine Learning Specialization is an expanded version of the Coursera Machine Learning course, which was one of the most popular online ML classes originally taught at Stanford by Andrew Ng, and composed of 3 courses:
- Supervised Machine Learning: Regression and Classification
- Advanced Learning Algorithms
- Unsupervised Learning, Recommenders, Reinforcement Learning
Throughout this specialization, you will learn the fundamentals of ML and how to build real-world AI applications. Compared to other resources listed here, this specialization is a bit theory-heavy, but it will help you not only know how algorithms work but also why they are implemented that way.
One thing I specifically like about this specialization is the optional labs. Although they are optional and even if you take a look at them, there are not too many things to do. But do take some time to look at the source code for those labs. They are extremely useful to me.
Since it is hosted on Coursera, you can access most of the content via audit mode. If you want to have full access and complete the courses to get the certification but don’t have money to pay for it, financial aid is available as well.
Practical Deep Learning for Coders by fast.ai
Instructed by Jeremy Howard, ex-president of Kaggle and co-founder of fast.ai, Practical Deep Learning for Coders is a hands-on introduction to how to apply deep learning and machine learning to practical problems.
The course is based on the book Deep Learning for Coders with fastai & Pytorch, which is freely available online in the form of Jupyter notebooks.
Without going deep into the theory, Deep Learning for Coders introduces you to state-of-the-art models and teaches you how to train models with the latest deep learning techniques.
With a good level of abstraction, you will not only learn how to train but also how to deploy and turn your models into web applications, how to improve the accuracy, speed, and reliability of your models, and what are the ethical implications when working in this field.
As commented by Peter Norvig, Director of Research at Google, “the book shows examples first, and only covers theory in the context of concrete examples. For most people, this is the best way to learn”, and it is “one of the best sources for a programmer to become proficient in deep learning.”
Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow — Aurélien Géron
If you don’t have time to read multiple books or enroll in multiple online courses, this is my recommendation for you: read and follow the examples in this book. To me, it is the best practical introduction to ML.
Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow
Written by Aurélien Géron, who previously led YouTube’s video classification team, Hands-on Machine Learning describes a wide range of techniques, from simple linear regression to complicated generative adversarial networks or transformers.
The book starts with a high-level explanation of the field. Then, it introduces a structured way to tackle the majority of problems you will face by going through an end-to-end project. The rest of the book goes into more detail about different learning methods and models to solve different problems. It will also teach you how to train and deploy models at scale using the latest technologies.
The 3rd edition of the book was released in 2022 with a lot of updates compared to the previous editions. So, if you are new to ML, pick up a copy of this book right away.
While the aforementioned resources covered pretty much everything you need to know to get into this field, most of the topics are just crafted on the surface.
If you want to go deeper into a specific topic like computer vision, natural language processing, or MLOps, you will need to find other resources for those areas.
And since new discoveries in ML are being published every month or still in the research labs, it’s very important to keep yourself up to date by reading papers or digging into the source codes. Take a look at paperswithcode.com for trending and state-of-the-art ML research and the code to implement it.
I will write more.