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
ひとこと要約

このハウツー本は、scikit-learn、PyTorch、riverにおける最適化手法を統合したspotPythonフレームワークを用いて、ハイパラメータチューニングの包括的で実用的なガイドを提供する。ガウス過程、期待改善、およびサーヴェイモデルを用いた逐次的パラメータ最適化を示し、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)の使用法を示し、効率的なハイパラメータ探索を実現すること。
  • サーヴェイベースの最適化(例:Kriging、ガウス過程)と直接最適化手法(例:scipyのbasinhopping、dual_annealing)の比較を行うこと。
  • 研究者および実務家が最小限のコードで、最大限の再現性をもって高度な最適化手法を適用できるようにすること。
  • TensorBoardを用いた可視化とログ記録を統合し、チューニングプロセスの監視およびデバッグを可能にすること。

提案手法

  • 複数の機械学習ライブラリにおけるハイパラメータチューニングの中心最適化器としてspotPythonフレームワークを用いる。
  • コストの高い目的関数を近似するため、scikit-learnのKrigingおよびGaussianProcessRegressorを含むサーヴェイモデルを採用する。
  • ベイズ最適化におけるインフィル基準として期待改善(EI)を適用し、逐次的サンプリングを誘導する。
  • カスタム評価関数を用いて、エアリーストッピングと交差検証を組み合わせたPyTorchのトレーニングループを統合する。
  • HyperTorchクラスの'train_cv'および'test_cv'モードを通じて、マルチファシリティおよび交差検証設定をサポートする。
  • 2次元関数のためのTensorBoardおよび等高線プロットを用いて、最適化の進行状況とモデルの適合度を可視化する。

実験結果

リサーチクエスチョン

  • RQ1spotPythonは、scikit-learn、PyTorch、riverのモデルにおけるハイパラメータチューニングにどのように効果的に活用できるか?
  • RQ2サーヴェイベース最適化における等方的Krigingと非等方的Krigingの性能差は何か?
  • RQ3期待改善が他のインフィル基準と比較して収束速度および正確性においてどのように異なるか?
  • RQ4scikit-learnのサーヴェイモデル(GaussianProcessRegressor)は、spotPythonの最適化パイプラインに効果的に統合可能か?
  • RQ5エアリーストッピングを伴う交差検証は、ディープラーニングのハイパラメータチューニングにおける一般化性能をどのように向上させるか?

主な発見

  • spotPythonフレームワークを用いることで、関数評価回数を最小限に抑えながら効率的なハイパラメータチューニングが可能となり、2次元Branin関数では50回未満の評価で収束を達成した。
  • 非等方的Krigingは、分離不可能な関数(例:3次元Branin変種)において等方的Krigingを上回り、適合度が向上し、予測誤差が低減した。
  • 1次元Sphere関数において期待改善をインフィル基準として用いることで、収束が著しく加速し、ランダムサーチと比較して必要な評価回数が30–40%削減された。
  • scikit-learnのGaussianProcessRegressorをspotPythonに統合することで、不確実性推定を伴う正確なサーヴェイモデリングが可能となり、ForresterおよびSchonlauのテスト関数で検証された。
  • PyTorchモデルにおける交差検証とエアリーストッピングの組み合わせにより、過学習が軽減され、一般化性能が向上した。CIFAR-10に類似したデータセットでは、最終的な検証損失が50–70エポック後に安定した。
  • TensorBoardの統合により、トレーニングおよび検証損失、メトリクス値、サーヴェイモデルの進化をリアルタイムで監視可能となり、再現性およびデバッグが向上した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。