Let's consider a trained Restricted Boltzmann Machine model. It was trained to maximize P(v). Since it's a generative model, how can I get a probability of an input vector which it is supposed to model? I know for a fact that I can determine one using the following equation, but it is the same as in Boltzmann Machines. Does "restriction" only improve learning?

$$
P(v) = \frac{\sum_{h} e^{-E(v,h)}}{\sum_{u}\sum_{g}e^{-E(u,g)}}
$$

My first thought for **approximating** the numerator was to clamp visible units, see how the hidden units are changing and record the most common value of E. When the visible units are clamped I am at equilibrium. I can do similiar for the denominator, but is there any way around?

EDIT: I found expression for a free energy in Practical Guide, but don't understand. May someone explain?