Tuesday, January 7, 2014

Trying to learn Hinton's Restricted Boltzmann Machines

OK, years ago I watch the You-Tube video "The Next Generation of Neural Networks".  It's just under an hour and it peaked my interest.  I tried implementing the code he shared on his website using Octave.  I couldn't get it to work.  I ended up dropping it for the time being.  Now that home machines are faster and can handle more data I'm inching towards another attempt at learning this technology.

Hinton's approach is to learn using a Restricted Boltzmann machine.  A quick search popped up Richard Weiss's Machine Leaning and Programming blog and the article Restricted Boltzmann Machines in Python in particular.  The follow up article pointed to gethub.  All of this looked promising so I downloaded it and ran it.  It printed several numbers then quit.  It wasn't quite done. 

Richard Weiss took nearly a year off from his blog, I know the feeling, then last month posted one new article.  I like the clean presentation of his blog.  I'm not sure how to make blogger do some of this stuff.  When I copy and paste the HTML I don't get the same results.  I don't know, blogger must be doing or not doing something WordPress doesn't or does do.  I'm not ready to move to a better blog platform.

Anyway, The code may be useful.  I'll see what I can adapt from it then report.  I'm not sure I want to create a project on either gethub or sourceforge unless I can presents something pretty interesting, especially when there are people out there who've produced and shared some pretty good code.

Richard's code is attempting to demonstrate the ability of a Restricted Boltzmann Machine, RBM, to group texts about matrices and movies into different two dimensional vectors as indicated in Hinton's video.  The routine go() tries to plot magnitude_mat but it's just an 7 by 4 array of zeros.  Something got lost in the translation.  Maybe his training data was too small.

No comments:

Post a Comment