DigitPredict
DigitPredict takes a written digit from the user and guesses which it is. It uses a neural network trained with the MNIST database of handwritten digits. This neural network implementation was based on Michael Nielsen's book, Neural Networks and Deep Learning. However, I used Javascript instead of Python and replaced Numpy with Tensorflow. Tensorflow was only used for matrix/vector operations, as I avoided using the Layers API in order to learn the principles and mathematics behind a basic neural network. This network can make predictions from the MNIST data set with approximately 95% accuracy. NOTE: the network is currently a bit finicky and likes its digits to be centered and take up the full square without going beyond the boundaries.
What I learned from this project:
-
The mathematics of neural networks
-
How to preprocess images with HTML5's canvas element into usable tensors
-
How to use TouchEvents to allow mobile users to draw on a canvas
-
One way to implement a neural network without using a higher level API
View project View code on GitHub