Optuna:一个专注超参数优化的 Python 框架 文章目录Optuna一个专注超参数优化的 Python 框架1、这玩意儿是干嘛的2、为什么要用它3、支持哪些框架4、安装和使用5、OptunaHub 是什么6、适合哪些人用Optuna一个专注超参数优化的 Python 框架Optuna 在 GitHub 上已经拿到 14,307 Star 了。它是一个面向机器学习的自动超参数优化框架核心卖点是 define-by-run 风格的 API。用户可以用平常的 Python 代码动态定义搜索空间不需要像传统工具那样预先写死参数配置。1、这玩意儿是干嘛的机器学习模型的效果很大程度上取决于超参数选择。学习率、树的深度、正则化系数……这些参数组合起来几乎是无穷的手动调参既慢又容易陷入局部最优。Optuna 把这件事自动化了。它把一次完整的优化过程叫做 study把每次目标函数的执行叫做 trial。一个 study 包含若干 trial框架会自动在这些 trial 里找出表现最好的那组超参数。代码层面Optuna 的做法很直接importoptunadefobjective(trial):regressor_nametrial.suggest_categorical(regressor,[SVR,RandomForest])ifregressor_nameSVR:svr_ctrial.suggest_float(svr_c,1e-10,1e10,logTrue)else:rf_max_depthtrial.suggest_int(rf_max_depth,2,32)# ... 训练并返回误差studyoptuna.create_study()study.optimize(objective,n_trials100)注意搜索空间是动态构建的选择 SVR 才需要 C选择 RandomForest 才需要 max_depth。这种条件分支在传统预定义搜索空间的工具里往往很难表达。2、为什么要用它市面上做超参数优化的工具不少Optuna 的优势可以概括为几点第一安装和使用门槛低。支持 Python 3.9 及以上一行 pip install optuna 就能跑起来。第二算法层面跟得上。内置了多种采样器和剪枝策略能在训练过程中自动砍掉没有潜力的 trial省下大量计算资源。第三并行扩展简单。官方文档提到把任务扩展到几十上百个 worker代码通常不需要大改。第四可视化工具齐全。除了代码里的 plot 函数还有独立的 Optuna Dashboard可以实时查看优化历史、超参数重要性等信息。3、支持哪些框架Optuna 不是单打独斗。它提供了大量第三方集成覆盖主流机器学习库CatBoost、LightGBM、XGBoostPyTorch、PyTorch Lightning、PyTorch IgniteTensorFlow、Keras、fastaiDask、scikit-learn这些集成示例集中在 optuna-examples 仓库里README 里有对应链接可以直接参考。4、安装和使用最方便的安装方式是通过 PyPIpipinstalloptuna如果用 condacondainstall-cconda-forge optunaOptuna Dashboard 需要单独安装pipinstalloptuna-dashboard启动时指定 storage 即可optuna-dashboard sqlite:///db.sqlite3默认监听 localhost:8080打开浏览器就能看到图表和表格。5、OptunaHub 是什么OptunaHub 是官方推出的特性共享平台。用户可以从上面加载别人封装好的 sampler 或可视化组件也可以把自己的包提交上去。加载方式类似这样importoptunahub moduleoptunahub.load_module(packagesamplers/auto_sampler)studyoptuna.create_study(samplermodule.AutoSampler())这降低了尝试新算法的成本也避免了每个人都重复造轮子。6、适合哪些人用正在训练机器学习模型、需要系统调参的算法工程师做 AutoML 相关项目、需要可扩展优化后端的开发者用 scikit-learn 或 PyTorch 生态、希望减少手动调参时间的研究人员Optuna 的代码是 MIT 协议可以直接商用。如果你平时调参还靠网格搜索或者手动试值得花半小时跑一遍官方 quickstart。t-learn 或 PyTorch 生态、希望减少手动调参时间的研究人员Optuna 的代码是 MIT 协议可以直接商用。如果你平时调参还靠网格搜索或者手动试值得花半小时跑一遍官方 quickstart。