Optimizers

This page lists all evolutionary strategies currently implemented

Nodal Genetic Algorithm (NGA)

Implementation of the Nodal Genetic Algorithm as implemented by the NNPDF collaboration and which is presented in the NNPDF3.0 release paper.

class evolutionary_keras.optimizers.NGA(*args: Any, **kwargs: Any)

The Nodal Genetic Algorithm (NGA) is similar to the regular GA, but this time a number of nodes (defined by the mutation_rate variable) are selected at random and only the weights and biases corresponding to the selected nodes are mutated by adding normally distributed values with normal distrubtion given by sigma.

Parameters
  • sigma_init (int) – Allows adjusting the original sigma

  • population_size (int) – Number of mutants to be generated per iteration

  • mutation_rate (float) – Mutation rate

Covariance Matrix Adaptation Evolution Strategy (CMA-ES)

Implementation of the Covariance Matrix Adaptation Evolution Strategy as developed by Nokolaus Hansen et al [ref] as pycma.

class evolutionary_keras.optimizers.CMA(*args: Any, **kwargs: Any)

From http://cma.gforge.inria.fr/: “The CMA-ES (Covariance Matrix Adaptation Evolution Strategy) is an evolutionary algorithm for difficult non-linear non-convex black-box optimisation problems in continuous domain.” The work-horse of this class is the cma package developed and maintained by Nikolaus Hansen (see https://pypi.org/project/cma/), this class allows for convenient implementation within the keras environment.

Parameters
  • sigma_init (int) – Allows adjusting the initial sigma

  • population_size (int) – Number of mutants to be generated per iteration

  • target_value (float) – Stops the minimizer if the target loss is achieved

  • max_evaluations (int) – Maximimum total number of mutants tested during optimization