Neural networks, from the ground up.
Exploring handwritten digit recognition: from a neural network built with NumPy to multilayer perceptrons and convolutional networks in PyTorch.
The exploration
An educational series exploring how neural networks work, beginning with a simple feed-forward network and progressing to larger models for handwritten digit and letter recognition.
The implementation
The initial implementation uses NumPy for a multilayer perceptron and stochastic gradient descent. Subsequent Jupyter notebooks use PyTorch to explore dropout, batch normalisation, data augmentation and convolutional architectures with MNIST and EMNIST data.
What the project shows
The repository documents the trade-offs between a low-level implementation and a dedicated machine learning framework, along with experiments in model size, training performance and image classification. The README discusses both results and limitations.