Optuna  AutoSampler 更新:让多目标和约束优化不再需要手动选算法

简介: AutoSampler 是 OptunaHub 热门智能采样器,下载量超 3 万/周。新版支持多目标与约束优化,自动选择 TPE、GPSampler、NSGA-II/III 等算法。基于搜索空间、目标数等特征动态切换,性能优于默认采样器。适配 Optuna v4.6,安装便捷,助力高效自动化调参。

AutoSampler是个智能采样器,能根据具体问题自动挑选 Optuna 里最合适的优化算法。这个工具在 OptunaHub 上热度很高,每周下载量超过 3 万次。最早的版本对单目标优化做了专门的自动选择逻辑,为了配合下个月发布的 Optuna v4.6,AutoSampler 终于把多目标和约束优化的完整支持做完了。这篇文章会讲清楚新功能怎么用,顺带看看基准测试的表现如何。最新版本其实现在就能用了。

多目标和约束优化的实现

新版 AutoSampler 延续了之前的设计思路——分析评估预算、搜索空间、约束条件、目标数量这些因素,然后自动选一个实际效果不比默认差的采样器。

更新后的选择规则覆盖了多目标和约束优化场景。系统会在几个采样器之间自动切换(图 1):

  • TPESampler:处理带分类变量和条件分支的复杂搜索空间比较在行
  • GPSampler:连续和整数搜索空间的首选,现在支持多目标和约束了
  • NSGAIISamplerNSGAIIISampler:评估次数多的用 NSGA-II,目标多的用 NSGA-III

图1:AutoSampler 对约束优化和多目标优化的支持终于完整了

使用方式

先装依赖,optuna 需要 4.5 或更新的版本:

 pip install -U optuna optunahub  
 pip install -r https://hub.optuna.org/samplers/auto_sampler/requirements.txt

然后用

optunahub.load_module

加载

"samplers/auto_sampler"

包,实例化 AutoSampler,就能当普通 Optuna 采样器用了。下面代码是一个多目标优化的例子:

 import optuna  
import optunahub  


def objective(trial: optuna.Trial) -> tuple[float]:  
    x = trial.suggest_float("x", 0, 5)  
    y = trial.suggest_float("y", 0, 3)  
    return  4 * x**2 + 4 * y**2, (x - 5)**2 + (y - 5)**2  

study = optuna.create_study(  
    directions=["minimize", "minimize"],  
    sampler=optunahub.load_module("samplers/auto_sampler").AutoSampler()  
)  
study.optimize(objective, n_trials=300)  

 print(study.best_trials)

如果之前用过 AutoSampler 的话,本地缓存可能是旧版本,所以需要加个

force_reload=True

参数强制更新一下:

 >>>importoptunahub; optunahub.load_module("samplers/auto_sampler", force_reload=True)

性能表现

拿最新的 AutoSampler 和 Optuna 默认采样器对比了下多目标和约束优化场景的表现。

多目标优化测试

多目标基准用的是 WFG1 问题。从图 2 能看出来 AutoSampler 的搜索效果更好。默认采样器固定用 NSGA-II 算法,AutoSampler 会根据评估次数、目标数量、搜索空间这些特征在 GPSampler、TPESampler、NSGAIISampler、NSGAIIISampler 四个方法之间动态切换。这种自适应策略让它能找到更好的解。

图2:WFG1 基准测试结果

约束优化测试

约束问题用的是 bbob-constrained 基准集里 5 维旋转 Rastrigin 函数加三个约束条件。图 3 显示 AutoSampler 又是更好的那个。

优势来自新的选择规则引入了具备约束感知能力的 GPSampler(Optuna v4.2 引入),在约束搜索空间里导航效率明显高一些。对于同时有约束和多目标的问题,还能用上 Optuna v4.5 里 GPSampler 的进一步增强。

图3:旋转 Rastrigin 函数基准测试结果

总结

这次更新让 AutoSampler 完整支持了多目标和约束优化。在集成到工作流后,基本能达到和默认采样器持平或更好的效果,而且不需要用手动选算法。这样省下的精力可以专注在问题本身,优化策略交给 Optuna 自动处理就行。

https://avoid.overfit.cn/post/67621750374c48e1a5cf8c00e11991ac

作者:Yoshihiko Ozaki

目录
相关文章
|
9月前
|
人工智能 自然语言处理 安全
SOFA AI 网关基于 Higress 的落地实践
SOFA 商业化团队为满足客户 AI 业务的发展需求,基于开源 Higress 内核构建,推出了 SOFA AI 网关,专为 SOFA 场景深度优化、能力增强,是面向 AI 需求的智能网关解决方案。
680 68
|
5月前
|
机器学习/深度学习 存储 人工智能
基于能量的模型(EBM):用能量函数替代概率分布的建模框架
Yann LeCun指出,当前LLM逐Token预测的路径难达人类级AI;其团队力推基于能量的模型(EBM)——不依赖Softmax归一化,以“能量”度量兼容性,支持多峰建模、连续优化与世界模型构建,为通用智能提供新范式。
452 2
基于能量的模型(EBM):用能量函数替代概率分布的建模框架
|
3月前
|
人工智能 算法 数据处理
AI医疗的破冰时刻——从辅助诊断到新药研发
2025年,AI医疗迎来了真正的“破冰时刻”。与以往炒作不同,这一次,AI开始在实际临床场景中创造可量化、可复现、可规模化的价值。
364 0
|
算法 数据挖掘 调度
【调度算法】NSGA III(1)
【调度算法】NSGA III
2875 0
|
10月前
|
机器学习/深度学习 算法 调度
基于NSGA-III算法求解微电网多目标优化调度研究(Matlab代码实现)
基于NSGA-III算法求解微电网多目标优化调度研究(Matlab代码实现)
353 3
|
10月前
|
机器学习/深度学习 算法 测试技术
Optuna v4.5新特性深度解析:GPSampler实现约束多目标优化
Optuna v4.5发布,新增GPSampler对约束多目标优化的支持,结合高斯过程与log EHVI获取函数,显著提升在材料科学、机器学习等领域的黑盒优化效率,减少无效评估,加速收敛。
587 12
Optuna v4.5新特性深度解析:GPSampler实现约束多目标优化
|
10月前
|
机器学习/深度学习 边缘计算 监控
【创新】【微电网多目标优化调度】五种多目标优化算法(MOJS、NSGA3、MOGWO、NSWOA、MOPSO)求解微电网多目标优化调度(Matlab代码实现)
【创新】【微电网多目标优化调度】五种多目标优化算法(MOJS、NSGA3、MOGWO、NSWOA、MOPSO)求解微电网多目标优化调度(Matlab代码实现)
716 0
|
5月前
|
人工智能 弹性计算 安全
给小白看的Openclaw(Clawdbot) 7×24 AI助理扫盲指南,附OpenClaw最新几种搭建方案
你有没有幻想过,拥有一个不止会聊天,还能实实在在帮你处理工作生活琐事的AI助手?清理杂乱的邮箱、规划每日日程、编写代码片段、甚至自主安装扩展功能,这些需求OpenClaw都能轻松实现。这款开源工具凭借强大的功能,在短短两个月内斩获近10万GitHub星标,一跃成为史上增长最快的开源项目之一,掀起了个人AI助手的全新浪潮。
2049 3
|
8月前
|
SQL 存储 运维
Apache Doris 自动分区:如何应对分布式环境下的复杂并发挑战|Deep Dive
在分布式环境下,分区对性能的影响不可小觑。本文深度、详尽的讲解 Apache Doris 自动分区设计思考,并就多线程复杂并发场景下所面临的挑战,一一剖析 Doris 自动分区设计时的应对策略。
350 4
Apache Doris 自动分区:如何应对分布式环境下的复杂并发挑战|Deep Dive

热门文章

最新文章