Hyperparameter Tuning
モデル性能を最適化するハイパーパラメータチューニングについて説明します。ベイズ最適化などの手法と、Ultralytics YOLO26を使用した自動チューニングの方法を学びます。
ハイパーパラメータチューニングとは、機械学習 (ML)モデルのトレーニングプロセスを制御する外部設定変数を最適化する反復的なプロセスです。トレーニング中にデータから学習される重みやバイアスなどの内部パラメータとは異なり、ハイパーパラメータは学習プロセスの開始前にデータサイエンティストやエンジニアが設定します。これらの設定はモデルの構造とアルゴリズムの動作を制御し、パフォーマンスを微調整するための「つまみやダイヤル」として機能します。これらの値の理想的な組み合わせを見つけることは、精度や効率などの指標を最大化するうえで重要であり、平凡なモデルと最先端のソリューションを分ける要因になることも少なくありません。
基本概念と手法#
考えられるすべてのハイパーパラメータの組み合わせを集めると、高次元の探索空間が形成されます。実務では、この空間を探索して、損失関数を最小化する最適な設定を見つけるために、さまざまな戦略が使用されます。
- グリッドサーチ: この網羅的な手法では、グリッド上で指定されたパラメータのすべての組み合わせについてモデルを評価します。徹底的である一方、多数の変数を扱う場合は計算コストが高く、次元の呪いの影響を受けます。
- ランダムサーチ: すべての組み合わせをテストする代わりに、この手法ではハイパーパラメータの組み合わせをランダムに選択します。研究によると、最も影響の大きいパラメータについて探索空間をより効果的に調査できるため、グリッドサーチより効率的なことが多いとされています。
- ベイズ最適化: この確率的アプローチでは、過去の評価結果に基づいて、どのハイパーパラメータが最良の結果をもたらすかを予測する代理モデルを構築し、最も有望な領域に探索を集中させます。
- 進化的アルゴリズム: 生物の進化に着想を得たこの手法では、突然変異や交叉などのメカニズムを使用して、世代を重ねながら設定の集団を進化させます。これは、
ultralyticsライブラリがYOLO26のような最新のアーキテクチャを最適化するために使用する主要な手法です。
ハイパーパラメータチューニングとモデルのトレーニング#
チューニングとトレーニングは異なるフェーズを表すため、MLOpsのライフサイクルにおける両者を区別することが重要です。
- モデルのトレーニング: アルゴリズムがトレーニングデータを反復処理し、バックプロパゲーションによって内部パラメータを学習するプロセスです。目的は、トレーニングセットにおける誤差を最小化することです。
- ハイパーパラメータチューニング: 学習率、バッチサイズ、モメンタムなどの運用設定を、トレーニング開始前に選択するメタプロセスです。目的は、過学習を防ぐために、検証データに対するパフォーマンスを最大化することです。
実世界での利用例#
効果的にチューニングされたモデルは、複雑な環境で堅牢なソリューションを展開するうえで不可欠です。
精密農業#
農業におけるAIでは、自律型ドローンがコンピュータービジョンを使用して雑草や作物の病気を特定します。これらのモデルは、バッテリー寿命が限られたエッジデバイス上で実行されることが多くあります。エンジニアはハイパーパラメータチューニングを活用して、データ拡張パイプラインと入力解像度を最適化し、雑草だけに薬剤を散布するために必要な高い推論速度と精度のバランスをモデルが取れるようにして、化学薬品の使用量を削減します。
医療診断#
ヘルスケアにおけるAI、特に医用画像解析では、偽陰性が深刻な結果を招く可能性があります。MRIスキャンで異常を検出するモデルをトレーニングする際、実務者はクラスの重み付けや焦点損失に関連するハイパーパラメータを積極的に調整します。このチューニングにより再現率を最大化し、病理のわずかな兆候も人による確認の対象として確実に検出できるようにすることで、早期診断を大きく支援します。
Ultralyticsによる自動チューニング#
ultralyticsライブラリには遺伝的アルゴリズムを利用する組み込みのチューナーが含まれており、最適化を簡略化できます。これにより、ユーザーは手作業による試行錯誤を行わずに、カスタムデータセットに最適なハイパーパラメータを自動的に探索できます。大規模な運用では、チームはUltralytics Platformを活用してデータセットを管理し、これらのチューニング実験をクラウド上で可視化できます。
次の例では、YOLO26モデルのハイパーパラメータチューニングを開始する方法を示します。チューナーは複数回の反復処理でハイパーパラメータを変異させ、平均適合率 (mAP)を最大化します。
from ultralytics import YOLO
# Initialize a YOLO26 model (using the 'nano' weight for speed)
model = YOLO("yolo26n.pt")
# Start tuning hyperparameters on the COCO8 dataset
# The tuner runs for 30 epochs per iteration, evolving parameters like lr0 and momentum
model.tune(data="coco8.yaml", epochs=30, iterations=100, optimizer="AdamW", plots=False)このプロセスを自動化することで、開発者は自動機械学習 (AutoML)の概念に近づくことができます。これは、特定のタスクで可能な限り最高のパフォーマンスを達成するために、システムが自動的に最適化する仕組みです。









