11.6.2.2. Tuning the acceptation rate
As also explained in [Bla17], there are theoretical discussions on the acceptation rate expected, depending on the dimension of the parameter space for instance. As stated in some references (see [GRG+96, RGG+97]) when well initialised, for a single-dimension problem, the acceptation rate could be around 44%, decreasing to about 23% as the dimensionality increases. By default, the exploration parameters are set during the initialisation step (see Initialising the process).
If one wants to change this, a possible approach is to use the setAcceptationRatioRange method
whose prototype is the following
setAcceptationRatioRange(lower, higher)
This prototype takes two arguments: the lower (\(r_{\rm low}\)) and higher (\(r_{\rm hig}\)) bounds. The
idea is simply that after a certain number of estimate (called batch, whose value is set to 100)
the algorithm looks at the acceptation rate achieved (actually this is computed for every
configuration and kept in the final TDataServer object). If the lower and higher bounds have been set, at
the end of a batch, three cases are possible (when the acceptation rate is called \(r_{\rm acc}\)):
\(r_{\rm acc} \le r_{\rm low}\): the acceptation rate is too low compared to the desired range, this means the algorithm is moving too far from the last accepted configuration. As a consequence, the variation range is reduced by 10% to improve convergence.
\(r_{\rm hig} \le r_{\rm acc}\): the acceptation rate is too high compared to the desired range, this means that the algorithm is not exploring the parameter space adequately, focusing only on a well-performing region. As a consequence, the variation range is increased by 10% to encourage exploration.
\(r_{\rm low} \le r_{\rm acc} \le r_{\rm hig}\): the acceptance rate is within the desired range, no adjustment is made.
When the setAcceptationRatioRange method has been called, this process will be called at the end of
every batch. Otherwise, the default behaviour is to leave the acceptation rate unchanged, as no
boundaries have been set.
From the prototype and the behaviour discussed above, two rules must be followed when using this method: \((r_{\rm low}, r_{\rm hig}) \in [0,1]^2\) and \(r_{\rm low} < r_{\rm hig}\).
Finally, the evolution of the acceptance rate can be examined by plotting the relevant information, as discussed in Drawing the acceptation ratio.