gfo-project/Gradient-Free-Optimizers

Lightweight optimization with local, global, population-based and sequential techniques across mixed search spaces

解决的问题

Gradient-Free-Optimizers (GFO) 提供了一种统一的方法来优化梯度不可用或不切实际计算的“黑盒”函数。它专为机器学习模型的超参数调优、仿真优化和工程设计等任务而设计,在这些任务中,输入和输出之间的关系没有通过导数进行数学定义。

工作原理

该库为 23 种不同的优化算法提供了一致的 API,这些算法分为局部搜索、全局搜索、基于种群和基于序列模型的技术(如贝叶斯优化)。用户定义一个要最大化的目标函数以及一个可以混合连续范围、离散网格、分类选择和 SciPy 分布的搜索空间。然后,优化器提出参数,评估目标函数,并进行迭代以找到最佳分数。

适用人群

需要在不依赖基于梯度方法的情况下调整超参数或优化复杂系统的数据科学家、机器学习工程师和研究人员。由于其依赖占用极小(仅需 NumPy 和 pandas),它也适用于在最小化环境、容器或嵌入式系统中工作的开发者。

核心亮点

  • 统一的 API:只需一行代码即可在 23 种不同的算法(例如 Hill Climbing、Bayesian、Particle Swarm)之间切换。
  • 混合搜索空间:支持在一次搜索中组合连续、离散、分类和基于分布的维度。
  • 内置缓存:内存系统可防止对昂贵的目标函数进行冗余评估。
  • 灵活控制:包含用于手动循环控制的“Ask/Tell”接口、提前停止标准以及用于避免无效区域的约束支持。
  • 轻量级:核心依赖极少,易于作为其他工具的后端进行集成。

相关

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