贝叶斯优化算法(BOA)
贝叶斯优化算法(BOA)
名称
贝叶斯优化算法(Bayesian Optimization Algorithm, BOA),贝叶斯优化
分类
贝叶斯优化是一种全局优化技术,属于计算智能领域,并与高斯过程优化和高效全局优化密切相关。它是一种无导数、基于模型的优化方法,特别适用于求值代价高昂的黑盒目标函数。
- 计算智能
- 随机优化
- 无导数优化
- 基于模型的优化
- 贝叶斯优化
- 高斯过程优化
- 高效全局优化
- 贝叶斯优化
- 基于模型的优化
- 无导数优化
- 随机优化
策略
贝叶斯优化通过构建目标函数的概率代理模型来开展优化,通常采用高斯过程,并在获得新观测后对该模型进行序贯更新。下一次评估的采样点通过最大化采集函数来确定,该函数在探索(对高不确定性区域进行采样)与开发(对可能优于当前最优观测值的区域进行采样)之间进行权衡。
该算法首先利用一组初始观测来构建代理模型。随后,通过最大化采集函数确定下一个待评估点。获得新的观测结果后,再对代理模型进行更新,如此反复,直到满足预设的终止条件,例如达到最大迭代次数或取得令人满意的目标函数值。
贝叶斯优化在目标函数求值代价较高的情形下尤为有效,因为其目标是在尽可能少的函数评估次数下找到全局最优解。代理模型能够高效地探索搜索空间,而采集函数则引导搜索朝着更有前景的区域推进。
代理模型
代理模型是对目标函数的概率近似,用于指导搜索过程。在贝叶斯优化中,高斯过程(Gaussian Processes, GPs)因其灵活性以及对不确定性的刻画能力而常被用作代理模型。高斯过程定义了函数空间上的先验分布,并随着新观测的加入不断更新,得到反映模型对目标函数认知不确定性的后验分布。
采集函数
采集函数是一种基于代理模型来决定下一评估点的准则。它旨在平衡探索与开发之间的权衡,并尽可能提高目标函数的期望改进值。常见的采集函数包括期望改进(Expected Improvement, EI)、上置信界(Upper Confidence Bound, UCB)和改进概率(Probability of Improvement, PI)。采集函数的具体选择取决于问题本身及对探索—开发平衡的需求。
流程
数据结构:
X:输入观测点集合y:对应的目标函数值集合M:代理模型(通常为高斯过程)α:采集函数
参数:
- 初始观测数(
n_init):初始观测数量 - 迭代次数(
n_iter):优化迭代次数 xi:探索—开发权衡参数
步骤:
- 初始化:
- 通过在输入空间中随机采样生成
n_init个初始观测点 - 计算这些初始点的目标函数值,并将结果存储到
X和y中
- 通过在输入空间中随机采样生成
- 利用当前观测
X和y更新代理模型M - 对于
i= 1 到n_iter:- 最大化采集函数
α以确定下一个待评估点x_next:x_next= argmax(α(x)) - 计算
x_next处的目标函数值,并将结果追加到X和y中 - 用新的观测结果更新代理模型
M
- 最大化采集函数
- 返回当前观测到的最优点及其对应的目标函数值
注意事项
优点:
- 对求值代价高昂的目标函数具有较高效率,因为它能够尽量减少寻找全局最优解所需的函数评估次数
- 能够处理黑盒优化问题,即目标函数未知或不可导的情形
- 兼顾探索与开发,有助于高效搜索全局最优解
缺点:
- 算法性能依赖于代理模型和采集函数的具体选择
- 拟合代理模型以及最大化采集函数的计算复杂度可能较高,尤其是在高维问题中
- 对于高度多峰或非光滑的目标函数,算法可能表现欠佳,因为代理模型可能无法准确刻画函数的复杂性
启发式建议
初始化
- 若已知问题领域的先验知识,可利用其指导初始采样
- 若缺乏先验知识,可采用随机采样或空间填充设计(如拉丁超立方采样)来生成初始观测点
代理模型
- 高斯过程因其灵活性和不确定性建模能力,是代理模型的常用选择
- 可考虑在高斯过程中使用 Matérn 核函数,因为相较于标准平方指数核,它对非光滑函数的处理能力更强
- 可采用极大似然估计或交叉验证等方法对代理模型的超参数进行优化
采集函数
- 期望改进(EI)是较为常用的采集函数,因为它能够较好地平衡探索与开发
- 上置信界(UCB)更适合偏重探索的搜索,而改进概率(PI)更适合偏重开发的搜索
- 可根据问题特性及所需平衡程度调整探索—开发权衡参数
xi
终止条件
- 应根据可用计算预算和问题复杂度设定最大迭代次数
n_iter - 可考虑基于代理模型收敛情况或目标函数改进幅度设置提前终止准则
- 可设定最小改进阈值,以避免将评估预算浪费在微小改进上
并行化
- 贝叶斯优化可以通过在每次迭代中同时评估多个点来实现并行化
- 可考虑使用批量采集函数(如 qExpected Improvement, qEI)来选择多个并行评估点
- 在进入下一轮迭代前,应确保代理模型已经利用所有新观测完成更新