Solved – Restricted Boltzmann Machine : how is it used in machine learning

deep learningdeep-belief-networksmachine learningneural networksrestricted-boltzmann-machine

Background:

Yes, Restricted Boltzmann Machine (RBM) CAN be used to initiate the weights of a neural network. Also it CAN be used in a "layer-by-layer" way to build a deep belief network (that is, to train a $n$-th layer on the top of $(n-1)$-th layer, and then to train the $n+1$-th layer on the top of the $n$-th layer, rinse and repeat … ).

Regarding how to use RBM, details can be found from the thread of
Good tutorial for Restricted Boltzmann Machines (RBM) where some papers and tutorials can be found.

My question would be :

  • Is RBM really used in either industrial projects or academic projects
  • If yes, how & which projects it is being used ?
  • Any popular library (such as tensorflow, Caffe, Theono, etc) provides RBM module ?

Thanks for sharing. I wish to know whether RBM is really useful in practice.

Best Answer

It is possible to use RBMs to deal with typical problems that arise in data collection (that could be used for example to train a machine learning model). Such problems include imbalanced data sets (in a classification problem), or datasets with missing values (the values of some features are unknown). In the first case it is possible to train an RBM with data from the minority class and use it to generate examples for this class while in the second case it is possible to train a RBM separately for each class and uncover unknown feature values.

Another typical application of RBMs is collaborative filtering (http://dl.acm.org/citation.cfm?id=1273596).

As far as popular libraries are concerned I think deeplearning4j is a good example (http://deeplearning4j.org).

Related Question