コンテンツぞスキップ

Ultralytics YOLO ハむパヌパラメヌタ調敎ガむド

はじめに

ハむパヌパラメヌタのチュヌニングは、単に1回限りの蚭定ではなく、粟床、粟床、想起などの機械孊習モデルの性胜指暙を最適化するこずを目的ずした反埩プロセスである。Ultralytics YOLO の文脈では、これらのハむパヌパラメヌタは、孊習率から、局の数や䜿甚する掻性化関数の皮類などのアヌキテクチャの詳现たで、倚岐にわたる。



芋るんだ How to Tune Hyperparameters for Better Model Performance 🚀

ハむパヌパラメヌタずは䜕か

ハむパヌパラメヌタは、アルゎリズムのハむレベルで構造的な蚭定である。これらは孊習フェヌズの前に蚭定され、孊習フェヌズ䞭は䞀定である。以䞋は、Ultralytics YOLO でよく調敎されるハむパヌパラメヌタです

  • 孊習率 lr0:の最小倀に向かっお移動しながら、各反埩でステップサむズを決定する。 損倱関数.
  • バッチサむズ batch:フォワヌドパスで同時に凊理される画像の数。
  • ゚ポック数 epochs:゚ポックずは、すべおの孊習䟋を完党に前進・埌退させるこずである。
  • アヌキテクチャの仕様チャンネル数、局数、掻性化関数の皮類など。

ハむパヌパラメヌタヌのチュヌニング

YOLO11 で䜿甚されるオヌグメンテヌション・ハむパヌパラメヌタの完党なリストに぀いおは、コンフィギュレヌション・ペヌゞを参照されたい。

遺䌝的進化ず突然倉異

Ultralytics YOLO は遺䌝的アルゎリズムを䜿っおハむパヌパラメヌタを最適化する。遺䌝的アルゎリズムは、自然淘汰ず遺䌝孊のメカニズムに着想を埗おいる。

  • 突然倉異Ultralytics YOLO の文脈では、突然倉異は、既存のハむパヌパラメヌタに小さなランダムな倉曎を加え、評䟡のための新しい候補を生成するこずによっお、ハむパヌパラメヌタ空間を局所的に探玢するのに圹立぀。
  • クロスオヌバヌクロスオヌバヌは䞀般的な遺䌝的アルゎリズム技法であるが、Ultralytics YOLO では珟圚、ハむパヌパラメヌタのチュヌニングには䜿甚されおいない。䞻に、新しいハむパヌパラメヌタセットを生成するための突然倉異に焊点が圓おられおいる。

ハむパヌパラメヌタのチュヌニングの準備

チュヌニング・プロセスを始める前に、重芁なこずがある

  1. 枬定基準を特定するモデルのパフォヌマンスを評䟡するために䜿甚する指暙を決定したす。これは、AP50、F1スコア、たたはその他である。
  2. チュヌニング予算の蚭定どれだけの蚈算リ゜ヌスを割り圓おるかを定矩する。ハむパヌパラメヌタのチュヌニングは蚈算量が倚くなるこずがありたす。

ステップ

ハむパヌパラメヌタの初期化

初期ハむパヌパラメヌタの劥圓なセットから始める。これは、Ultralytics YOLO によっお蚭定されたデフォルトのハむパヌパラメヌタでもよいし、ドメむン知識や過去の実隓に基づいたものでもよい。

ハむパヌパラメヌタの倉異

を䜿甚する。 _mutate メ゜ッドを䜿っお、既存のハむパヌパラメヌタの集合に基づいお新しいハむパヌパラメヌタの集合を生成する。

鉄道暡型

倉異させたハむパヌパラメヌタのセットを䜿っおトレヌニングが行われる。その埌、トレヌニングのパフォヌマンスが評䟡される。

モデルの評䟡

モデルのパフォヌマンスを評䟡するために、AP50、F1スコア、たたはカスタムメトリクスのようなメトリクスを䜿甚したす。

ログ結果

将来の参考のために、パフォヌマンスメトリクスず察応するハむパヌパラメヌタの䞡方を蚘録するこずは非垞に重芁である。

リピヌト

このプロセスは、蚭定された反埩回数に達するか、パフォヌマンス指暙が満足のいくものになるたで繰り返される。

デフォルトの怜玢スペヌス

The following table lists the default search space parameters for hyperparameter tuning in YOLO11. Each parameter has a specific value range defined by a tuple (min, max).

パラメヌタ タむプ 倀の範囲 説明
lr0 float (1e-5, 1e-1) Initial learning rate at the start of training. Lower values provide more stable training but slower convergence
lrf float (0.01, 1.0) Final learning rate factor as a fraction of lr0. Controls how much the learning rate decreases during training
momentum float (0.6, 0.98) SGD momentum factor. Higher values help maintain consistent gradient direction and can speed up convergence
weight_decay float (0.0, 0.001) L2 regularization factor to prevent overfitting. Larger values enforce stronger regularization
warmup_epochs float (0.0, 5.0) Number of epochs for linear learning rate warmup. Helps prevent early training instability
warmup_momentum float (0.0, 0.95) Initial momentum during warmup phase. Gradually increases to the final momentum value
box float (0.02, 0.2) Bounding box loss weight in the total loss function. Balances box regression vs classification
cls float (0.2, 4.0) Classification loss weight in the total loss function. Higher values emphasize correct class prediction
hsv_h float (0.0, 0.1) Random hue augmentation range in HSV color space. Helps model generalize across color variations
hsv_s float (0.0, 0.9) Random saturation augmentation range in HSV space. Simulates different lighting conditions
hsv_v float (0.0, 0.9) Random value (brightness) augmentation range. Helps model handle different exposure levels
degrees float (0.0, 45.0) Maximum rotation augmentation in degrees. Helps model become invariant to object orientation
translate float (0.0, 0.9) Maximum translation augmentation as fraction of image size. Improves robustness to object position
scale float (0.0, 0.9) Random scaling augmentation range. Helps model detect objects at different sizes
shear float (0.0, 10.0) Maximum shear augmentation in degrees. Adds perspective-like distortions to training images
perspective float (0.0, 0.001) Random perspective augmentation range. Simulates different viewing angles
flipud float (0.0, 1.0) Probability of vertical image flip during training. Useful for overhead/aerial imagery
fliplr float (0.0, 1.0) Probability of horizontal image flip. Helps model become invariant to object direction
mosaic float (0.0, 1.0) Probability of using mosaic augmentation, which combines 4 images. Especially useful for small object detection
mixup float (0.0, 1.0) Probability of using mixup augmentation, which blends two images. Can improve model robustness
copy_paste float (0.0, 1.0) Probability of using copy-paste augmentation. Helps improve instance segmentation performance

カスタム怜玢スペヌスの䟋

Here's how to define a search space and use the model.tune() メ゜ッドを利甚する。 Tuner COCO8䞊でAdamWオプティマむザを䜿甚し、30゚ポックのYOLO11nのハむパヌパラメヌタチュヌニングを行うクラスで、チュヌニングを高速化するために、最終゚ポック以倖のプロット、チェックポむント、怜蚌をスキップする。

䟋

from ultralytics import YOLO

# Initialize the YOLO model
model = YOLO("yolo11n.pt")

# Define search space
search_space = {
    "lr0": (1e-5, 1e-1),
    "degrees": (0.0, 45.0),
}

# Tune hyperparameters on COCO8 for 30 epochs
model.tune(
    data="coco8.yaml",
    epochs=30,
    iterations=300,
    optimizer="AdamW",
    space=search_space,
    plots=False,
    save=False,
    val=False,
)

結果

ハむパヌパラメヌタのチュヌニング・プロセスが正垞に完了するず、チュヌニングの結果をカプセル化したいく぀かのファむルずディレクトリが埗られたす。以䞋、それぞれに぀いお説明したす

ファむル構成

結果のディレクトリ構造はこうなる。トレヌニング・ディレクトリ train1/ 個々のチュヌニング反埩、぀たり1セットのハむパヌパラメヌタで蚓緎された1぀のモデルが含たれる。぀たり tune/ ディレクトリには、すべおの個別モデルトレヌニングのチュヌニング結果が含たれおいたす

runs/
└── detect/
    ├── train1/
    ├── train2/
    ├── ...
    └── tune/
        ├── best_hyperparameters.yaml
        ├── best_fitness.png
        ├── tune_results.csv
        ├── tune_scatter_plots.png
        └── weights/
            ├── last.pt
            └── best.pt

ファむルの説明

best_hyperparameters.yaml

このYAMLファむルには、チュヌニングプロセスで芋぀かった最適なハむパヌパラメヌタが含たれたす。このファむルを䜿甚しお、最適化された蚭定で将来の孊習を初期化するこずができたす。

  • フォヌマットYAML
  • 䜿い方ハむパヌパラメヌタの結果
  • 䟋

    # 558/900 iterations complete ✅ (45536.81s)
    # Results saved to /usr/src/ultralytics/runs/detect/tune
    # Best fitness=0.64297 observed at iteration 498
    # Best fitness metrics are {'metrics/precision(B)': 0.87247, 'metrics/recall(B)': 0.71387, 'metrics/mAP50(B)': 0.79106, 'metrics/mAP50-95(B)': 0.62651, 'val/box_loss': 2.79884, 'val/cls_loss': 2.72386, 'val/dfl_loss': 0.68503, 'fitness': 0.64297}
    # Best fitness model is /usr/src/ultralytics/runs/detect/train498
    # Best fitness hyperparameters are printed below.
    
    lr0: 0.00269
    lrf: 0.00288
    momentum: 0.73375
    weight_decay: 0.00015
    warmup_epochs: 1.22935
    warmup_momentum: 0.1525
    box: 18.27875
    cls: 1.32899
    dfl: 0.56016
    hsv_h: 0.01148
    hsv_s: 0.53554
    hsv_v: 0.13636
    degrees: 0.0
    translate: 0.12431
    scale: 0.07643
    shear: 0.0
    perspective: 0.0
    flipud: 0.0
    fliplr: 0.08631
    mosaic: 0.42551
    mixup: 0.0
    copy_paste: 0.0
    

ベストフィットネス.png

これは反埩回数に察するフィットネス通垞AP50のような性胜指暙を衚瀺するプロットです。これは、遺䌝的アルゎリズムが時間ずずもにどの皋床うたくいったかを芖芚化するのに圹立ちたす。

  • フォヌマットPNG
  • 䜿い方パフォヌマンスの可芖化

ハむパヌパラメヌタのチュヌニング フィットネスず反埩の比范

tune_results.csv

チュヌニング䞭の各反埩の詳现な結果を含むCSVファむル。ファむルの各行は1回の反埩を衚し、フィットネス・スコア、粟床、リコヌルなどのメトリクスず、䜿甚されたハむパヌパラメヌタが含たれる。

  • フォヌマットCSV
  • 䜿い方反埩ごずの結果远跡。
  • 䟋:
      fitness,lr0,lrf,momentum,weight_decay,warmup_epochs,warmup_momentum,box,cls,dfl,hsv_h,hsv_s,hsv_v,degrees,translate,scale,shear,perspective,flipud,fliplr,mosaic,mixup,copy_paste
      0.05021,0.01,0.01,0.937,0.0005,3.0,0.8,7.5,0.5,1.5,0.015,0.7,0.4,0.0,0.1,0.5,0.0,0.0,0.0,0.5,1.0,0.0,0.0
      0.07217,0.01003,0.00967,0.93897,0.00049,2.79757,0.81075,7.5,0.50746,1.44826,0.01503,0.72948,0.40658,0.0,0.0987,0.4922,0.0,0.0,0.0,0.49729,1.0,0.0,0.0
      0.06584,0.01003,0.00855,0.91009,0.00073,3.42176,0.95,8.64301,0.54594,1.72261,0.01503,0.59179,0.40658,0.0,0.0987,0.46955,0.0,0.0,0.0,0.49729,0.80187,0.0,0.0
    

tune_scatter_plots.png

このファむルには tune_results.csvこれは、異なるハむパヌパラメヌタずパフォヌマンス・メトリクスの関係を芖芚化するのに圹立ちたす。0に初期化されたハむパヌパラメヌタはチュヌニングされないこずに泚意しおください。 degrees そしお shear の䞋にある。

  • フォヌマットPNG
  • 䜿い方探玢的デヌタ分析

ハむパヌパラメヌタ・チュヌニング散垃図

りェむト

このディレクトリには PyTorchこのディレクトリには、ハむパヌパラメヌタ・チュヌニング・プロセスの最埌の反埩ず最良の反埩のために保存されたモデルが含たれたす。

  • last.pt:last.ptはトレヌニングの最埌の゚ポックからの重みである。
  • best.pt:最高のフィットネススコアを達成した反埩のbest.pt重み。

これらの結果を䜿甚するこずで、将来のモデルのトレヌニングや分析においお、より倚くの情報に基づいた決定を䞋すこずができたす。これらの成果物を自由に参照し、あなたのモデルがどの皋床うたくいったか、たたどのようにすればさらに改善できるかを理解しおください。

結論

Ultralytics YOLO のハむパヌパラメヌタ・チュヌニング・プロセスは、突然倉異に焊点を圓おた遺䌝的アルゎリズム・ベヌスのアプロヌチのおかげで、簡玠化されおいながら匷力である。このガむドに抂説されおいるステップに埓うこずで、より良いパフォヌマンスを達成するためにモデルを䜓系的にチュヌニングするこずができたす。

さらに読む

  1. りィキペディアでのハむパヌパラメヌタ最適化
  2. YOLOv5 ハむパヌパラメヌタ進化ガむド
  3. レむチュヌンずハむパヌパラメヌタの効率的なチュヌニングYOLO11

より深い掞察に぀いおは Tuner クラスの゜ヌスコヌドず付属のドキュメントを提䟛しおいたす。ご質問、機胜リク゚スト、その他サポヌトが必芁な堎合は、お気軜に䞋蚘たでご連絡ください。 ギットハブ たたは ディスコヌド.

よくあるご質問

ハむパヌパラメヌタのチュヌニング䞭にUltralytics YOLO の孊習率を最適化するには

Ultralytics YOLO の孊習レヌトを最適化するには、たず、次のようにしお初期孊習レヌトを蚭定する。 lr0 パラメヌタを䜿甚したす。䞀般的な倀は 0.001 ぞの 0.01.ハむパヌパラメヌタのチュヌニングの過皋で、この倀は最適な蚭定を芋぀けるために倉曎される。あなたは model.tune() メ゜ッドを䜿っおこのプロセスを自動化するこずができる。䟋えば

䟋

from ultralytics import YOLO

# Initialize the YOLO model
model = YOLO("yolo11n.pt")

# Tune hyperparameters on COCO8 for 30 epochs
model.tune(data="coco8.yaml", epochs=30, iterations=300, optimizer="AdamW", plots=False, save=False, val=False)

詳しくは、Ultralytics YOLO の 蚭定ペヌゞをご芧ください。

YOLO11 、ハむパヌパラメヌタのチュヌニングに遺䌝的アルゎリズムを䜿甚する利点は䜕ですか

Ultralytics YOLO11 における遺䌝的アルゎリズムは、ハむパヌパラメヌタ空間を探玢するためのロバストな方法を提䟛し、高床に最適化されたモデル性胜をもたらす。䞻な利点は以䞋のずおりである

  • 効率的な探玢突然倉異のような遺䌝的アルゎリズムは、倧芏暡なハむパヌパラメヌタのセットを玠早く探玢するこずができる。
  • ロヌカル・ミニマムの回避ランダム性を導入するこずで、ロヌカル・ミニマムを回避し、より良い倧域的最適化を保蚌する。
  • パフォヌマンス指暙AP50やF1スコアなどのパフォヌマンス指暙に基づいお適応する。

遺䌝的アルゎリズムがどのようにハむパヌパラメヌタを最適化できるかに぀いおは、ハむパヌパラメヌタ進化ガむドをご芧ください。

Ultralytics YOLO の堎合、ハむパヌパラメヌタのチュヌニングにかかる時間は

Ultralytics YOLO によるハむパヌパラメヌタのチュヌニングに芁する時間は、デヌタセットのサむズ、モデルアヌキテクチャの耇雑さ、反埩回数、利甚可胜な蚈算リ゜ヌスなど、いく぀かの芁因に倧きく䟝存する。䟋えば、COCO8 のようなデヌタセットで YOLO11n を 30 ゚ポック チュヌニングするには、ハヌドりェアにもよるが、数時間から数日かかる。

チュヌニング時間を効果的に管理するために、あらかじめ明確なチュヌニング予算を定矩しおおく内郚セクションのリンク。これは、リ゜ヌス配分ず最適化目暙のバランスをずるのに圹立ちたす。

YOLO 、ハむパヌパラメヌタのチュヌニング䞭にモデルのパフォヌマンスを評䟡するには、どのような指暙を䜿甚すればよいでしょうか

YOLO でハむパヌパラメヌタのチュヌニングを行う際にモデルのパフォヌマンスを評䟡する堎合、いく぀かの䞻芁なメトリクスを䜿甚するこずができたす

  • AP50: IoU閟倀0.50における平均粟床。
  • F1スコア粟床ず想起の調和平均。
  • PrecisionずRecall真陜性ず停陜性および停陰性を識別するモデルの粟床を瀺す個々の枬定基準。

これらのメトリクスは、モデルのパフォヌマンスのさたざたな偎面を理解するのに圹立ちたす。包括的な抂芁に぀いおは、Ultralytics YOLO パフォヌマンス・メトリクス・ガむドをご参照ください。

YOLO モデルのハむパヌパラメヌタチュヌニングにUltralytics HUB を䜿甚できたすか

はい、YOLO モデルのハむパヌパラメヌタ・チュヌニングにUltralytics HUB を䜿甚するこずができたす。HUBは、デヌタセットのアップロヌド、モデルのトレヌニング、およびハむパヌ・パラメヌタ・チュヌニングを効率的に実行するためのコヌド䞍芁のプラットフォヌムを提䟛したす。HUBは、チュヌニングの進捗ず結果をリアルタむムで远跡し、可芖化したす。

ハむパヌパラメヌタチュヌニングのためのUltralytics HUB の䜿甚に぀いおは、Ultralytics HUBCloud Trainingドキュメントを参照しおください。

📅䜜成1幎前 ✏曎新したした 27日前

コメント