CyberAgentAILab/cmaes

Python library for CMA Evolution Strategy.

What it solves

It provides a simple and practical Python implementation of the Covariance Matrix Adaptation Evolution Strategy (CMA-ES) and its various specialized variants. It is designed to solve complex optimization problems, including those with mixed-variable spaces (continuous, integer, and categorical) and those requiring safety constraints or multi-objective goals.

How it works

The library uses an "ask-and-tell" interface where the optimizer suggests candidate solutions (ask) and the user provides the resulting objective values (tell). It implements the standard CMA-ES algorithm and several advanced extensions:

  • CatCMAwM: Handles mixed-variable optimization (continuous, integer, and categorical) in a unified framework.
  • COMO-CatCMAwM: Coordinates multiple optimizers to perform multi-objective mixed-variable optimization.
  • Safe CMA: Uses safety functions and safe seeds to optimize while avoiding solutions that exceed safety thresholds.
  • LRA-CMA: Automatically adjusts the learning rate to handle multimodal or noisy problems without manual hyperparameter tuning.
  • WS-CMA: Allows transferring prior knowledge from similar tasks to speed up optimization when evaluation budgets are limited.

Who it’s for

  • Researchers and developers working on black-box optimization.
  • Machine learning engineers performing hyperparameter optimization (it integrates with Optuna).
  • Engineers dealing with mixed-variable search spaces or safety-critical optimization tasks.

Highlights

  • Mixed-Variable Support: Specialized variants for continuous, integer, and categorical variables.
  • Safety-Aware: Includes a Safe CMA-ES variant for constrained optimization.
  • Multi-Objective: Supports two-objective mixed-variable optimization via COMO-CatCMAwM.
  • Auto-Tuning: LRA-CMA reduces the need for expensive hyperparameter configuration.
  • Integration: Compatible with the Optuna framework for automatic hyperparameter optimization.

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案