Member-only story
Recognize Handwriting Using an Artificial Neural Network
Recognize digits with a neural network written in Julia

A typical introduction tutorial to neural networks involves doing handwriting recognition of digits from 0 to 9 using the MNIST database over handwriting.

This involves the recognition of single, individual digits. You can imagine something like this being used to scan giros or cheques where the account numbers and the amounts needed to transfer are written in clearly-defined boxes.

In this tutorial, we’re going to cover how this is done using the Julia programming language and the Machine Learning library called Flux.
Why Flux and Julia?
Now, why would you want to use Flux and Julia over more well-known libraries such as Torch, PyTorch, Keras or TensorFlow 2.0?
A great reason is that you can learn Flux much faster — it gives better performance and it has more future potential. One reason for this is that Flux achieves a lot while still being a tiny library — it can be so small is because so because much of what it does is provided by the Julia programming language itself.
For instance, if you look at the Gorgonia ML library for the Go programming language you’ll see some clues. It shows explicitly how other machine learning libraries require building up an expression graph that needs to be executed and differentiated. In Flux, this graph is Julia itself. Julia is very similar to LISP in that Julia code can be easily represented as data structures, which can be modified and evaluated.
Introduction to Machine Learning
If you are entirely new to machine learning you can follow along with this tutorial but not everything may make sense. In that case, you can look at some of my previous articles on Medium which may explain some of your stumbling blocks: