I've been playing around with RBMs recently, and while I've gotten them to become good generative models of datasets (i.e. they generate only plausible datapoints), they don't seem to capture the relative probability with which points occur in the dataset.
For example, imagine I train my model on a collection of images, a third of which are cats and two thirds of which are dogs. When I generate from my model (e.g. by gibbs sampling) I only generate plausible images of cats and dogs (yay!), but I don't generate twice as many dogs as cats (boo!).
Is this an inherent deficit of rbms, or am doing something wrong? If the former, then what is a good model for capturing this frequency structure?