How To Learn Machine Learning

Vincent Lossel
5 min readSep 20, 2023

--

Machine Learning is a very popular field today. I decided to write this article to guide the curious ones in learning a complex but fascinating discipline. This means that you won’t become an expert in 3 months (far from it), but you will know where to start your learning journey.

Firstly, Machine Learning is a field that belongs to the broader realm of artificial intelligence. It comprises a set of methods and tools to harness (very) large amounts of data to achieve certain results without explicitly programming the computer to reach them.

The applications of this field are numerous and encompass problems as exciting and complex as facial recognition, recommendation systems, anomaly detection, autonomous driving, large language models (LLM), and more…

A Multidisciplinary Field

Learning Machine Learning requires mastering some fundamentals. A strong foundation in mathematics is necessary. Statistics are fundamental and help understand the functioning of certain algorithms. Indeed, statistics are omnipresent and essential at various levels (data analysis, model quality evaluation, etc.).

Programming is obviously a necessary step. There are many programming languages to choose from. However, I would recommend beginners to learn Python, both for the abundance of information and for its versatility and importance in the field.

Python has established itself as a reference language in the practice of Machine Learning and Data Science, mainly due to the large number of libraries available and the language’s accessibility. Nevertheless, it is entirely possible to use other programming languages to deploy a model in production.

Mathematics and Statistics

Mathematics and statistics are the most important areas to grasp in order to understand what Machine Learning is. If your knowledge of mathematics or statistics is a bit rusty, take the time to refresh it. The website Khan Academy offers courses at all levels to get you back on track.

There are also some YouTube channels like 3Blue1Brown or StatQuest that can help you visualize certain concepts better. Courses are also available on MIT OpenCourseWare for linear algebra, geometry, and analysis.

I tend to prefer books for learning new concepts, here’s a short list:

- Mathematics for Machine Learning, M. Deisenroth, A. Faisal, and C. Soon Ong
- Linear Algebra Done Right, S. Axler
- Statistics in Plain English, T. C. Urdan
- Practical Statistics for Data Scientists, P. Bruce, A. Bruce
- Probability and Statistics, M. H. DeGroot, M. J. Schervish
- Resampling Methods: A Practical Guide to Data Analysis, P. I. Good

If your level in mathematics or statistics is low, learning these concepts will take time. My advice is to break down the topics into small, more manageable concepts. Don’t get stuck on what you don’t understand.

Similarly, don’t hesitate to use your programming knowledge to play around with mathematical concepts. You can revisit the theory later on.

Programming

If you’re new to programming, start by learning Python and how it works. You can find numerous tutorials on the internet, as well as some interesting books like Learning Python 3 the Hard Way. The Real Python website also offers many resources and is a good learning resource.

Once you become more familiar with Python, you can explore the various libraries that make up the Machine Learning landscape. You will need libraries like pandas, numpy, as well as data visualization tools like matplotlib or seaborn.

I recently discovered Python Like You Mean It for learning the basics of Python and numpy simultaneously, so be sure to check it out.

Furthermore, acquiring additional skills can be truly helpful. Tools like Jupyter Notebooks, Git, and Docker provide a solid foundation. You can explore The Missing Semester of Your CS Education to enhance your Computer Science knowledge.

Exploring Machine Learning

To get started, you can find online courses on various platforms. The most well-known course is still Andrew Ng’s Machine Learning on Coursera. It has recently been updated and remains an excellent introduction to the field.

I also recommend some books that are worth reading multiple times to fully appreciate their content:

- The Hundred-Page Machine Learning Book, A. Burkov
- Data Science from Scratch, J. Grus
- Hands-On Machine Learning with Scikit-learn, Keras and Tensorflow, A. Géron
- The Elements of Statistical Learning, T. Hastie, R. Tibshirani, J. Friedman
- Pattern Recognition and Machine Learning, C. D. Bishop

Some of these books are aimed at a more advanced audience and may require comfort with advanced mathematical or statistical concepts. Some books will have you work on small projects throughout their reading.

Once you have a better understanding of how algorithms work, don’t hesitate to experiment with libraries like Scikit-Learn, TensorFlow, or PyTorch. The documentation for these libraries is well done and should support you in your projects.

Of course, Machine Learning is a vast field in which you will encounter other specialized subdomains like Deep Learning or MLOps.

Deep Learning, for example, focuses on complex problems such as computer vision, autonomous driving, etc. Fast.ai and Deeplearning.ai have numerous resources on this subject. You can also read “Deep Learning” by I. Goodfellow, Y. Bengion, and A. Courville.

MLOps comprises a set of practices put in place to ensure the deployment and maintenance of models in production. This can involve setting up a data pipeline, compliance with relevant regulations, model accuracy monitoring, model retraining, and more. For this topic, you can read “Designing Machine Learning Systems” by Chip Huyen.

Learning by Doing

Finally, learning comes through practice. Reading all the books on the subject won’t make you an expert; you need to apply the knowledge you’ve gained. You don’t need hundreds of certificates; you need skills. MOOCs can give a the false impression of competence.

In addition to being a good motivational tool, working on projects throughout your learning journey will allow you to showcase what you can do and solidify your theoretical knowledge.

Numerous resources exist to help you practice. For example, Kaggle is a platform that offers real-world problem-solving with Machine Learning models in competitions.

There are many datasets available on the internet, maintained by governments (e.g., data.gouv.fr) or public organizations. Working on some of these datasets can be a great way to learn and stand out!

Similarly, trying to implement a scientific publication is, in my opinion, a good way to learn and demonstrate your skills. This is obviously not the easiest exercise, and you shouldn’t start with it, but the rewards are substantial.

Depending on your goals, you may also need to expose your models to users through an application or API. Consider looking into Streamlit or Flask to set up an API.

This should be enough to get you started in the field. Throughout this journey, remember that it is not easy, and if you don’t understand something, you have the time to come back on the problem at a later stage. You don’t need to understand everything in details when you start!

--

--