Solved – Output of Restricted Boltzmann Machine energy function

deep learningrestricted-boltzmann-machine

I'm just starting to learn about Restricted Boltzmann Machines (RBMs). So far I understand that they try to predict/output the inputs that are fed to them. If the RBM is trained on input where each record is a vector, then the RBM should likewise learn to output a vector.

While reading about RBMs, I keep coming across references to an "energy function", which I don't really understand, but my guess is that it represents the formula of a trained RBM. While reading through Geoffrey Hinton's tutorial I came across the following:

enter image description here

What confuses me about this paragraph is that it seems to suggest that the energy function outputs a scalar not a vector, which is inconsistent with my understanding above. Does it not actually output a scalar? Does an energy function not actually represent the architecture of a trained RBM and the means of calculating an output/prediction? Also, the article goes on to state that the variables a and b correspond to biases. If they're actually biases, why are they being multiplied with the vectors v and h? Aren't biases always supposed to be added only?

Best Answer

The Restricted Boltzmann Machine is an Energy - based model. The energy function produces a scalar value which basically corresponds to the configuration of the model and it is an indicator of the probability of the model being in that configuration. If the model is configured to favor low energy, then configurations leading to low energy will have a higher probability. Learning the model means looking for configurations that modify the shape of the energy function to drive to low energy configurations. As far as the biases go you basically calculate the dot product between the biases and the corresponding units (visible or hidden) to calculate their contribution to the energy function.