コンテンツぞスキップ

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

はじめに

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



芋るんだ モデル性胜を向䞊させるハむパヌパラメヌタのチュヌニング方法 🚀 🚀 モデル性胜を向䞊させるハむパヌパラメヌタのチュヌニング方法

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

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

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

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

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

遺䌝的進化ず突然倉異

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

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

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

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

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

ステップ

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

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

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

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

鉄道暡型

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

モデルの評䟡

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

ログ結果

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

リピヌト

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

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

次の衚は、YOLO11 におけるハむパヌパラメヌタのチュヌニングのためのデフォルトの探玢空間パラメヌタの䞀芧です。各パラメヌタは、タプル (min, max).

パラメヌタ タむプ 倀の範囲 説明
lr0 float (1e-5, 1e-1) トレヌニング開始時の初期孊習率。倀が小さいほど孊習は安定するが、収束は遅くなる。
lrf float (0.01, 1.0) lr0に察する最終孊習率の割合。孊習率がトレヌニング䞭にどの皋床枛少するかを制埡する。
momentum float (0.6, 0.98) SGD運動量係数。倀が倧きいほど募配の方向が䞀定に保たれ、収束が早くなりたす。
weight_decay float (0.0, 0.001) オヌバヌフィッティングを防ぐためのL2正則化係数。倀が倧きいほど正則化が匷くなる
warmup_epochs float (0.0, 5.0) 線圢孊習率りォヌムアップの゚ポック数。初期トレヌニングの䞍安定性を防ぐ
warmup_momentum float (0.0, 0.95) りォヌムアップ期の初期運動量。最終運動量たで埐々に増加
box float (0.02, 0.2) 党損倱関数におけるバりンディングボックス損倱の重み。バりンディングボックス回垰ず分類のバランス
cls float (0.2, 4.0) 党損倱関数における分類損倱の重み。倀が倧きいほど、正しいクラス予枬が匷調される。
hsv_h float (0.0, 0.1) HSV色空間におけるランダムな色盞拡匵範囲。カラヌバリ゚ヌション党䜓におけるモデルの䞀般化を支揎
hsv_s float (0.0, 0.9) HSV空間のランダムな圩床増加範囲。異なる照明条件をシミュレヌト
hsv_v float (0.0, 0.9) 乱数倀茝床増倧範囲。モデルが異なる露光レベルに察応しやすくなる
degrees float (0.0, 45.0) 床単䜍での最倧回転増倧。モデルがオブゞェクトの向きに察しお䞍倉になるのを助ける
translate float (0.0, 0.9) 画像サむズに占める䞊進補匷の割合を最倧化。オブゞェクトの䜍眮に察するロバスト性を向䞊
scale float (0.0, 0.9) ランダムな拡倧瞮小範囲。モデルが異なるサむズの物䜓を怜出するのを助ける
shear float (0.0, 10.0) 床単䜍で最倧剪断増倧。トレヌニング画像に遠近法のような歪みを加える
perspective float (0.0, 0.001) ランダムなパヌスペクティブ拡匵範囲。異なる芖野角をシミュレヌト
flipud float (0.0, 1.0) トレヌニング䞭に画像が垂盎方向に反転する確率。俯瞰/空撮画像に有効。
fliplr float (0.0, 1.0) 画像が氎平方向に反転する確率。物䜓の方向に察しおモデルが䞍倉になるのを助ける
mosaic float (0.0, 1.0) 4枚の画像を合成するモザむク補匷を䜿甚する確率。特に小さな物䜓の怜出に有効
mixup float (0.0, 1.0) 2぀の画像をブレンドするミックスアップ補匷を䜿甚する確率。モデルのロバスト性を向䞊させるこずができる
copy_paste float (0.0, 1.0) コピヌペヌスト補匷を䜿甚する確率。むンスタンスのセグメンテヌション性胜の向䞊に圹立぀

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

ここでは、探玢空間を定矩しお 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幎前 ✏曎新1ヶ月前

コメント