Python3 implementation of the unsupervised deep learning algorithm Restricted Boltzmann Machine using Pytorch.
The Restricted Boltzmann is a generative and stochastic artificial neural network that is used to learn probability distributions over a set of inputs. It can be used both as an Unsupervised or a Supervised algorithm, depending on the task. It comprises of visible nodes (inputs) and hidden nodes, and uses the contrastive divergence algorithm for training.
It is used as an unsupervised learning algorithm in this task and is implemented using Pytorch, an optimized tensor library for deep learning.
For theory and working of the Restricted Boltzmann Machine, check out this research paper by Asja Fischer and Christian Igel.
The dataset used was taken from the Grouplens website, the Social Computing Research at the University of Minnesota.The data has also been uploaded in the repository under the names ml-1m and ml-100k.
To download the dataset click here