Optimizer module

The optimizer module proposes several optimizers that will manage the different submodules and the state dictionary. It is responsible as well for enabling the save or the state after each iteration.

Standard optimizer

The so-called standard optimizers are the most obvious optimizers possible :

  • find an acceptable step
  • search for a minimum in the computed direction
  • decide if the function is minimized or not

For this purpose, two flavour of the Standard optimizer are provided :

  • StandardOptimizer that does exactly what is described above, with the following arguments :
    • criterion is the criterion that will be used
    • step will find the acceptable direction
    • line_search will find the acceptable step length (and will possibly change the direction to find a more suitable one)
    • record is the recording facility that wil be called with the state dictionary as a **keyword
  • StandardOptimizerModifying calls a pre-modifier and a post-modifier before and after each iteration respectively :
    • pre_modifier will be __call__ed with the current set of parameters and will return a new one
    • post_modifier will be __call__ed with the current set of parameters and will return a new one

Usual application of the pre-modifier is adding a small amount of noise whereas application for the post-modifier can be centering the parameters if needed.