/Digit-classifier

Feedforward backpropagation neural network classifier for MNIST digit datatset

Primary LanguageC++

Digit Classifier

How to

For app to work you have to download and add the Train and Test .csv files to the same file where .exe file is.

Test and Train sets downloaded from this site: https://pjreddie.com/projects/mnist-in-csv/

Run the application, insert the number of learning iterations and you are good to go.

About

Simple feedforward backpropagation neural network written in C++ (Visual Studio) from scratch. The network is used for classifying digits from MNIST handwritten digit dataset and its use is purely educational.

The code is based on the code from the book Artificial Intelligence - A Systems Approach by M. Tim Jones, chapter 8., page 265 - 275.

Usefull links

(not implemented)Using Adam for weight optimization. https://machinelearningmastery.com/adam-optimization-algorithm-for-deep-learning/

Other optimization algorithms & explanatons: https://towardsdatascience.com/types-of-optimization-algorithms-used-in-neural-networks-and-ways-to-optimize-gradient-95ae5d39529f

Deciding the number of hidden layers and number of neurons in those layers is not a very clear deal. Different sources say different things and methods of calculating said numbers. Fortunately, there is a reasearch article that caluclates number of hidden layers and number of neurons for the MNIST digit dataset that is used in this application, page 10. https://arxiv.org/abs/1808.05979