首先需要清楚的是:BO是黑盒优化,这个黑盒我们是不知道的,所以我们需要通过使用“代理模型”不断地逼近真实的黑盒所代表的函数,然后使用“采集函数”采集到更优点
得到训练好的“代理模型”后,就可以结合其他多目标优化算法来求得Pareto 解集了。这是因为BO面对的问题是黑盒优化,这个黑盒的计算成本很大。说白了,BO的“代理模型”就是学习一个输入和输出的关系,它可以替代神经网络预测分子活性的模型等等。
来自:Computer-aided multi-objective optimization in small molecule discovery
一个图了解整个BO的流程是什么样的:
其步骤主要是:
整个BO流程:在贝叶斯优化的每次迭代中,我们使用代理模型来预测未知点的性能,并用采集函数来选择下一个评估点。然后,我们在实际的目标函数(黑盒模型)上评估这个点,更新代理模型,然后再次迭代。这个过程不断重复,直到满足某个停止条件,例如达到一定的迭代次数、时间限制或解的质量。随着更多候选点的评估,代理模型变得越来越精确,使得优化过程逐渐靠近全局最优解(代理模型变得越来越精确,这样就可以更准确地指导采集函数选择下一个有价值的点来评估)。
一些概念:
1、代理模型(Surrogate Model)
代理模型是一个用于近似真实目标函数的统计模型。因为在很多情况下,目标函数可能非常复杂或者计算代价很高,我们不可能去穷举所有可能的输入值来找到最优解。所以,我们需要一个代理模型来模拟目标函数的行为,这样就可以更快地估计函数在未探索点的输出。【因为BO是黑盒优化,并且每一次这个黑盒模型输出一个值所需要的开销很大,所以我们用黑盒模型输出的寥寥几个值去模拟一个黑盒模型所代表的黑盒函数,也就是上述步骤的 f*】
在贝叶斯优化中,常见的代理模型是高斯过程(Gaussian Process, GP)。高斯过程是一种非常灵活的模型,能够估计函数的预测值以及这些预测值的不确定性(即预测值的置信区间)。其他代理模型还可以是随机森林、神经网络等,但高斯过程是最常用的,因为它天然的概率性质很适合贝叶斯优化的框架。
2、采集函数(Acquisition Function)
采集函数定义了在代理模型的预测基础上,如何选择下一个点进行实际的目标函数评估。它是优化过程的驱动力,因为它决定了哪些点值得探索。采集函数通常会在探索(尝试远离已知点以探索更多区域)和利用(选择已知的或预测的最佳点)之间做出权衡。
几种常用的采集函数包括:
- 期望改进(Expected Improvement, EI):选择预期会给出比目前已知最好结果更佳值的点。
- 概率改进(Probability of Improvement, PI):选择有可能提供改进的点。
- 贝叶斯置信区间(Bayesian Confidence Bound, UCB):在预测的均值和标准差之间找到一个权衡点。
这些采集函数帮助决定下一步最有价值的评估点,以便有效地利用有限的资源(如时间、金钱或计算能力)来找到最优解。
3、New Candidate (新候选)
这是指通过优化采集函数得到的新的解或样本点。在贝叶斯优化中,采集函数(如期望改进量、预测熵减少等)用于指导搜索,以确定下一个评估的最佳位置。"新候选"就是这个过程中被认为可能最优的下一个点。
4、Observation (观测)
一旦选择了新候选点,就会在该点上评估目标函数,得到的结果称为"观测"。这个观测值是目标函数在新候选点上的实际输出,它提供了有关优化问题的新信息。
关于贝叶斯优化的视频需要看:
2 BayesOpt vs HyperOpt vs Optuna_哔哩哔哩_bilibili
3 基于BayesOpt实现高斯过程gp优化_哔哩哔哩_bilibili
超参数优化常用的方法在:AutoML | Overview of HPO Tools
首先贝叶斯优化是一种黑盒优化(“黑盒优化”是什么?-CSDN博客)