Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Hyperparameter Tuning

ハイパーパラメーター調整では、検証性能を最大化する学習設定を見つけます。グリッド検索、ランダム検索、ベイズ最適化、進化的探索を比較します。

ハイパーパラメーター調整とは、機械学習モデルが未使用データで最高の性能を発揮するトレーニング設定を探すことです。ハイパーパラメーターはトレーニング開始前に固定されますが、モデルの重みはトレーニング中にデータから学習されます。候補となる各設定は、モデルをトレーニングし、検証データで評価してスコアを付ける必要があります。そのため、調整はモデル構築において特に計算負荷の高い工程の1つであり、適切な探索戦略を選ぶことは、探索する値を選ぶことと同じくらい重要です。

一般的なハイパーパラメーター#

ディープラーニングを使ったビジョン分野では、頻繁に調整が必要となる設定はいくつかのグループに分けられます。

  • 最適化: 学習率とそのスケジュール、モーメンタム、重み減衰、SGDやAdamオプティマイザーなどのオプティマイザーの選択です。通常、学習率が最も大きな影響を与えるため、対数スケールで探索します。
  • トレーニング期間とバッチ処理: エポック数、ウォームアップ期間、バッチサイズです。
  • データ拡張: 反転、スケーリング、色調変更、モザイクなど、各変換の適用確率と強度です。
  • 損失の重み: 検出器におけるボックス損失や分類損失など、複合的な損失関数の各項のバランスを取る係数です。

探索手法#

実務者は、いくつかの戦略を使って可能な設定の空間を探索します。

  • グリッドサーチ: 固定した値のリストから、すべての組み合わせをトレーニングします。単純で網羅的ですが、ハイパーパラメーターを追加するたびにコストが増大します。
  • ランダムサーチ: 許容範囲から設定をランダムにサンプリングします。BergstraとBengioは、計算量を大幅に抑えながら、グリッドサーチと同等またはそれ以上のモデルを見つけられることを示しました。これは、特定の問題で大きく影響するハイパーパラメーターは一部に限られ、ランダムサンプリングなら各ハイパーパラメーターについてより多様な値を試せるためです。
  • ベイズ最適化: ハイパーパラメーターとスコアの関係を表す代理モデルを学習し、改善が最も期待できる領域を次の試行として選びます。Optunaなどのライブラリでは、この手法がデフォルトで使用されます。
  • 早期終了手法: Hyperbandや逐次ハーフィングでは、多数の設定を少ない計算予算で開始し、有望な設定にだけ追加のエポックを割り当てます。
  • 進化的アルゴリズム: 各設定をゲノムとして扱い、選択と突然変異を通じて集団を改善します。

進化的探索は、探索空間のモデルを必要とせず、各試行の適応度スコアだけを用いるため、多数のハイパーパラメーターが相互作用するトレーニングに適しています。各ラウンドでは、これまでに見つかった有望な設定の1つを選び、いくつかの値を突然変異させ、その結果でトレーニングします。スコアが良ければ、新しい設定を候補群に残します。

Ultralyticsチューナーは、YOLOのトレーニングでこのループを実行します。各反復では、適応度上位9件から親を選び、学習率、損失係数、データ拡張を含む最大26個のハイパーパラメーターのうち、およそ半数に突然変異を加えます。検出タスクでは、適応度をmAP50-95として評価します。公式YOLO26チェックポイントのCOCOステージのハイパーパラメーターは、この進化的探索で見つけられました。

from ultralytics import YOLO

# 事前学習済みYOLO26nモデルを読み込みます
model = YOLO("yolo26n.pt")

# 探索空間: 調整する各ハイパーパラメーターの範囲(最小値、最大値)
search_space = {"lr0": (1e-5, 1e-2), "degrees": (0.0, 45.0)}

# 30回の各反復では、新たに突然変異させた値で10エポックのトレーニングを行います
model.tune(data="coco8.yaml", epochs=10, iterations=30, space=search_space, plots=False, save=False, val=False)

実行結果として、best_hyperparameters.yaml、反復ごとの適応度プロット、および最良の反復の重みがtuneディレクトリに書き込まれます。オプティマイザーが指定されていない場合、model.tune()はAdamWでトレーニングします。デフォルトのoptimizer="auto"では、調整対象のlr0が上書きされるためです。

  • モデルのトレーニング: トレーニングでは、固定されたハイパーパラメーター設定のもとで、誤差逆伝播を通じて重みを学習します。調整は、トレーニングを何度も実行し、その結果を比較する外側のループです。
  • ファインチューニング: 名前は似ていますが、ファインチューニングは事前学習済みモデルの重みを新しいデータで継続してトレーニングすることです。ファインチューニングにも、低い学習率や凍結するレイヤー数など、調整対象となる独自のハイパーパラメーターがあります。
  • ニューラルアーキテクチャ探索(NAS): トレーニング設定ではなく、レイヤーの種類や幅など、ネットワークの構造を探索します。
  • 自動機械学習(AutoML): モデル選択やデータ前処理などを含む、より広範なパイプラインを自動化します。ハイパーパラメーター調整は、その構成要素の1つです。
  • 検証セットへの過学習: 同じ検証データ分割で何百回も調整試行のスコアを評価すると、偶然その分割に適した設定が選ばれる可能性があります。そのため、最終結果は、調整では一度も使用していない別のテストセットで評価する必要があります。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう