I am trying to wrap my head around Geoff Hinton's RBM tutoral on http://www.cs.toronto.edu/~hinton/absps/guideTR.pdf

I understand that the log gradient update rule requires us to take an unbiased sample from the data (e.g. a random training sample) and an unbiased sample from the model. To obtain an unbiased sample from the model - one can perform Gibbs sampling until convergence.

Here i am getting confused. If one performs Gibbs sampling until convergence - has one not already found the equilibrium of the RBM, and hence the update becomes irrelevant? Please point out my lack of understanding and conceptual error.


Assume you initialize an RBM with random weights. This RBM will now already represent some random probability distribution. The expectation $\langle v_i h_j \rangle_{\text{model}}$ of this random model can be estimated by running the Gibbs sampling until convergence. This "equilibrium of the RBM" as you call it, does not depend on the data yet, so it is just random. The goal of your training is to change the weights and biases in a way, that this $\langle v_i h_j \rangle_{\text{model}}$ fits to your data, i.e. $\langle v_i h_j \rangle_{\text{data}}$.

To do that, you make many small updates, which shift $\langle v_i h_j \rangle_{\text{model}}$ more and more towards $\langle v_i h_j \rangle_{\text{data}}$. This is exactly the update rule

$\Delta w_{ij} = \epsilon (\langle v_i h_j \rangle_{\text{data}}-\langle v_i h_j \rangle_{\text{model}})$

Now, the point I think you misunderstood: for each update (training step), you need to run the Gibbs chain to its equilibrium to get the current $\langle v_i h_j \rangle_{\text{model}}$. Then you update and get a better model. You repeat this, until your model fits the data well enough.

Of course you can't run this Gibbs chain until infinity, so Hinton proposed to run the chain for only one step.

Does this help to clarify?

  • $\begingroup$ This is very helpful!. To test my understanding: If i would have a simple RBM (5 visible units, 3 hidden units). Would i get $\langle v_i h_j \rangle_{\text{model}}$ if i would generate a state for the 3 hidden units (based on random weights) using e.g. a visible data vector [0,0,1,1,0], and then generate based on these hidden units a new state for the 5 visible units (using the same weights), e.g. [1,0,1,1,0] and so on? Would this converge to a stable equilibrium state for the visible state (e.g. converge on e.g.[1,0,0,1,1] or only to a probability distribution across 32 possible states? $\endgroup$ – user1885116 Dec 16 '15 at 10:57
  • $\begingroup$ This will converge to the probability distribution across the states. You always randomly sample to get a state, right? So even if it converges to a probability distribution like [1, 0, 0.001, 1, 1], there is always the possibility (though the probability is very very small), that it in one step of the Gibbs sampling, the sampled state will become [1,0,1,1,1]. $\endgroup$ – hbaderts Dec 16 '15 at 11:08
  • $\begingroup$ Very helpful. Thinking more about this - i guess that [1,0,0.001,1,1] is, technically, not the probability distribution, but the expected value of the probability distribution across the 32 binary vectors of length 5? $\endgroup$ – user1885116 Dec 16 '15 at 12:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.