首页
学习
活动
专区
圈层
工具
发布

Optuna v4.5新特性深度解析:GPSampler实现约束多目标优化

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

喜欢就关注一下吧:

点个在看你最好看!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OoyDxkwc68AF322nELAh7m-Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券