Cognition is a neural network I built in C++ for windows without any external libraries. The program supports arbitrarily long networks of feed forward layers, with backpropogation + momentum as the learning algorithm. In the code, you can find a 3 layer classifier network that classifies MNIST digits with over 90% training accuracy, and a 3 layer auto encoder that encodes digits into a 32 vector with 90% training decoding accuracy. The code can be found at https://github.com/Ihaa21/Cognition-NeuralNetwork-.
I began this project after taking a course on neural networks and exposing myself to the state of the art research in the field. Cognition was my attempt at building a neural network from scratch which I built to fully grasp the concepts in neural networks.
The neural networks start with their connections initialized to random values, and using back propagation (the learning rule), the connections of the neurons are adjusted to minimize the error for the particular task they are executing.
We can see this in the auto encoder image on the left where close to initialization time, the network reconstructs very blurry images of the digits. The image on the right is after the network had already trained on the data set and it gets much more accurate at reconstructing the input digits.
No comments:
Post a Comment