Learning to learn with machines in a hands-on manner.

View the Project on GitHub

Learning to “do” machine learning

This project is composed of a series of short, hands-on tutorials designed to provide some insight into the multi-faceted nature of machine learning tasks. These days, it is very easy for almost anyone to fire up a standard library, pass some vector data to a pre-trained model, and have that pre-fab system carry out some predictions or quantization. In many cases, however, the existing models and algorithms may not suit the data/task at hand, at which point it becomes necessary to make your own tools. This requires a more intimate understanding of what is going on “behind the scenes” when standard libraries are being run.

This series of tutorials is designed to impart the key underlying ideas, design principles, and technical procedures involved in developing a “learning machine.” We prioritize hands-on examples, with inline blocks of Python code available throughout, for users to read, modify, and execute themselves. We have also endeavoured to make lucid the correspondence between concepts illustrated using mathematical formulae, and the concrete objects that appear in the code.

Getting your hardware/software set up

Getting data ready

Preparing a model

Designing a learning algorithm

Doing some machine learning

All the main contents of this tutorial make use of data; some of it is simulated, and some of it is real. The real-world data must be acquired from the original sources. These are described and linked to in the description of data sources part of the tutorial, so please read this before starting.

Author and maintainer:
Matthew J. Holland (Osaka University, Institute for Datability Science)