首页
/ BoTorch v0.14.0发布:强化贝叶斯优化核心能力

BoTorch v0.14.0发布:强化贝叶斯优化核心能力

2025-06-15 14:21:59作者:庞队千Virginia

项目概述

BoTorch是建立在PyTorch之上的贝叶斯优化研究框架,专注于提供高效的优化算法实现。作为现代贝叶斯优化工具链的核心组件,它通过模块化设计支持各种高斯过程模型和采集函数的灵活组合。最新发布的v0.14.0版本在模型能力、约束处理等方面带来了多项重要改进。

核心功能增强

新型代理模型集成

本次更新引入了两种重要的新型代理模型:

  1. 先验拟合网络(PFN):这种基于Transformer架构的模型通过预训练方式学习先验知识,在小样本场景下展现出卓越的性能。相比传统高斯过程,PFN能够更好地捕捉复杂的目标函数结构,同时保持计算效率。

  2. 变分贝叶斯最后一层(VBLL)模型:作为高斯过程模型的替代方案,VBLL模型在最后一层应用变分推断,特别适合处理大规模数据集。这种设计既保留了贝叶斯方法的优势,又显著提升了计算效率。

约束处理能力提升

针对带约束的优化问题,v0.14.0做出了多项改进:

  • 分类器约束支持:新增了基于分类器的约束处理方法,通过LogProbabilityOfFeasibility系列采集函数,能够更智能地平衡目标优化与约束满足之间的关系。

  • 候选点可行性检查:优化了候选点生成过程,确保返回的候选点满足所有约束条件。当return_best_only参数启用时,系统会自动返回最优可行解。

  • 非线性约束处理:改进了nonlinear_constraint_is_feasible函数的返回值类型,现在明确返回布尔张量,提高了类型一致性。

算法优化与改进

在采集函数方面,本次更新包含以下关键优化:

  • 增量式qLogNEI:通过新增的incremental参数,实现了增量式对数噪声预期改进算法,显著提升了高维问题的优化效率。

  • 信息论采集函数重构:重新设计了基于信息论的采集函数采样方法,提高了计算稳定性和效率。

  • 批量初始化优化:确保initialize_q_batch在批量模式下始终包含最大值点,提高了初始化的质量。

测试函数扩展

为支持更广泛的基准测试需求,v0.14.0新增了多组测试函数:

  • 多保真度测试函数:支持离散保真度级别,便于研究多保真度优化问题。

  • Keane凸点函数:经典的带约束优化测试函数。

  • 混合Ackley函数:支持混合变量空间的变体。

  • LABS函数:用于评估二进制优化算法性能。

这些函数现在都支持混合/离散空间定义,并增加了输入验证机制,确保使用安全。

模型与计算改进

在模型层面,本次更新解决了多个关键问题:

  • 修正了AdditiveMapSaasSingleTaskGP中观测噪声与结果变换的兼容性问题
  • 改进了批量多任务GP模型的后验计算
  • 优化了Pivoted Cholesky的批量计算
  • 增强了StratifiedStandardize对数据类型和NaN值的处理能力

实用工具增强

为方便模型评估和选择,新增了计算AIC/BIC/MLL等统计量的工具函数。同时优化了模型训练过程,包括:

  • 支持完全贝叶斯模型的子模块重置选项
  • 在模型构造函数中自动将结果变换设为训练模式
  • 改进了LogEI的缓存根选择策略

向后兼容性调整

作为维护性版本,v0.14.0也进行了一些清理工作:

  • 移除了已弃用的gp_sampling模块
  • 淘汰了qMultiObjectiveMaxValueEntropy采集函数
  • 移除了模型转换器工具

这些变化使代码库更加精简,减少了维护负担。

总结

BoTorch v0.14.0通过引入新型代理模型、增强约束处理能力、扩展测试函数集等一系列改进,进一步巩固了其作为现代贝叶斯优化研究框架的地位。这些变化不仅提升了框架的功能性,也为解决更复杂的实际优化问题提供了新的可能性。对于从事贝叶斯优化研究和应用开发的用户来说,这个版本值得重点关注和升级。

登录后查看全文
热门项目推荐