Annealing schedule

Simulated annealing like behavior can be controlled in the options.mcmc.anneal structure. By default annealing is disabled.

Annealing consist of setting the temperature (similar to scaling the noise). A temperature foes not affect the exploration. For temperatures larger than 1, the acceptance ratio increases (the exploration of the Metropolis sampler increases). For temperatures below 1, the acceptance ratio decreases (and hence the exploration of the Metropolis sampler).

The temperature is set to options.mcmc.anneal.T_begin at any iteration before options.mcmc.anneal.i_begin. The temperature is set to options.mcmc.anneal.T_end at any iteration after options.mcmc.anneal.i_end.

In between iteration number options.mcmc.anneal.i_start and options.mcmc.anneal.i_end the temperature changes following either an exponential decay (options.mcmc.anneal.type='exp'), or simple linear interpolation (options.mcmc.anneal.type='linear').

An annealing schedule can be used allow a Metropolis sampler that allow exploration of more of the model space in the beginning of the chain. Recall though that the posterior is not sampled until (at least) the annealing has been ended at iteration, options.mcmc.anneal.i_end, if the options.mcmc.anneal.T_end=1. This can potentially help not to get trapped in a local minimum.

To use this type of annealing, where the annealing stops after 10000 iterations, after which the algorithm performs like a regular Metropolis sampler, use for example

options.mcmc.anneal.i_begin=1; % default, iteration number when annealing begins
options.mcmc.anneal.i_end=10000; %  iteration number when annealing stops

which is equivalent to

options.mcmc.anneal.i_begin=1; % default, iteration number when annealing begins
options.mcmc.anneal.i_end=10000; %  iteration number when annealing stops
options.mcmc.anneal.T_begin=5; % start temperature
options.mcmc.anneal.T_end=1; % end temperature