polarcbo.scheduler.beta_eff
- class polarcbo.scheduler.beta_eff(opt, eta=1.0, beta_max=100000.0, factor=1.05)[source]
Bases:
scheduler_base
beta_eff scheduler class
This class implements a scheduler for the \(\beta\)-parameter based on the effective number of particles. The \(\beta\)-parameter is updated according to the rule
\[\begin{split}\beta_{k+1} = \begin{cases} \beta_k \cdot r & \text{if } J_{eff} \geq \eta \cdot J \\ \beta_k / r & \text{otherwise} \end{cases}\end{split}\]where \(r\), \(\eta\) are parameters and \(J\) is the number of particles. The effictive number of particles is defined as
\[J_{eff} = \frac{1}{\sum_{i=1}^J w_i^2}\]where \(w_i\) are the weights of the particles. This was, e.g., employed in [1].
- Parameters:
opt (object) – The optimizer for which the \(\beta\)-parameter should be updated
eta (float, optional) – The parameter \(\eta\) of the scheduler. The default is 1.0.
beta_max (float, optional) – The maximum value of the \(\beta\)-parameter. The default is 100000.0.
factor (float, optional) – The parameter \(r\) of the scheduler. The default is 1.05.
References