Ultralytics YOLO Hyperparameter-Tuning-Leitfaden
EinfĂĽhrung
Die Abstimmung von Hyperparametern ist nicht nur eine einmalige Einrichtung, sondern ein iterativer Prozess, der darauf abzielt, die Leistungskennzahlen des maschinellen Lernmodells, wie Genauigkeit, Präzision und Wiedererkennung, zu optimieren. Im Kontext von Ultralytics YOLO können diese Hyperparameter von der Lernrate bis hin zu architektonischen Details reichen, wie z. B. die Anzahl der Schichten oder die Art der verwendeten Aktivierungsfunktionen.
Was sind Hyperparameter?
Hyperparameter sind übergeordnete, strukturelle Einstellungen für den Algorithmus. Sie werden vor der Trainingsphase festgelegt und bleiben während der Trainingsphase konstant. Hier sind einige häufig eingestellte Hyperparameter in Ultralytics YOLO :
- Lernrate
lr0
: Bestimmt die Schrittweite bei jeder Iteration und bewegt sich dabei auf ein Minimum in der Verlustfunktion. - Größe der Charge
batch
: Anzahl der Bilder, die gleichzeitig in einem Vorwärtsdurchlauf verarbeitet werden. - Anzahl der Epochen
epochs
: Eine Epoche ist ein vollständiger Vorwärts- und Rückwärtsdurchlauf aller Trainingsbeispiele. - Besonderheiten der Architektur: Wie z.B. Anzahl der Kanäle, Anzahl der Schichten, Arten von Aktivierungsfunktionen, usw.
Eine vollständige Liste der in YOLO11 verwendeten Augmentationshyperparameter finden Sie auf der Seite Konfigurationen.
Genetische Evolution und Mutation
Ultralytics YOLO verwendet genetische Algorithmen zur Optimierung von Hyperparametern. Genetische Algorithmen sind von den Mechanismen der natĂĽrlichen Selektion und der Genetik inspiriert.
- Mutation: Im Zusammenhang mit Ultralytics YOLO hilft die Mutation bei der lokalen Suche im Hyperparameterraum, indem kleine, zufällige Änderungen an bestehenden Hyperparametern vorgenommen werden, die neue Kandidaten für die Bewertung hervorbringen.
- Crossover: Obwohl Crossover eine beliebte Technik der genetischen Algorithmen ist, wird sie derzeit in Ultralytics YOLO nicht zur Abstimmung der Hyperparameter verwendet. Der Schwerpunkt liegt hauptsächlich auf der Mutation zur Erzeugung neuer Hyperparametersätze.
Vorbereiten der Hyperparameter-Abstimmung
Bevor Sie mit dem Tuning beginnen, ist es wichtig, dass Sie:
- Bestimmen Sie die Metriken: Bestimmen Sie die Metriken, die Sie zur Bewertung der Leistung des Modells verwenden wollen. Dies können AP50, F1-Score oder andere sein.
- Legen Sie das Tuning-Budget fest: Legen Sie fest, wie viele Rechenressourcen Sie bereit sind, zuzuweisen. Die Abstimmung von Hyperparametern kann rechenintensiv sein.
Beteiligte Schritte
Initialisierung von Hyperparametern
Beginnen Sie mit einem vernünftigen Satz von Anfangshyperparametern. Dies können entweder die Standard-Hyperparameter sein, die von Ultralytics YOLO festgelegt wurden, oder etwas, das auf Ihrem Fachwissen oder früheren Experimenten basiert.
Hyperparameter mutieren
Verwenden Sie die _mutate
Methode, um einen neuen Satz von Hyperparametern auf der Grundlage des bestehenden Satzes zu erstellen.
Zugmodell
Das Training wird mit dem veränderten Satz von Hyperparametern durchgeführt. Anschließend wird die Trainingsleistung bewertet.
Modell auswerten
Verwenden Sie Metriken wie AP50, F1-Score oder benutzerdefinierte Metriken, um die Leistung des Modells zu bewerten.
Log-Ergebnisse
Es ist von entscheidender Bedeutung, sowohl die Leistungskennzahlen als auch die entsprechenden Hyperparameter zu protokollieren, um sie in Zukunft verwenden zu können.
Wiederholen Sie
Der Vorgang wird so lange wiederholt, bis entweder die festgelegte Anzahl von Iterationen erreicht ist oder die Leistungskennzahl zufriedenstellend ist.
Beispiel fĂĽr die Verwendung
Hier erfahren Sie, wie Sie die model.tune()
Methode zur Nutzung der Tuner
Klasse fĂĽr das Hyperparameter-Tuning von YOLO11n auf COCO8 fĂĽr 30 Epochen mit einem AdamW-Optimierer und Ăśberspringen von Plotten, Checkpointing und Validierung auĂźer in der letzten Epoche fĂĽr ein schnelleres Tuning.
Beispiel
Ergebnisse
Nachdem Sie die Abstimmung der Hyperparameter erfolgreich abgeschlossen haben, erhalten Sie mehrere Dateien und Verzeichnisse, in denen die Ergebnisse der Abstimmung enthalten sind. Im Folgenden werden die einzelnen Dateien beschrieben:
Dateistruktur
So sieht die Verzeichnisstruktur der Ergebnisse aus. Trainingsverzeichnisse wie train1/
enthalten einzelne Abstimmungsiterationen, d. h. ein Modell, das mit einem Satz von Hyperparametern trainiert wurde. Die tune/
enthält die Abstimmungsergebnisse aus allen einzelnen Modelltrainings:
runs/
└── detect/
├── train1/
├── train2/
├── ...
└── tune/
├── best_hyperparameters.yaml
├── best_fitness.png
├── tune_results.csv
├── tune_scatter_plots.png
└── weights/
├── last.pt
└── best.pt
Datei-Beschreibungen
best_hyperparameters.yaml
Diese YAML-Datei enthält die besten Hyperparameter, die während des Tuning-Prozesses gefunden wurden. Sie können diese Datei verwenden, um zukünftige Trainings mit diesen optimierten Einstellungen zu initialisieren.
- Format: YAML
- Verwendung: Hyperparameter-Ergebnisse
-
Beispiel:
# 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
beste_fitness.png
Dies ist ein Diagramm, das die Fitness (in der Regel eine Leistungskennzahl wie AP50) gegen die Anzahl der Iterationen darstellt. So können Sie sich ein Bild davon machen, wie gut der genetische Algorithmus im Laufe der Zeit abgeschnitten hat.
- Format: PNG
- Verwendung: Leistungsvisualisierung
tune_results.csv
Eine CSV-Datei mit detaillierten Ergebnissen jeder Iteration während der Optimierung. Jede Zeile in der Datei steht für eine Iteration und enthält Metriken wie Fitness-Score, Präzision, Recall sowie die verwendeten Hyperparameter.
- Format: CSV
- Verwendung: Verfolgung der Ergebnisse pro Iteration.
- Beispiel:
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
Diese Datei enthält Streudiagramme, die aus tune_results.csv
und hilft Ihnen, die Beziehungen zwischen verschiedenen Hyperparametern und Leistungsmetriken zu visualisieren. Beachten Sie, dass Hyperparameter, die auf 0 initialisiert sind, nicht abgestimmt werden, wie z. B. degrees
und shear
unten.
- Format: PNG
- Verwendung: Explorative Datenanalyse
Gewichte/
Dieses Verzeichnis enthält die gespeicherten PyTorch Modelle für die letzten und besten Iterationen während des Hyperparameter-Tuning-Prozesses.
last.pt
: Die letzten.pt sind die Gewichte der letzten Trainingsepoche.best.pt
: Die best.pt-Gewichte fĂĽr die Iteration, die das beste Fitness-Ergebnis erzielt hat.
Anhand dieser Ergebnisse können Sie fundiertere Entscheidungen für Ihre zukünftigen Modellschulungen und Analysen treffen. Sie können diese Artefakte gerne einsehen, um zu verstehen, wie gut Ihr Modell abgeschnitten hat und wie Sie es weiter verbessern können.
Schlussfolgerung
Der Prozess der Abstimmung der Hyperparameter in Ultralytics YOLO ist dank des auf Mutation basierenden genetischen Algorithmus vereinfacht und dennoch leistungsstark. Wenn Sie die in diesem Leitfaden beschriebenen Schritte befolgen, können Sie Ihr Modell systematisch abstimmen, um eine bessere Leistung zu erzielen.
Weitere LektĂĽre
- Hyperparameter-Optimierung in Wikipedia
- YOLOv5 Leitfaden fĂĽr die Entwicklung von Hyperparametern
- Effizientes Hyperparameter-Tuning mit Ray Tune und YOLO11
Wenn Sie tiefere Einblicke erhalten möchten, können Sie die Tuner
Quellcode der Klasse und die dazugehörige Dokumentation. Sollten Sie Fragen oder Funktionswünsche haben oder weitere Unterstützung benötigen, können Sie sich gerne an uns wenden unter GitHub oder Diskord.
FAQ
Wie kann ich die Lernrate für Ultralytics YOLO während der Abstimmung der Hyperparameter optimieren?
Um die Lernrate für Ultralytics YOLO zu optimieren, legen Sie zunächst eine anfängliche Lernrate fest, indem Sie die lr0
Parameter. Ăśbliche Werte reichen von 0.001
zu 0.01
. Während der Abstimmung der Hyperparameter wird dieser Wert verändert, um die optimale Einstellung zu finden. Sie können die model.tune()
Methode, um diesen Prozess zu automatisieren. Zum Beispiel:
Beispiel
Weitere Einzelheiten sind auf der KonfigurationsseiteUltralytics YOLO zu finden.
Welche Vorteile bietet die Verwendung genetischer Algorithmen fĂĽr die Abstimmung der Hyperparameter in YOLO11?
Genetische Algorithmen in Ultralytics YOLO11 bieten eine robuste Methode zur Erkundung des Hyperparameterraums, die zu einer hoch optimierten Modellleistung fĂĽhrt. Die wichtigsten Vorteile sind:
- Effiziente Suche: Genetische Algorithmen wie die Mutation können schnell einen großen Satz von Hyperparametern untersuchen.
- Vermeidung lokaler Minima: Durch die Einführung von Zufälligkeiten helfen sie bei der Vermeidung lokaler Minima und gewährleisten eine bessere globale Optimierung.
- Leistungsmetriken: Sie passen sich auf der Grundlage von Leistungsmetriken wie AP50 und F1-Score an.
Wie genetische Algorithmen Hyperparameter optimieren können, erfahren Sie im Leitfaden zur Entwicklung von Hyperparametern.
Wie lange dauert der Prozess der Abstimmung der Hyperparameter fĂĽr Ultralytics YOLO ?
Die Zeit, die für die Abstimmung der Hyperparameter mit Ultralytics YOLO benötigt wird, hängt weitgehend von mehreren Faktoren ab, wie z. B. der Größe des Datensatzes, der Komplexität der Modellarchitektur, der Anzahl der Iterationen und den verfügbaren Rechenressourcen. Zum Beispiel kann die Abstimmung von YOLO11n auf einem Datensatz wie COCO8 für 30 Epochen je nach Hardware mehrere Stunden bis Tage dauern.
Um die Abstimmungszeit effektiv zu verwalten, sollten Sie im Vorfeld ein klares Abstimmungsbudget festlegen(Link zum internen Abschnitt). Dies hilft bei der Abwägung zwischen Ressourcenzuweisung und Optimierungszielen.
Welche Metriken sollte ich zur Bewertung der Modellleistung während der Abstimmung der Hyperparameter in YOLO verwenden?
Bei der Bewertung der Modellleistung während der Abstimmung der Hyperparameter in YOLO können Sie mehrere Schlüsselmetriken verwenden:
- AP50: Die durchschnittliche Genauigkeit bei einem IoU-Schwellenwert von 0,50.
- F1-Score: Das harmonische Mittel aus Precision und Recall.
- Präzision und Rückgewinnung: Einzelne Metriken, die die Genauigkeit des Modells bei der Identifizierung von echten Positiven gegenüber falschen Positiven und falschen Negativen angeben.
Diese Metriken helfen Ihnen, verschiedene Aspekte der Leistung Ihres Modells zu verstehen. Einen umfassenden Ăśberblick finden Sie im Leitfaden fĂĽr Leistungskennzahlen unterUltralytics YOLO .
Kann ich Ultralytics HUB fĂĽr die Abstimmung der Hyperparameter von YOLO Modellen verwenden?
Ja, Sie können Ultralytics HUB für das Hyperparameter-Tuning von YOLO Modellen verwenden. Die HUB bietet eine Plattform ohne Code zum einfachen Hochladen von Datensätzen, zum Trainieren von Modellen und zur effizienten Abstimmung von Hyperparametern. Sie ermöglicht die Verfolgung und Visualisierung des Abstimmungsfortschritts und der Ergebnisse in Echtzeit.
Weitere Informationen zur Verwendung von Ultralytics HUB fĂĽr die Abstimmung von Hyperparametern finden Sie in der Dokumentation Ultralytics HUB Cloud Training.