Objective: Build a neural network from scratch for the MNIST database.
Built from scratch with numpy Optimized neural network with 98% precision after 20 epochs of training Major changes from v1: Switched from batch gradient descent to mini-batch gradient descent Added momentum to descent algo Better initialization of weights Sample digits from the MNIST database (left) and a simple visual of how the neural network trains on them (right).
(Ali, 2024) contains python code for both v1 and v2 of the neural network.
Helpful Resources
References 2024 MNIST Network From Scratch - Github Repository
Yusuf Ali
2024
@article { mnistAli ,
title = {MNIST Network From Scratch - Github Repository} ,
author = {Ali, Yusuf} ,
url = {https://github.com/yusiali/mnistNetwork} ,
year = {2024} ,
}
2018 Building a Neural Network from Scratch
Johnathan Weisberg
2018
@article { mnistWeisberg ,
title = {{Building a Neural Network from Scratch}} ,
author = {Weisberg, Johnathan} ,
year = {2018} ,
url = {https://jonathanweisberg.org/post/A%20Neural%20Network%20from%20Scratch%20-%20Part%201/}
}
1994 The MNIST Database of handwritten digits
Y. LeCunn, C. Cortes, and C. J.C. Burges
1994
The MNIST database of handwritten digits, available from this page, has a training set of 60,000 examples, and a test set of 10,000 examples. It is a subset of a larger set available from NIST. The digits have been size-normalized and centered in a fixed-size image.
@article { mnistData ,
title = {The MNIST Database of handwritten digits} ,
author = {LeCunn, Y. and Cortes, C. and J.C. Burges, C.} ,
year = {1994} ,
url = {https://yann.lecun.com/exdb/mnist/} ,
}