Generating random images, by feeding static into the top layer of a neural network trained to recognize/classify handwritten digit images using a Restricted Boltzmann Machine algorithm. A random 30 digit number, (the small top layer), is selected then an attempt is made to reconstruct an image from this 30 digit number.
More Details:
This is a GUI for playing with some neural network weights trained by a Restricted Boltzmann Machine.
The training was done by a C program based on matlab code from Ruslan Salakhutdinov and Geoff Hinton,
available here: http://www.cs.toronto.edu/~hinton/Mat...
Specifically these weights represent an autoencoder (no labels for the input data), equivalent to the matlab program "mnistdeepauto.m" from the link provided above.
The inputs are 60,000 MNIST handwritten digit images (28x28 pixel, greyscale) from: http://yann.lecun.com/exdb/mnist/trai...
The network layer sizes are 1000, 500, 250, 30.
Training consisted of 50 epochs (aka iterations) of pretraining
with the images split into 600 batches of 100 images.
Followed by 200 epochs (aka iterations) of backpropagation
with 60 batches of 1000 images.