Now, Boltzmann machines are energy-based undirected networks, meaning there are no forward computations. Instead, for each input configuration $x$, a scalar energy is calculated to asses this configuration. The higher the energy, the less likely for $x$ to be sampled from the target distribution.
The probability distribution is defined through the energy function by summing over all possible states of the hidden part $h$.
If I understand correctly, the hidden units are added to capture higher-order interactions, which offers more capacity to the model.
So, how do we calculate the values of these hidden units? Or do we not explicitly compute these values and instead approximate the marginal "free energy" (which is the negative log of the sum over all possible states of $h$)?