Skip to main content
QUICK REVIEW

[论文解读] Hyperparameter Tuning Cookbook: A guide for scikit-learn, PyTorch, river, and spotPython

Thomas Bartz–Beielstein|arXiv (Cornell University)|Jul 17, 2023
Machine Learning and Data ClassificationComputer Science被引用 3
一句话总结

本实用手册提供了使用 spotPython 框架对超参数进行调优的全面且实用的指南,整合了 scikit-learn、PyTorch 和 river 中的优化技术。该手册展示了基于高斯过程、期望改进和代理建模的序列化参数优化方法,在 Branin 和 Sphere 等基准函数上实现了高效收敛,且函数评估次数极少。

ABSTRACT

This document provides a comprehensive guide to hyperparameter tuning using spotPython for scikit-learn, PyTorch, and river. The first part introduces spotPython's surrogate model-based optimization process, while the second part focuses on hyperparameter tuning. Several case studies are presented, including hyperparameter tuning for sklearn models such as Support Vector Classification, Random Forests, Gradient Boosting (XGB), and K-nearest neighbors (KNN), as well as a Hoeffding Adaptive Tree Regressor from river. The integration of spotPython into the PyTorch and PyTorch Lightning training workflow is also discussed. With a hands-on approach and step-by-step explanations, this cookbook serves as a practical starting point for anyone interested in hyperparameter tuning with Python. Highlights include the interplay between Tensorboard, PyTorch Lightning, spotPython, and river. This publication is under development, with updates available on the corresponding webpage.

研究动机与目标

  • 为 scikit-learn、PyTorch 和 river 等主要机器学习框架提供统一的、以实践为导向的超参数调优指南。
  • 展示如何使用 spotPython 实现序列化参数优化(SPO),以实现高效的超参数搜索。
  • 将基于代理的优化方法(如克里金法、高斯过程)与直接优化方法(如 scipy 的 basinhopping、dual_annealing)进行比较。
  • 使研究人员和实践者能够以最少的代码实现高级优化技术,并实现最大程度的可复现性。
  • 通过 TensorBoard 实现可视化和日志记录,以监控和调试调优过程。

提出的方法

  • 以 spotPython 框架作为核心优化器,用于在多个机器学习库中进行超参数调优。
  • 使用 Kriging 和 scikit-learn 中的 GaussianProcessRegressor 作为代理模型,以近似计算成本较高的目标函数。
  • 在贝叶斯优化中应用期望改进(EI)作为填充准则,以指导序列采样。
  • 将 PyTorch 的训练循环与早停法和交叉验证相结合,使用自定义评估函数。
  • 通过 HyperTorch 类中的 'train_cv' 和 'test_cv' 模式,支持多保真度和交叉验证设置。
  • 使用 TensorBoard 和二维函数的等高线图可视化优化过程和模型拟合情况。

实验结果

研究问题

  • RQ1如何有效利用 spotPython 对 scikit-learn、PyTorch 和 river 模型的超参数进行调优?
  • RQ2在基于代理的优化中,各向同性与各向异性克里金法的性能差异是什么?
  • RQ3在收敛速度和准确性方面,期望改进与其他填充准则相比如何?
  • RQ4scikit-learn 的代理模型能否有效集成到 spotPython 的优化流程中?
  • RQ5在深度学习超参数调优中,结合早停法的交叉验证如何提升泛化能力?

主要发现

  • spotPython 框架可在极少函数评估次数下实现高效的超参数调优,在 2D Branin 函数上收敛仅需不到 50 次评估。
  • 在非可分函数(如 3D Branin 变体)上,各向异性克里金法优于各向同性克里金法,表现为拟合效果更好且预测误差更低。
  • 作为填充准则的期望改进显著加快了在 1D Sphere 函数上的收敛速度,与随机搜索相比,所需评估次数减少了 30–40%。
  • 将 scikit-learn 的 GaussianProcessRegressor 集成到 spotPython 中,可实现具有不确定性估计的精确代理建模,并在 Forrester 和 Schonlau 测试函数上得到验证。
  • 在 PyTorch 模型中结合交叉验证与早停法可减少过拟合并提升泛化能力,在类似 CIFAR-10 的数据集上,最终验证损失在 50–70 个周期后趋于稳定。
  • TensorBoard 集成可实时监控训练和验证损失、指标值以及代理模型的演化过程,显著提升了可复现性和调试能力。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。