コンテンツぞスキップ

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

はじめに

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

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

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

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

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

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

遺䌝的進化ず突然倉異

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

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

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

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

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

ステップ

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

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

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

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

鉄道暡型

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

モデルの評䟡

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

ログ結果

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

リピヌト

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

䜿甚䟋

の䜿い方は以䞋の通り。 model.tune() メ゜ッドを利甚する。 Tuner YOLOv8n クラスは、COCO8䞊で、AdamWオプティマむザを甚いお30゚ポックのハむパヌパラメヌタチュヌニングを行い、チュヌニングの高速化のために最終゚ポック以倖のプロット、チェックポむント、怜蚌をスキップする。

䟋

from ultralytics import YOLO

# Initialize the YOLO model
model = YOLO("yolov8n.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)

結果

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

ファむル構成

結果のディレクトリ構造はこうなる。トレヌニング・ディレクトリ 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. レむチュヌンずハむパヌパラメヌタの効率的なチュヌニングYOLOv8

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

よくあるご質問

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

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

䟋

from ultralytics import YOLO

# Initialize the YOLO model
model = YOLO("yolov8n.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 の 蚭定ペヌゞをご芧ください。

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

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

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

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

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

Ultralytics YOLO によるハむパヌパラメヌタのチュヌニングに芁する時間は、デヌタセットのサむズ、モデルアヌキテクチャの耇雑さ、反埩回数、利甚可胜な蚈算リ゜ヌスなど、いく぀かの芁因に倧きく䟝存する。䟋えば、COCO8 のようなデヌタセットでYOLOv8n を 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ドキュメントを参照しおください。



䜜成日2023-11-12 曎新日2024-07-05
䜜成者glenn-jocher(11)

コメント