cmaes : A Simple yet Practical Python Library for CMA-ES (2402.01373v2)
Abstract: The covariance matrix adaptation evolution strategy (CMA-ES) has been highly effective in black-box continuous optimization, as demonstrated by its success in both benchmark problems and various real-world applications. To address the need for an accessible yet potent tool in this domain, we developed cmaes, a simple and practical Python library for CMA-ES. cmaes is characterized by its simplicity, offering intuitive use and high code readability. This makes it suitable for quickly using CMA-ES, as well as for educational purposes and seamless integration into other libraries. Despite its simplistic design, cmaes maintains enhanced functionality. It incorporates recent advancements in CMA-ES, such as learning rate adaptation for challenging scenarios, transfer learning, and mixed-integer optimization capabilities. These advanced features are accessible through a user-friendly API, ensuring that cmaes can be easily adopted in practical applications. We regard cmaes as the first choice for a Python CMA-ES library among practitioners. The software is available under the MIT license at https://github.com/CyberAgentAILab/cmaes.
- Optuna: A next-generation hyperparameter optimization framework. In Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2623–2631.
- Comparison-Based Natural Gradient Optimization in High Dimension. In Proceedings of the Genetic and Evolutionary Computation Conference. 373–380.
- Youhei Akimoto and Nikolaus Hansen. 2016. Projection-Based Restricted Covariance Matrix Adaptation for High Dimension. In Proceedings of the Genetic and Evolutionary Computation Conference. 197–204.
- Youhei Akimoto and Nikolaus Hansen. 2020. Diagonal Acceleration for Covariance Matrix Adaptation Evolution Strategies. Evolutionary Computation 28, 3 (2020), 405–435.
- Bidirectional Relation between CMA Evolution Strategies and Natural Evolution Strategies. In International Conference on Parallel Problem Solving from Nature. 154–163.
- Florin Andrei. 2024. Efficient Feature Selection via CMA-ES (Covariance Matrix Adaptation Evolution Strategy). https://towardsdatascience.com/efficient-feature-selection-via-cma-es-covariance-matrix-adaptation-evolution-strategy-ee312bc7b173/. Retrieved 17-January-2024.
- Linearly Convergent Evolution Strategies via Augmented Lagrangian Constraint Handling. In Proceedings of the ACM/SIGEVO Conference on Foundations of Genetic Algorithms. 149–161.
- Anne Auger and Nikolaus Hansen. 2005. A Restart CMA Evolution Strategy With Increasing Population Size. In IEEE Congress on Evolutionary Computation.
- Python Code Quality Authority. 2010. Flake8. https://github.com/PyCQA/flake8/.
- Julian Blank and Kalyanmoy Deb. 2020. Pymoo: Multi-Objective Optimization in Python. IEEE Access 8 (2020), 89497–89509.
- Object-Oriented Programming of Optimizers–Examples in Scilab. Multidisciplinary Design Optimization in Computational Mechanics (2013), 499–538.
- Matthias Feurer and Frank Hutter. 2019. Hyperparameter Optimization. Automated Machine Learning: Methods, Systems, Challenges (2019), 3–33.
- Python Software Foundation. 2003. The Python Package Index. https://pypi.org/.
- Python Software Foundation. 2018. Black. https://github.com/psf/black/.
- Peter I Frazier. 2018. A Tutorial on Bayesian Optimization. arXiv preprint arXiv:1807.02811 (2018).
- A Scalable and Cloud-Native Hyperparameter Tuning System. arXiv preprint arXiv:2006.02085 (2020).
- Google. 2021. Atheris. https://github.com/google/atheris/.
- David Ha and Jürgen Schmidhuber. 2018. World Models. arXiv preprint arXiv:1803.10122 (2018).
- CMA-ES with Margin: Lower-Bounding Marginal Probability for Mixed-Integer Black-Box Optimization. In Proceedings of the Genetic and Evolutionary Computation Conference. 639–647.
- Marginal Probability-Based Integer Handling for CMA-ES Tackling Single-and Multi-Objective Mixed-Integer Black-Box Optimization. ACM Transactions on Evolutionary Learning (2024).
- Nikolaus Hansen. 2009. Benchmarking a BI-Population CMA-ES on the BBOB-2009 Function Testbed. In Proceedings of the Genetic and Evolutionary Computation Conference: Late Breaking Papers. 2389–2396.
- Nikolaus Hansen. 2016. The CMA Evolution Strategy: A Tutorial. arXiv preprint arXiv:1604.00772 (2016).
- Nikolaus Hansen. 2019. A Global Surrogate Assisted CMA-ES. In Proceedings of the Genetic and Evolutionary Computation Conference. 664–672.
- CMA-ES/pycma on Github. Zenodo, DOI:10.5281/zenodo.2559634.
- Nikolaus Hansen and Anne Auger. 2013. Principled Design of Continuous Stochastic Search: From Theory to Practice. In Theory and Principled Methods for the Design of Metaheuristics. 145–180.
- COCO: A Platform for Comparing Continuous Optimizers in a Black-Box Setting. Optimization Methods and Software 36, 1 (2021), 114–144.
- Nikolaus Hansen and Stefan Kern. 2004. Evaluating the CMA Evolution Strategy on Multimodal Test Functions. In International Conference on Parallel Problem Solving from Nature. 282–291.
- Nikolaus Hansen and Andreas Ostermeier. 2001. Completely Derandomized Self-Adaptation in Evolution Strategies. Evolutionary computation 9, 2 (2001), 159–195.
- Array programming with NumPy. Nature 585, 7825 (Sept. 2020), 357–362.
- Modeling Visual Containment for Web Page Layout Optimization. In Computer Graphics Forum, Vol. 40. 33–44.
- Constrained Graphic Layout Generation via Latent Optimization. In Proceedings of the ACM International Conference on Multimedia. 88–96.
- Robert Tjarko Lange. 2023. evosax: JAX-based Evolution Strategies. In Proceedings of the Genetic and Evolutionary Computation Companion. 659–662.
- Hypothesis: A new approach to property-based testing. Journal of Open Source Software 4, 43 (2019), 1891.
- Well Placement Optimization for Carbon Dioxide Capture and Storage via CMA-ES with Mixed Integer Support. In Proceedings of the Genetic and Evolutionary Computation Conference Companion. 1696–1703.
- Hidekazu Miyazawa and Youhei Akimoto. 2017. Effect of the Mean Vector Learning Rate in CMA-ES. In Proceedings of the Genetic and Evolutionary Computation Conference. 721–728.
- Kouhei Nishida and Youhei Akimoto. 2018. PSA-CMA-ES: CMA-ES with Population Size Adaptation. In Proceedings of the Genetic and Evolutionary Computation Conference. 865–872.
- CMA-ES with Learning Rate Adaptation: Can CMA-ES with Default Population Size Solve Multimodal and Noisy Problems?. In Proceedings of the Genetic and Evolutionary Computation Conference. 839–847.
- CMA-ES with Learning Rate Adaptation. arXiv preprint arXiv:2401.15876 (2024).
- Warm Starting CMA-ES for Hyperparameter Optimization. In Proceedings of the AAAI Conference on Artificial Intelligence, Vol. 35. 9188–9196.
- Lennart Oswald Purucker and Joeran Beel. 2023. CMA-ES for Post Hoc Ensembling in AutoML: A Great Success and Salvageable Failure. In AutoML Conference 2023.
- Python. 2014. Mypy. https://github.com/python/mypy/.
- Jeremy Rapin and Olivier Teytaud. 2018. Nevergrad - A gradient-free optimization platform. https://GitHub.com/FacebookResearch/Nevergrad.
- Luis Miguel Rios and Nikolaos V Sahinidis. 2013. Derivative-free optimization: A review of algorithms and comparison of software implementations. Journal of Global Optimization 56, 3 (2013), 1247–1293.
- Raymond Ros and Nikolaus Hansen. 2008. A Simple Modification in CMA-ES Achieving Linear Time and Space Complexity. In International Conference on Parallel Problem Solving from Nature. 296–305.
- Petru Rares Sincraian. 2018. PePy. https://www.pepy.tech/. Retrieved 17-January-2024.
- BBTv2: Towards a Gradient-Free Future with Large Language Models. In Proceedings of the Conference on Empirical Methods in Natural Language Processing. 3916–3930.
- Black-Box Tuning for Language-Model-as-a-Service. In International Conference on Machine Learning. 20841–20855.
- EvoJAX: Hardware-Accelerated Neuroevolution. In Proceedings of the Genetic and Evolutionary Computation Conference Companion. 308–311.
- Optuna Development Team. 2019. kurobako. https://github.com/optuna/kurobako/.
- When to be Discrete: Analyzing Algorithm Performance on Discretized Continuous Problems. In Proceedings of the Genetic and Evolutionary Computation Conference. 856–863.
- (1+1)-CMA-ES with Margin for Discrete and Mixed-Integer Problems. In Proceedings of the Genetic and Evolutionary Computation Conference. 882–890.
- Natural Evolution Strategies. The Journal of Machine Learning Research 15, 1 (2014), 949–980.
- Bayesian Optimization for Materials Design with Mixed Quantitative and Qualitative Variables. Scientific reports 10, 1 (2020), 4924.