Before getting started with Machine Learning: Online tutorials

This year I’m teaching a module on Applied Machine Learning with over a hundred students. The students come from very different backgrounds and may not be well prepared in advance to successfully complete this module. To get all students up to speed and level the field, I have compiled a list of online resources on three of the areas which are keys to become a successful Machine Learning practitioner: programming (Python), basic Mathematics and the usage of the command-line and virtual environments. In general, all these online courses and tutorials are suited for those interested in data science and machine learning. Moreover, most of these tutorials are short (i.e. they can be successfully completed in no more than a couple of weeks).

Programming (Python)

The main programming language for machine learning is Python. The advantage of Python with respect to other languages is twofold: it is easy to use for beginners and it contains many suitable machine learning libraries (e.g. scikit-learn, Keras or PyTorch) which can make your job much easier.

Basic Mathematics

Machine learning is all about Mathematics. The good news is that you don’t need to be an expert in maths to be a competent machine learning practitioner. However, you should at least have a general knowledge of some areas (particularly linear algebra and probability/statistics) to be a successful one. Plus, it will also make your learning process much smoother.

Linear algebra

Probability and statistics

Terminal and Virtual Environments

While it is not crucial to dominate your operating system, it is very useful to be able to use the command line (terminal) to quickly inspect data files and perform basic operations on them. The following tutorials are based on Linux, which is the most widely used operating system for machine learning. Similarly, working with virtual environments is not essential but enable you to keep track of the versions and dependencies required by different projects. Also, depending on your working conditions and administrator rights, you may be forced to use virtual environments in your projects.

Terminal (Linux) and others

Virtual environments (Python)

This list is by no means exhaustive, and I would appreciate any suggestion of similar online tutorials in the comments!

Mathematician, AI/NLP researcher and chess International Master.