Optuna在8月18日发布了最近的 v4.5版,加入了GPSampler的约束多目标优化功能,我们来看看这个新的功能。
基于高斯过程的贝叶斯优化(GPBO)最近几年在材料科学、机器学习等领域应用很广。GPSampler最初设计时就想做一个简单好用的GPBO实现。虽然在定制方面(比如核函数、获取函数)没有BoTorch和Ax那么灵活,但GPSampler胜在速度快,依赖少。
早期版本的GPSampler支持的问题类型比较有限,但是经过团队持续改进。v4.2版本加入了不等式约束支持,v4.4版本实现了多目标优化。现在v4.5直接支持约束多目标优化了。
这个功能在很多实际场景中都很有用,比如说:材料科学、机器学习、药物发现这些领域经常需要在物理约束或实验限制下平衡多个目标。Optuna v4.5的约束多目标GPBO直接解决了这个需求,可能会推动相关领域的研究进展。
安装和基本使用
GPSampler需要额外安装几个依赖包:
$ pip install optuna==4.5.0
# scipy和torch对于GPSampler也是必需的。
$ pip install scipy
$ pip install torch --index-url https://download.pytorch.org/whl/cpu
安装完成后,使用起来很直接:
import optuna
def objective(trial: optuna.Trial) -> tuple[float, float]:
x = trial.suggest_float("x", -5.0, 5.0)
y = trial.suggest_float("y", -5.0, 5.0)
c = x**2 + y**2 - 4.0
trial.set_user_attr("c", c)
return x**2 + y**2, (x - 2) ** 2 + (y - 2) ** 2
def constraints(trial: optuna.trial.FrozenTrial) -> tuple[float]:
c = trial.user_attrs["c"]
return (c,)
sampler = optuna.samplers.GPSampler(constraints_func=constraints)
study = optuna.create_study(sampler=sampler, directions=["minimize"] * 2)
study.optimize(objective, n_trials=100)多目标优化的技术实现
GPSampler的多目标优化采用了Expected Hypervolume Improvement (log EHVI)的对数形式作为获取函数。这个实现主要基于Daulton等人[1]的方程(1)和Lacour等人[6]的算法2。
几个关键的技术改进都体现在相关的PR中:
PR#6039实现了盒分解算法,大幅提升了超体积改进计算的速度。PR#6052引入了基于准蒙特卡罗的logEHVI实现。PR#6069则在GPSampler中正式加入了多目标优化功能。
盒分解算法带来的性能提升相当明显。相比原生的实现,速度提升了6到800倍,让四目标问题的优化变得可行。虽然整体思路和BoTorch的实现接近,但具体实现细节有些不同。
在多目标优化基础上,GPSampler现在可以处理不等式约束了。这部分参考了J. Gardner等人[3]和M. Gelbart等人[4]的方法。
系统同时为目标函数和约束函数建立GP模型,不过暂时忽略了它们之间的相关性。PR#6198实现了约束logEHVI,PR#6224则完成了约束多目标优化的完整支持。
约束处理的核心是用Probability of Improvement (PI)来评估候选点的可行性。最终的获取函数就是EHVI和可行性概率的乘积。
性能测试对比
为了验证约束多目标优化的效果,团队做了详细的基准测试。主要对比了几种情况:
一是和不考虑约束的多目标GPSampler比较,看约束处理带来的好处。二是和Optuna中已有的TPESampler、NSGAIISampler对比,这两个也支持约束多目标优化。
测试环境设置
测试问题选择了C2-DTLZ2,这是OptunaHub新加的约束多目标优化基准问题。设置为2个目标,3个变量。
每次优化跑300轮试验,用5个不同随机种子重复测试来计算标准误差。由于C2-DTLZ2是确定性问题(目标函数没有噪声),GPSampler开启了deterministic_objective=True选项。
测试机器配置:Arch Linux系统,Intel Core i9-14900HX处理器(24核32线程,最高5.8GHz),Python 3.11.0。
帕累托前沿质量对比
图1展示了不同算法获得的帕累托前沿分布。
图1. 300次试验后C2-DTLZ2问题的获得帕累托前沿。结果显示约束GPSampler(如(a)所示)与无约束GPSampler(如(b)所示)和TPESampler(如(c)所示)相比,有效地减少了不可行区域中的浪费评估(灰色着色),而NSGAIISampler(如(d)所示)在300次试验后仍远未收敛。
约束处理的效果很明显
C2-DTLZ2问题故意在帕累托前沿上设置了不可行区域,专门测试算法处理断开帕累托前沿的能力[5]。虽然不考虑约束也能找到一些帕累托解,但会在不可行区域浪费很多评估次数。
对比约束版GPSampler(图1a)和无约束版本(图1b),约束版本在可行帕累托解(蓝色点)之间产生的不可行观察(灰色点)明显更少。说明约束处理确实起作用了,减少了无效评估。
和其他采样器的比较
相比TPESampler(图1c),GPSampler(图1a)在不可行区域的浪费评估也更少。不过TPESampler在某个目标值接近零的帕累托前沿区域覆盖得更全面一些。
这主要是GP获取函数的特性导致的——倾向于在边界附近过度采样,降低了那些区域的不确定性,但也让进一步探索相邻帕累托前沿变得困难。
NSGAIISampler的表现就比较一般了(图1d),300次试验后还没收敛,找到的最优解很少。
收敛速度分析
图2的可行超体积历史更直观地展示了各算法的收敛表现。
图2. C2-DTLZ2问题[5]的可行超体积历史。实线表示均值,阴影区域表示标准误差,两者都是在具有不同随机种子的五次独立运行中计算的。约束GPSampler(蓝色)与TPESampler(粉色)和NSGAIISampler(黄色)相比,实现了更快的收敛到更高的超体积值,证明了新功能在减少评估成本方面的有效性。
GPSampler的超体积增长曲线很有意思。不到50次试验就达到了TPESampler的最终水平,比NSGAIISampler领先得更多。这种快速收敛对计算成本高的优化问题特别重要——减少函数评估次数就是直接节省时间。
总结
Optuna v4.5的GPSampler约束多目标优化功能确实是个不错的更新。C2-DTLZ2基准测试证明了几点:减少了不可行区域的无效评估,可行超体积收敛比TPESampler和NSGAIISampler都快。
这让Optuna在处理计算昂贵的黑盒优化问题时更有竞争力了。如果你的项目涉及约束多目标优化,值得试试这个新功能。
参考文献
[1] Daulton, S., Balandat, M., and Bakshy, E. Differentiable expected hypervolume improvement for parallel multi-objective Bayesian optimization. InAdvances in Neural Information Processing Systems, volume 33, pp. 9851–9864, 2020.
[2] Deb, K., Thiele, L., Laumanns, M., and Zitzler, E. Scalable test problems for evolutionary multi-objective optimization. InEvolutionary Multi-objective Optimization, pp. 105–145. Springer-Verlag, 2005.
[3] Gardner, J., Kusner, M., Zhixiang, W., Weinberger, K., and Cunningham, J. Bayesian Optimization with Inequality Constraints. InProceedings of the 31st International Conference on Machine Learning, volume 32, pp. 937–945. PMLR, 2014.
[4] Gelbart, M. A., Snoek, J., and Adams, R. P. InProceedings of the 30th Conference on Uncertainty in Artificial Intelligence,pp. 250–259. AUAI Press, 2014.
[5] Jain, H., and Deb, K. An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point Based Nondominated Sorting Approach, Part II: Handling Constraints and Extending to an Adaptive Approach. InIEEE Transactions on Evolutionary Computation, 18(4):602–622, 2014.
[6] Lacour, R., Klamroth, K., and Fonseca, CM. A box decomposition algorithm to compute the hypervolume indicator.Computers & Operations Research, volume 79, pp. 347–360, 2017.
作者:Kaito Baba
喜欢就关注一下吧:
点个在看你最好看!