Skip to content
Machine Learning - a reading list
Branch: master
Clone or download
Latest commit 9369e65 Mar 22, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
workshop Update Mar 22, 2019

HR CMGT Machine Learning





Traditionally, developers write sets of instructions, also known as a computer program, to solve complex problems. This traditional approach has its limitations, especially when we want the computer to solve human tasks, such as recognising a drawing, or talking on the phone.

By using a Machine Learning algorithm, the computer can learn to recognise patterns in complex data all by itself. A machine learning algorithm can reveal patterns that would otherwise not have been found. The computer can learn to make decisions and to improve itself.


Using an algorithm to train a model to recognise cat drawings


A model can compare new drawings to cats, and it can even imagine new cat drawings


Algorithms are used to find patterns in complex data. Surprisingly, the algorithm itself does not have to be all that complex. You can start a machine learning project just by using the good old Pythagorean theorem:


Our first Machine Learning algorithm: a2+b2=c2

By looking at your data and defining the goal of your project, you will have to decide on an algorithm that suits your purposes the best.


Simpler algorithms work faster, and allow for more introspection. As a developer you will have a lot of control on its output.

Neural networks can analyse very complex data, and can learn from itself. A neural net may take a lot of time to train, and will create a sort of "black box", making it less transparent to understand how it makes decisions.



In the Workshop you will learn the basics of using existing libraries and preparing data to train a neural network.

Below you will find links to popular libraries with tutorials, existing kits, books and demo projects.



Javascript allows us to publish our projects online, and provides easy ways to visualise our results using html and css.

Brain JS

BrainJS is a library that allows you to instantiate a Neural Network, train it and run a classification in just a few lines of code.

Tensorflow JS

The Javascript version of Google TensorFlow. TensorflowJS has lots of tutorials, and add-on libraries that make working with it even easier.


ML5 makes TensorFlowJS more accessible by supplying readymade examples with clear documentation for the most common Machine Learning projects, such as image classification, pose recogition, and text generation.


Pose Estimation using the Webcam with ML5 and TensorflowJS

Magenta JS


A perceptron is a Neural Network that has only one cell. You can code it by hand in just a few lines of code. This will help you to understand how one Neural Network cell calculates weights.

Synaptic JS

Synaptic is another Neural Network Library for Javascript



Python is used by data scientists and in many Machine Learning courses online. Python requires a bit more setup, especially when you want to visualise results graphically. Python can run on a Raspberry Pi!

Science Kit Learn

Science Kit Learn provides Python libraries, readymade datasets and algorithms for testing, and a visualisation tool. Get started running python with this tutorial:


Tensorflow is Google's Machine Learning API for Python


Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow



Wekinator is a GUI that can apply Machine Learning algorithms to Processing and Arduino sensor data.


Image recognition

Natural Language Processing

Understanding the meaning of written text

Speech Recognition

Converting spoken audio into text

Pose Estimation

Tools and services


Reading list



Demos and projects


Tensorflow Playground

Open Source Data Sets

Data to create machine learning models


You can’t perform that action at this time.