SyncWorld / RBM

Restricted Boltzmann Machine implementation in Python for pre-training deep neural networks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Restricted Boltzmann Machines

This is a simple Python implementation of Restricted Boltzmann Machine (RBM). It handles Numpy arrays as well as Scipy sparse matrices. I am using the moment method to update the weights.

To use this module, make sure the following Python libraries are installed:

  • Numpy
  • Scipy
  • PIL
  • Matplotlib

Given an input vector X, the RBM algorithm learns a set of internal values H that would produce the data X.

Sample Features Learned:

The following is an example of Weights rbm library learned from grayscaled Galaxy images from the Kaggle Galaxy Zoo challenge:

Deep Neural Networks

This module can be used to build deep neural networks by training one layer after another.

The following example shows how to train two consecutive layers of a neural network using an arbitrary data vector X:

# import the rbm library
import rbm

# The first step is to initialize the RBM:
r1 = rbm.RBM(<input_size>, <output_size>)

# Next train the RBM layer using the "fit" method:
r1.fit(X, max_epochs=1000)


# Call "activate" to get the output of a given layer
V = r1.activate(X)

# Now, a second layer can be built from the output of the first layer:
r2 = rbm.RBM(V.shape[1], <output_size>)
r2.fit(V, max_epochs=1000)

About

Restricted Boltzmann Machine implementation in Python for pre-training deep neural networks


Languages

Language:Python 100.0%