批量优化与约束优化在贝叶斯优化中的应用
立即解锁
发布时间: 2025-08-31 01:48:31 阅读量: 7 订阅数: 23 AIGC 

# 批量优化与约束优化在贝叶斯优化中的应用
## 1. 批量贝叶斯优化策略运行
### 1.1 具体操作步骤
在目标函数上运行所学的每个批量贝叶斯优化(BayesOpt)策略,具体步骤如下:
1. **初始化训练集**:每个实验应从随机选择的函数评估作为训练集开始。
2. **记录最佳值**:记录整个搜索过程中找到的最佳值。
3. **使用Sobol序列**:对于汤普森采样(TS)和最大熵搜索(MES),使用5000点的Sobol序列。
4. **减轻MES计算负担**:在高维问题中运行MES计算成本较高,可通过限制循环优化的周期数来减轻负担。例如,要在五个周期后终止MES获取分数的优化,可以将`cyclic_options={"maxiter": 5}`传递给辅助函数`optimize_acqf_cyclic()`。
### 1.2 优化进度可视化
绘制已运行的BayesOpt策略的优化进度,并观察其性能。每个策略应有一条曲线,显示作为查询次数函数的平均最佳观察点以及标准误差。
## 2. 批量优化的特点与策略扩展
### 2.1 批量优化的优势
在现实世界的许多黑盒优化场景中,允许同时并行进行多个实验(函数评估)。利用这种并行性,我们可以在BayesOpt中进行更多实验,并有可能实现更好的性能。
### 2.2 批量设置的要求
在批量BayesOpt设置的每次迭代中,选择一批查询,并在这些查询处评估目标函数。这要求所使用的BayesOpt策略能够根据查询在帮助我们定位全局最优值方面的效用对一批查询进行评分。
### 2.3 策略扩展的挑战与方法
将BayesOpt策略扩展到批量设置并非简单地选择在顺序设置中获取值最高的前几个数据点,这样会导致所选查询彼此非常接近,违背了并行性的目的。
- **PoI、EI和UCB策略**:可以使用相同的策略将PoI、EI和UCB这三种BayesOpt策略扩展到批量设置。该策略使用一批查询中的最大值来量化整个批次的价值,数学上需要将获取分数重写为某个感兴趣数量的平均值。
- **TS策略**:由于其随机性,TS策略可以轻松扩展到批量设置。批量TS不是从高斯过程(GP)中采样并仅最大化样本一次,而是重复此采样和最大化过程,直到达到目标批量大小。
### 2.4 信息论价值计算挑战与解决方案
计算多个点的信息论价值在计算上具有挑战性,这使得辅助函数`optimize_acqf()`使用的L - BFGS算法无法在批量设置中与MES策略一起使用。为了规避这个问题,我们使用循环优化,即循环地细化当前查询批次中的各个成员,直到获取分数收敛。在BoTorch中,可以使用辅助函数`optimize_acqf_cyclic()`进行循环优化。
### 2.5 批量大小的设置
为了最大化优化吞吐量,在使用辅助函数`optimize_acqf()`和`optimize_acqf_cyclic()`搜索使给定策略的获取分数最大化的批次时,指定正确的批量大小非常重要。可以通过将参数`q`设置为所需的批量大小来实现。
### 2.6 BoTorch实现的一致性
大多数BayesOpt策略在BoTorch中的实现遵循与顺序设置中相同的接口,这使得程序员可以过渡到批量设置而无需大幅修改代码。
## 3. 约束优化问题的引入
### 3.1 无约束与约束优化问题对比
在之前的优化问题中,我们仅旨在最大化目标函数,而不考虑其他因素,这被称为无约束优化问题。然而,在现实生活中,许多情况并非如此,目标函数的全局最优值可能伴随着成本,使其在实践中无法实现。
### 3.2 约束优化问题的实例
- **神
0
0
复制全文
相关推荐









