当前位置: 首页 > news >正文

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.0trial.set_user_attr("c", c)return x**2 + y**2, (x - 2) ** 2 + (y - 2) ** 2def 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引入了基于准蒙特卡罗的log EHVI实现。PR #6069则在GPSampler中正式加入了多目标优化功能。

盒分解算法带来的性能提升相当明显。相比原生的实现,速度提升了6到800倍,让四目标问题的优化变得可行。虽然整体思路和BoTorch的实现接近,但具体实现细节有些不同。

在多目标优化基础上,GPSampler现在可以处理不等式约束了。这部分参考了J. Gardner等人[3]和M. Gelbart等人[4]的方法。

系统同时为目标函数和约束函数建立GP模型,不过暂时忽略了它们之间的相关性。PR #6198实现了约束log EHVI,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(如©所示)相比,有效地减少了不可行区域中的浪费评估(灰色着色),而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. In Advances 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. In Evolutionary 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. In Proceedings 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. In Proceedings 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. In IEEE 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.

https://avoid.overfit.cn/post/2223f043ade548cc8a33494b8eae6331

作者:Kaito Baba

http://www.dtcms.com/a/399716.html

相关文章:

  • Remote JVM Debug远程给Java程序“做手术”!cpolar内网穿透实验室第626个成功挑战
  • 开发网站 需求做购物网站怎拼找商家
  • OpenAI报告:人们如何使用ChatGPT
  • 做网站需要多少屏山东建设网站广告
  • 高系分十九:大数据处理系统分析与设计
  • STM32H750xx【QSPI】轮询方式读写GD25Q64E
  • 校园网站素材国内搜索引擎排名第一
  • 中国制造网的网络营销方式桔子seo工具
  • wordpress扒站教程网站总体规划说明
  • IP地址管理:部署phpIPAMv1.7.3常见问题
  • 自己做服务器网站表白网站建设
  • 【计算广告】广告出价相关约束问题:PID控制、MPC预测算法
  • 教你如何建设网站网站建设和维护费用
  • kotlin图算法
  • 汕尾网站建设 生意好吗有专门为个人网站做推广的吗
  • 网站建设企业响应式网站模板宿迁城乡住房建设厅网站
  • 建网站需要学什么网站专业术语中SEO的意思是
  • 2025无人机在低空物流中的应用实践
  • Python实现海鸥优化算法(Seagull Optimization Algorithm, SOA)(附完整代码)
  • PostgreSQL 知识体系
  • 网站建设与维护专业实训室昆山做网站的
  • 插针弹簧镀金耐腐蚀、高导电的电子连接“保护盾”|深圳同远
  • 【MySQL✨】MySQL 入门之旅 · 第十一篇:MySQL 表连接(JOIN)基础
  • 德州有做网站的制作表白网站
  • 公司网站做推广成化区建设局网站
  • Openssl TRNG provider demo guide
  • 建立论坛网站做自己的网站不是免费的
  • 赵艳红网站建设规划卢松松博客源码 wordpress博客模板
  • IoT水利监控系统:从需求到实现的完整技术方案
  • 小杰机器学习(seven)——贝叶斯分类