Epoch
Lerne, was eine Epoche beim maschinellen Lernen ist und wie sie sich auf das Modelltraining auswirkt. Erforsche Optimierung, vermeide Overfitting und trainiere Ultralytics YOLO26 ganz einfach.
Eine Epoche stellt einen vollständigen Durchlauf durch den gesamten training dataset durch einen Algorithmus für maschinelles Lernen dar. Während dieses Prozesses hat das Modell die Möglichkeit, seine internen Parameter basierend auf jedem Beispiel in den Daten genau einmal zu aktualisieren. Im Kontext von deep learning reicht ein einzelner Durchlauf selten aus, damit ein neural network komplexe Muster effektiv lernt. Daher umfasst das Training typischerweise mehrere Epochen, wodurch der Lernalgorithmus sein Verständnis iterativ verfeinern und den Fehler zwischen seinen Vorhersagen und der tatsächlichen Ground Truth minimieren kann.
Die Rolle von Epochen bei der Optimierung#
Das primäre Ziel des Trainings besteht darin, model weights anzupassen, um eine spezifische loss function zu minimieren. Optimierungsalgorithmen wie stochastic gradient descent (SGD) oder der Adam optimizer verwenden den während jeder Epoche berechneten Fehler, um diese Anpassungen zu steuern. Mit zunehmender Anzahl der Epochen wechselt das Modell im Allgemeinen von einem Zustand hoher Fehler (zufälliges Raten) zu geringeren Fehlern (gelernten Mustern).
Die Auswahl der korrekten Anzahl an Epochen ist jedoch ein entscheidender Aspekt des hyperparameter tuning.
- Zu wenige Epochen: Dies kann zu underfitting führen, bei dem das Modell den zugrunde liegenden Trend der Daten noch nicht erfasst hat.
- Zu viele Epochen: Dies führt häufig zu overfitting, bei dem sich das Modell das Trainingsrauschen merkt, anstatt auf neue Daten zu verallgemeinern. Um dies zu verhindern, überwachen Entwickler häufig die Leistung auf validation data und setzen Techniken wie early stopping ein, um das Training anzuhalten, wenn sich die Verallgemeinerung nicht mehr verbessert.
Epoche vs. Batch vs. Iteration#
Es kommt häufig vor, dass Anfänger „Epoche“ mit verwandten Begriffen verwechseln. Das Verständnis der Hierarchie dieser Konzepte ist essenziell, um training loops korrekt zu konfigurieren:
- Epoche: Ein vollständiger Durchlauf durch den gesamten Datensatz.
- Batch: Eine Teilmenge des Datensatzes, die gleichzeitig verarbeitet wird. Da Datensätze oft zu groß sind, um vollständig auf einmal in den GPU memory zu passen, werden sie in kleinere Gruppen unterteilt, die durch die batch size definiert sind.
- Iteration: Eine einzelne Aktualisierung der Modellgewichte. Wenn ein Datensatz 1.000 Bilder enthält und die Batchgröße 100 beträgt, sind 10 Iterationen erforderlich, um eine Epoche abzuschließen.
Praxisanwendungen#
Die Anzahl der benötigten Epochen variiert drastisch je nach Komplexität der Aufgabe und der Größe der Daten.
- Medizinische Bildanalyse: In der medical image analysis, wie beispielsweise dem Erkennen von Tumoren in MRT-Scans, steht Genauigkeit an erster Stelle. Modelle, die für diese Aufgaben trainiert wurden, laufen oft über Hunderte von Epochen. Dieses umfangreiche Training stellt sicher, dass das convolutional neural network (CNN) subtile Anomalien erkennen kann, die malignes Gewebe von gesundem Gewebe unterscheiden, und möglicherweise Leben retten.
- Autonomes Fahren: Für autonomous vehicles müssen Objekterkennungsmodelle Fußgänger, Schildern und andere Fahrzeuge zuverlässig identifizieren. Das Training dieser robusten Systeme erfordert typischerweise massive Datensätze wie COCO oder Objects365. Obwohl die Datensatzgröße riesig ist, benötigt das Modell dennoch mehrere Epochen, um zu einer Lösung zu konvergieren, die sich gut auf verschiedene Wetter- und Lichtverhältnisse verallgemeinern lässt.
Verwaltung von Trainingszyklen mit Code#
When using modern frameworks like Ultralytics YOLO, defining the number of epochs is a straightforward argument in the training command. Tools like the Ultralytics Platform can help visualize the loss curves over each epoch to identify the optimal stopping point.
The following example demonstrates how to set the epoch count when training a YOLO26 model:
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 weist das Argument epochs=50 die Trainings-Engine an, den Datensatz coco8.yaml 50 Mal zu durchlaufen. Während jedes Zyklus führt das Modell forward propagation und backpropagation durch, um seine Erkennungsfähigkeiten zu verfeinern.






