Multilayer Perceptron (MLP) from scratch

A fully connected Multilayer Perceptron (MLP) Neural Network was created from scratch as a project for the university course «Neural Network & Deep Learning». This Neural Network is written in Python and uses only NumPy for its creation and training. The main goal of this project is to recognize the number that is shown on images that contain numbers from 0 to 9 (MNIST dataset).

During training many neural networks were created, with different numbers of hidden layers and neurons (on each layer) and for different learning rates. During those tests, the NN had the best performance with 1 hidden layer with 400 neurons and learning rate= 0.1. After 40 epochs, the test set loss was 0.004 and accuracy was 98.22%.