Python implementation of Restricted Boltzmann Machine (RBM). And an example on MNIST dataset. Implementation code is in RBM.py and it's use for MNIST data is in the notebook rbm_mnist_example.ipynb.
RBM code is very well documented for using it for your data.
- Numpy
- Scipy
- Matplotlib (for MNIST example)
- time (for MNIST example)
- struct (for MNIST example)
-
100 Hidden units
-
Error plot for 20 epochs
-
Reconstruction of few selected images as the model gets trained
-
Learned weights of the RBM over time
- (Block) Gibbs sampling - take average instead of taking single value.
- Persistent Contrastive Divergence.
- Fast PCD.
[1] An Introduction to Restricted Boltzmann Machines - Asja Fischer and Christian Igel
[2] Training Restricted Boltzmann Machines: An Introduction - Asja Fischer and Christian Igel
[3] A Practical Guide to Training Restricted Boltzmann Machines - Geoffrey Hinton