In this project, we have used different kinds of images for training and testing purposes. An effort has been made for storing and recalling images with the Hopfield Neural Network Model of auto-associative memory. Images are stored by calculating a corresponding weight matrix. The proposed network consists of several cascaded single-layer Hopfield networks. The Hopfield network was trained and tested against standard images, alphabets, and digits, with noise ranging from 30-70% and got good predictions. We observed that the prediction accuracy depended on the noise level, as well as the number of images trained, due to the limited capacity of the Hopfield network.
We have used neurodynex libraries from python 3 to implement our Hopfield neural network. We have used different kinds of images for our implementation purpose like the standard skimage dataset, digits, alphabets, CIFAR10 and CIFAR100.
From our simulations we have observed that the Hopfield Neural Network worked pretty well for all the above datasets for added noise upto 70%. The accuracies obtained for in all the cases were near to 70% and the reproduced images were fairly good for observing through naked human eyes. However, with higher noise content, the predicted images were inverted, indicating that Hopfield network maintained the structure of the image even in the presence of very high noise. The Numeral dataset images were the only outlier. Although, it can be explained based on the high similarity which is pretty evident in the similarity map obtained in the case.