CyberAgentAILab/cmaes

Python library for CMA Evolution Strategy.

解决的问题

提供协方差矩阵自适应进化策略(CMA-ES)及其多种专用变体的简单且实用的 Python 实现。旨在解决复杂的优化问题,包括混合变量空间(连续、整数和分类变量)的问题,以及需要安全约束或多目标目标的问题。

工作原理

该库采用「ask-and-tell」接口,优化器提出候选解(ask),用户返回对应的目标函数值(tell)。实现了标准 CMA-ES 算法及多个高级扩展功能:

  • CatCMAwM:在统一框架中处理混合变量优化(连续、整数和分类变量)。
  • COMO-CatCMAwM:协调多个优化器,实现多目标混合变量优化。
  • Safe CMA:使用安全函数和安全种子,在避免超出安全阈值解的同时进行优化。
  • LRA-CMA:自动调整学习率,无需手动调参即可处理多峰或噪声问题。
  • WS-CMA:允许从相似任务中迁移先验知识,在评估预算有限时加速优化过程。

适用人群

  • 从事黑箱优化的研究人员和开发者。
  • 执行超参数优化的机器学习工程师(与 Optuna 集成)。
  • 面对混合变量搜索空间或安全关键型优化任务的工程师。

核心亮点

  • 混合变量支持:针对连续、整数和分类变量的专用变体。
  • 安全感知:包含适用于约束优化的 Safe CMA-ES 变体。
  • 多目标优化:通过 COMO-CatCMAwM 支持双目标混合变量优化。
  • 自动调参:LRA-CMA 减少了对昂贵超参数配置的需求。
  • 集成能力:与 Optuna 框架兼容,支持自动超参数优化。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目