Design and Implementation of an Artificial Neural Network as the general multi-class classifier for MNIST dataset developed by C++ from scratch and the user is able to set the number of layers and the number of neurons in each layer
Some key element in design:
- Feedforward function: to carry out the layer-wise feedforward calculations
- Train function: use mini-batch SGD and backprogagation algorithm for the training
- Activation function: Sigmoid function
- Loss function: MSE
- Save/load the weights
- Save/load the pre-train my model
- Enhance the ANN by OpenMP