cbx.scheduler.effective_sample_size#

class cbx.scheduler.effective_sample_size(name='alpha', eta=0.5, maximum=100000.0, solve_max_it=15)[source]#

Bases: param_update

effective sample size scheduler class

This class implements a scheduler for the \(\alpha\)-parameter based on the effective sample size as inroduced in [1]. In every step we try to find \(\alpha\) such that The \(\alpha\)-parameter is updated according to the rule

\[J_{eff}(\alpha) = \frac{\left(\sum_{i=1}^N w_i(\alpha)\right)^2}{\sum_{i=1}^N w_i(\alpha)^2} = \eta N\]

where \(\eta\) is a parameter, \(N\) is the number of particles and \(w_i := \exp(-\alpha f(x_i))\). The above equation is solved via bisection.

Parameters:
  • eta (float, optional) – The parameter \(\eta\) of the scheduler. The default is 0.5.

  • alpha_max (float, optional) – The maximum value of the \(\alpha\)-parameter. The default is 100000.0.

  • factor (float, optional) – The parameter \(r\) of the scheduler. The default is 1.05.

References

update(dyn)[source]#

Updates the object with the given dyn parameter.

Parameters:

dyn – The dynamic of which the parameter should be updated.

Return type:

None