A simple (1 hidden layer) neural network that trains on the included MNIST dataset. Used as an introduction to neural networks/machine learning and armadillo.
Currently a simple cli application that processes the MNIST files, trains on the training files and lastly tests on the test files.
Currently gets to ≈90% accuracy on the training data after 200 iterations after which the gains are minimal — ≈94% at 1000-2000 iterations. Currently gets an accuracy of 93,79% at 1000 iterations on the test data.
Builds on Windows 11 using clang and vs.
TODO
- Visualization of the MNIST images and their respective labels.
- General performance optimizations (Currently plainfully slow)
- Implementation of 2nd hidden layer and other accuracy improvements.
Main network licensed under the MIT License.
Armadillo and OpenBLAS are licensed under Apache-2.0 and BSD-3-Clause, respectively.
DatasetProcessing is a slightly modified version of Baptiste Wicht's mnist. MIT License.
The MNIST dataset is not my property.