evox.algorithms.so.es_variants.guided_es

Module Contents

Classes

GuidedES

The implementation of the Guided-ES algorithm.

API

class evox.algorithms.so.es_variants.guided_es.GuidedES(pop_size: int, center_init: torch.Tensor, subspace_dims: int | None = None, optimizer: Literal[adam] | None = None, sigma: float = 0.03, lr: float = 60, sigma_decay: float = 1.0, sigma_limit: float = 0.01, device: torch.device | None = None)[source]

Bases: evox.core.Algorithm

The implementation of the Guided-ES algorithm.

Reference: Guided evolutionary strategies: Augmenting random search with surrogate gradients (https://arxiv.org/abs/1806.10230)

This code has been inspired by or utilizes the algorithmic implementation from evosax. More information about evosax can be found at the following URL: GitHub Link: https://github.com/RobertTLange/evosax

Initialization

Initialize the Guided-ES algorithm with the given parameters.

Parameters:
  • pop_size – The size of the population.

  • center_init – The initial center of the population. Must be a 1D tensor.

  • optimizer – The optimizer to use. Defaults to None. Currently, only “adam” or None is supported.

  • lr – The learning rate for the optimizer. Defaults to 0.05.

  • sigma – The standard deviation of the noise. Defaults to 0.03.

  • sigma_decay – The decay factor for the standard deviation. Defaults to 1.0.

  • sigma_limit – The minimum value for the standard deviation. Defaults to 0.01.

  • subspace_dims – The dimension of the subspace. Defaults to None.

  • device – The device to use for the tensors. Defaults to None.

step()[source]

Run one step of the Guided-ES algorithm.

The function will sample a population, evaluate their fitness, and then update the center and standard deviation of the algorithm using the sampled population.

record_step()[source]