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.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트