官方文档 https://github.com/bayesian-optimization/BayesianOptimization/tree/master
以下是机翻:
使用高斯过程的贝叶斯全局优化的纯 Python 实现。
安装:
pip install bayesian-optimization
这是一个基于贝叶斯推理和高斯过程构建的约束全局优化包,试图以尽可能少的迭代次数找到未知函数的最大值。该技术特别适合高成本函数的优化,在勘探和开发之间的平衡很重要的情况下。
贝叶斯优化的工作原理是构建最能描述要优化的函数的函数后验分布(高斯过程)。随着观测数量的增加,后验分布得到改善,算法变得更加确定参数空间中的哪些区域值得探索,哪些区域不值得探索,如下图所示。

当您一遍又一遍地迭代时,算法会考虑其对目标函数的了解,平衡其探索和利用的需求。在每个步骤中,高斯过程都会拟合已知样本(之前探索的点),后验分布与探索策略(例如 UCB(置信上限)或 EI(预期改进))相结合,用于确定下一个应该探索的点。

此过程旨在最大限度地减少找到接近最佳组合的参数组合所需的步骤数。为此,该方法使用代理优化问题(找到采集函数的最大值),尽管仍然是一个难题,但更便宜(在计算意义上)并且可以使用通用工具。因此,贝叶斯优化最适合对要优化的函数进行采样是一项非常昂贵的工作的情况。有关此方法的正确讨论,请参阅参考资料。
贝叶斯优化包的基本浏览
1.指定要优化的函数
这是一个功能优化包,所以第一个也是最重要的成分当然是要优化的功能。
免责声明:我们确切地知道以下函数的输出如何取决于其参数。显然这只是一个示例,您不应该期望在真实场景中了解它。但是,应该清楚的是您不需要这样做。为了使用这个包(更一般地说,这个技术),你所需要的只是一个f接受一组已知参数并输出一个实数的函数。
def black_box_function(x, y):
"""Function with unknown internals we wish to maximize.
Th
Python实现:贝叶斯全局优化与高斯过程

本文介绍了使用Python实现的贝叶斯全局优化库,该库基于高斯过程,适用于寻找高成本函数的最大值。贝叶斯优化通过不断更新函数的后验分布来平衡探索和开发,以最少的迭代次数找到最优解。文章还展示了如何使用该库进行基本操作,包括指定优化函数、设置参数边界、改变边界以及保存和加载优化进度。
最低0.47元/天 解锁文章
6537

被折叠的 条评论
为什么被折叠?



