Restricted Boltzmann machines vs multilayer neural networks I've been wanting to experiment with a neural network for a classification problem that I'm facing. I ran into papers that talk of RBMs. But from what I can understand, they are no different from having a multilayer neural network. Is this accurate?
Moreover I work with R and am not seeing any canned packages for RBMs. I did run into literature that talks about deep learning networks which are basically stacked RBMs but not sure if it is worth the effort to implement them in R.
Would anybody have any pointers? Thanks
 A: In R you can use neuralnet and RSNNS (which provides an interface to the Stuttgart Neural Network Simulator) to fit standard multilayer neural networks, but there are differences to RBM. 
Regarding implementing deep neural nets in R, I think the only worthwhile strategy would be to interface existing FOSS implementations, which is usually a much better solution than just reimplementing things on your own (I never quite understood why everyone needs to reinvent the wheel). R offers a lot of functionality to do this and you can leverage the data handling of R with the speed and ready-to-use aspects of existing solutions. For example, one might interface MDP with the Python/R interfacing capabilities, see e.g., this paper.
Edit: Andrew Landgraf from Statistically Significant provides some R Code for RBM.
A: First of all RBM's are certainly different from normal Neural Nets, and when used properly they achieve much better performance. Also, training a few layers of a RBM, and then using the found weights as a starting point for a Mulitlayer NN often yields better results than simply using a Multilayer NN.
The best pointer I can think of is this course on Coursera, taught by Geoffrey Hinton, who is one of the people responsible for RBMs: 
https://class.coursera.org/neuralnets-2012-001/class/index
the videos on RBMs and Denoising Autoencoders are a valuable learning resource for anyone interested in the topic.
As to implementation in R, I don't know any either, but if you want to implement it, better not use pure R (unless your data is not to big). The training of an RBM takes quite a long time, and if you use pure R instead of R with C it can grow significantly.
