37///\brief Implements Block Gibbs Sampling related transition operators for various temperatures.
38///
39/// The operator generates transitions from the current state of the neurons of an RBM
40/// to a new one and thus can be used to produce a Markov chain.
41/// The Gibbs Operator works by computing the conditional distribution of the hidden given the visible p(h|v) (or
42/// vice versa) and than samples the new hidden (or visible) state from it.
43///
44/// As an interesting twist, this operator can also be used to implement Flip-The-State sampling using two values alpha_visible
45/// and alpha_hidden both being between 0 and 1 (inclusively). for alpha_visible=alpha_hidden=0, pure gibbs sampling is performed.
46/// if for one of the layers, the value is not 0 a mixture of gibbs and flip-the-state sampling is performed. 1 equals to pure flip-the state
47/// sampling.
48/// The trick of this sampler is that it takes the previous state into account while sampling. If the current state has a low probability,
49/// the sampler jumps deterministically in another state with higher probability. This is counterbalanced by having a higher chance to jump away from
135 /// \brief Applies the Gibbs operator a number of times to a given sample.
136 ///
137 /// Performs one complete step for a sample by sampling first the hidden, than the visible and computing the probability of a hidden given the visible unit
138 /// That is, Given a State (v,h), computes p(v|h),draws v and then computes p(h|v) and draws h . this is repeated several times
149 ///\brief Creates hidden/visible sample pairs from the states of the visible neurons, i.e. sets the visible units to the given states and samples hidden states based on the states of the visible units.
150 /// This can directly be used to calculate the gradient.
151 ///
152 /// @param hiddenBatch the batch of hidden samples to be created
153 /// @param visibleBatch the batch of visible samples to be created
154 /// @param states the states of the visible neurons in the sample
155 /// @param beta the vector of inverse temperatures
166 ///\brief Creates hidden/visible sample pairs from the states of the visible neurons, i.e. sets the visible units to the given states and samples hidden states based on the states of the visible units.
167 /// This can directly be used to calculate the gradient.
168 ///
169 /// @param hiddenBatch the batch of hidden samples to be created
170 /// @param visibleBatch the batch of visible samples to be created
171 /// @param states the states of the visible neurons in the sample