Skip to content

Latest commit

 

History

History
44 lines (32 loc) · 1.39 KB

File metadata and controls

44 lines (32 loc) · 1.39 KB

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