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)の概念に近づくことができ、システムが自己最適化して特定のタスクで可能な限り最高のパフォーマンスを達成します。






