Erfahren Sie, was eine Epoche im maschinellen Lernen ist und wie sie sich auf das Modelltraining auswirkt. Entdecken Sie Optimierungsmöglichkeiten, vermeiden Sie Überanpassung und trainieren Sie Ultralytics ganz einfach.
Eine Epoche stellt einen vollständigen Durchlauf des gesamten Trainingsdatensatzes durch einen Algorithmus für maschinelles Lernen dar. Während dieses Prozesses hat das Modell die Möglichkeit, seine internen Parameter auf der Grundlage jedes einzelnen Datensatzes genau einmal zu aktualisieren. Im Zusammenhang mit Deep Learning reicht ein einziger Durchlauf selten aus, damit ein neuronales Netzwerk komplexe Muster effektiv erlernen kann. Daher umfasst das Training in der Regel mehrere Epochen, wodurch der Lernalgorithmus sein Verständnis iterativ verfeinern und den Fehler zwischen seinen Vorhersagen und der tatsächlichen Grundwahrheit minimieren kann.
Das primäre Ziel des Trainings besteht darin, die Modellgewichte so anzupassen, dass eine bestimmte Verlustfunktion minimiert wird. Optimierungsalgorithmen wie stochastische Gradientenabnahme (SGD) oder der Adam verwenden den während jeder Epoche berechneten Fehler , um diese Anpassungen zu steuern. Mit zunehmender Anzahl von Epochen verschiebt sich das Modell im Allgemeinen von einem Zustand mit hohem Fehler (zufälliges Raten) zu einem Zustand mit geringerem Fehler (gelernte Muster).
Die Auswahl der richtigen Anzahl von Epochen ist jedoch ein kritischer Aspekt der Hyperparameter-Optimierung.
Anfänger verwechseln häufig den Begriff „Epoche” mit verwandten Begriffen. Das Verständnis der Hierarchie dieser Konzepte ist für die korrekte Konfiguration von Trainingsschleifen unerlässlich:
Die Anzahl der erforderlichen Epochen variiert stark je nach Komplexität der Aufgabe und Größe der Daten.
Bei der Verwendung moderner Frameworks wie Ultralytics YOLOist die Definition der Anzahl der Epochen ein einfaches Argument im Trainingsbefehl. Tools wie die Ultralytics können dabei helfen, die Verlustkurven über jede Epoche hinweg zu visualisieren , um den optimalen Haltepunkt zu identifizieren.
Das folgende Beispiel zeigt, wie die Epochenanzahl beim Training eines YOLO26- Modells festgelegt wird:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train the model for 50 epochs
# The 'epochs' argument determines how many times the model sees the entire dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
In diesem Ausschnitt wird die epochs=50 Das Argument weist die Trainings-Engine an, die
coco8.yaml Datensatz 50 Mal. Während jedes Zyklus führt das Modell
Vorwärtsausbreitung und
Backpropagation um seine Erkennungsfähigkeiten zu verfeinern
.