[frames] | no frames]

# Class rough_acceptor_base

source code

Instance Methods

 probe(self, currentpos, stepper) This computes logP() near the current step position, and sees how much that differs from logP() _at_ the current step position. source code
float
 jitter(self) In the acoustic distances paper, it is called $\bar{delta}$. source code

 reset(self) In order to make the overal algorithm asymptotically a Markovian, we need to make sure that (asymptotically) the acceptor function depends only on long-term averages, not on recent history. source code

 __init__(self, probestep, tau, droop) x.__init__(...) initializes x; see help(type(x)) for signature source code
float
 T(self) Returns: A decent approximation to the system temperature. (Inherited from gmisclib.mcmc.acceptor_base) source code
bool
 __call__(self, delta) Accept a step or not? (Inherited from gmisclib.mcmc.acceptor_base) source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

 Instance Variables last_probe A pair of position_base instances showing the position and logP at each end of the most recent probe for a discontinuity. (Inherited from gmisclib.mcmc.acceptor_base) since_last_reset Number of iterations since the last overall MCMC reset.
 Properties Inherited from object: __class__
 Method Details

### probe(self, currentpos, stepper)

source code

This computes logP() near the current step position, and sees how much that differs from logP() _at_ the current step position. That difference is used as a measure of the "roughness" or "randomness" of the function. That extra roughness is added onto the temperature to ensure that the MCMC stepper doesn't get trapped in an unimportant local valley. Essentially, we are making the statement that any differences within the region covered by probestep are unimportant.

Overrides: acceptor_base.probe

### jitter(self)

source code

In the acoustic distances paper, it is called $\bar{delta}$.

Returns: float
An estimate of how rough the function is, on a small scale.
Overrides: acceptor_base.jitter
(inherited documentation)

### reset(self)

source code

In order to make the overal algorithm asymptotically a Markovian, we need to make sure that (asymptotically) the acceptor function depends only on long-term averages, not on recent history. The problem is the jitter measurement, of course. So, one needs to average the jitter over a time longer than the recurrence time, asymptotically. But that makes it horribly unresponsive in the early stages of the optimization when things are rapidly changing. The solution is to pass along resets, so that it can (temporarily) revert to a short averaging time.

Overrides: acceptor_base.reset
(inherited documentation)

### __init__(self, probestep, tau, droop)(Constructor)

source code

x.__init__(...) initializes x; see help(type(x)) for signature

Overrides: object.__init__
(inherited documentation)

 Generated by Epydoc 3.0.1 on Thu Sep 22 04:25:07 2011 http://epydoc.sourceforge.net