When using the persistent CD learning algorithm for Restricted Bolzmann Machines, we start our Gibbs sampling chain in the first iteration at a data point, but contrary to normal CD, in following iterations we don't start over our chain. Instead we start where the Gibbs sampling chain in the previous iteration ended.

In the normal CD algorithm each iteration evaluates a mini batch of data points and computes the Gibbs sampling chains starting from those data points themselves.

In persistent CD, should we keep Gibbs sampling chains for each data point? Or should we keep also a mini batch of Gibbs sampling chains, which started at data points which aren't currently evaluated in the current iteration?

It seems to me that keeping Gibbs sampling chains for each data point will be too cumbersome, but on the other hand it seems inadequate to compare the signals of the current sample with the signals after a long Gibbs chain which didn't start at the current sample.

| cite | improve this question | | | | |
  • $\begingroup$ @subha It does seem counter-intuitive, but it is actually quite clear it should be a single chain which is used for different input data. Also take a look at deeplearning.net/tutorial/rbm.html . There it is stated that what is done is "not restarting a chain for each observed example". deeplearning.net has a lot of great examples and simple explanation. $\endgroup$ – Angelorf Aug 13 '14 at 8:49
  • $\begingroup$ @Angelorf could you please review these instructions? i am using batch version. so for the 1st batch i find v0-h0-v1-h1.now we find +ve and -ve samples and update gradient. Then for next batch, gibbs chain starts at h1 of first batch inplace of h0 of second batch. Am i right? $\endgroup$ – subha Aug 18 '14 at 1:01
  • $\begingroup$ @subha I think that is right, but that is exactly what I am asking in the original post. $\endgroup$ – Angelorf Aug 21 '14 at 13:29
  • $\begingroup$ When i do like that,how will it reconstruct the input data proper? I have tried, it is not reconstructing data proper. $\endgroup$ – subha Aug 22 '14 at 4:00

The original paper describing this can be found here

In section 4.4, they discuss the ways in which the algorithm can be implemented. The best implementation that they discovered initially was to not reset any Markov Chains, to do one full Gibbs update on each Markov Chain for each gradient estimate, and to use a number of Markov Chains equal to the number of training data points in a mini-batch.

Section 3 might give you some intuition about the key idea behind PCD.

| cite | improve this answer | | | | |

As chairbender states, they do not reset the chain for the part of the negative gradient.

What is the intuition behind this? As the original paper states, for RBMs, you do not have the reset the chain because there is only one distribution you need to sample from, as opposed a distribution per point (which you might need for belief networks). You are correct that for some models that you might need to remember the chain per point.

For Contrastive Methods: The negative term in the update is over an expectation or sample according to some distribution, but RBMs only have one distribution (post-burn in).

| cite | improve this answer | | | | |

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.