James Wu | 7 Jun 2023
This is an implementation of a simple neural network in Python with NumPy. It is fully customisable — custom weights and biases can be imported and you can choose how many nodes there are in the hidden layer. For this project, I trained it to be able to recognise handwritten digits with the MNIST database. I used PyGame to let the user draw their handwritten digit, which is run through the trained neural network and the values of the output layer are displayed.
My main resource for the concepts behind neural networks is this video by Sebastian Lague. This, along with the machine learning series by 3Blue1Brown has enabled me to implement this neural network from scratch. I thoroughly recommend these resources for anybody who wants to learn the fundamentals of machine learning.
The GitHub repository can be located here. A video showcase can be located here.
Note that I have reimplemented this neural network in C#, and you can find the repository here.