Skip to content

Python implementation of Restricted Boltzmann Machine (RBM). And an example on MNIST dataset.

Notifications You must be signed in to change notification settings

mr-easy/Restricted-Boltzmann-Machine

Repository files navigation

Restricted-Boltzmann-Machine

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.

Requirements

  • Numpy
  • Scipy
  • Matplotlib (for MNIST example)
  • time (for MNIST example)
  • struct (for MNIST example)

Results on MNIST

  • 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

Todo

  • (Block) Gibbs sampling - take average instead of taking single value.
  • Persistent Contrastive Divergence.
  • Fast PCD.

References

[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

About

Python implementation of Restricted Boltzmann Machine (RBM). And an example on MNIST dataset.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published