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 Trainingsdatensatz durch einen Machine-Learning-Algorithmus dar. Während dieses Prozesses hat das Modell die Möglichkeit, seine internen Parameter anhand jedes Datensatzbeispiels genau einmal zu aktualisieren. Im Kontext von Deep Learning ist ein einzelner Durchlauf selten ausreichend, damit ein neuronales Netzwerk komplexe Muster effektiv erlernen kann. Daher umfasst das Training typischerweise mehrere Epochen, was dem Lernalgorithmus ermöglicht, sein Verständnis iterativ zu verfeinern und den Fehler zwischen seinen Vorhersagen und der tatsächlichen Ground Truth zu minimieren.
Link to this sectionDie Rolle von Epochen bei der Optimierung#
Das Hauptziel des Trainings ist es, die Modellgewichte so anzupassen, dass eine spezifische Verlustfunktion minimiert wird. Optimierungsalgorithmen wie der stochastische Gradientenabstieg (SGD) oder der Adam-Optimizer verwenden den während jeder Epoche berechneten Fehler, um diese Anpassungen zu steuern. Mit zunehmender Anzahl der Epochen verschiebt sich das Modell im Allgemeinen von einem Zustand mit hohem Fehler (zufälliges Raten) hin zu einem geringeren Fehler (erlernte Muster).
Die Auswahl der richtigen Anzahl an Epochen ist jedoch ein kritischer Aspekt des Hyperparameter-Tunings.
- 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 oft zu Overfitting, wobei das Modell das Trainingsrauschen auswendig lernt, anstatt auf neue Daten zu generalisieren. Um dies zu verhindern, überwachen Entwickler häufig die Leistung auf Validierungsdaten und setzen Techniken wie Early Stopping ein, um das Training zu beenden, wenn sich die Generalisierung nicht weiter verbessert.
Link to this sectionEpoche vs. Batch vs. Iteration#
Es ist für Anfänger üblich, "Epoche" mit verwandten Begriffen zu verwechseln. Das Verständnis der Hierarchie dieser Konzepte ist für die korrekte Konfiguration von Trainingsschleifen unerlässlich:
- 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 in den GPU-Speicher zu passen, werden sie in kleinere Gruppen unterteilt, die durch die Batchgröße 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.
Link to this sectionPraxisanwendungen#
Die Anzahl der benötigten Epochen variiert drastisch je nach Komplexität der Aufgabe und der Größe der Daten.
- Medizinische Bildanalyse: In der medizinischen Bildanalyse, wie etwa bei der Erkennung von Tumoren in MRT-Scans, ist Genauigkeit von größter Bedeutung. Modelle, die für diese Aufgaben trainiert werden, laufen oft über Hunderte von Epochen. Dieses umfangreiche Training stellt sicher, dass das Convolutional Neural Network (CNN) subtile Anomalien erkennen kann, die bösartiges Gewebe von gesundem Gewebe unterscheiden, was möglicherweise Leben retten kann.
- Autonomes Fahren: Bei autonomen Fahrzeugen müssen Objekterkennungsmodelle zuverlässig Fußgänger, Schilder und andere Fahrzeuge identifizieren. Das Training dieser robusten Systeme umfasst typischerweise massive Datensätze wie COCO oder Objects365. Obwohl die Datensatzgröße riesig ist, erfordert das Modell dennoch mehrere Epochen, um bei einer Lösung zu konvergieren, die sich gut auf diverse Wetter- und Lichtbedingungen verallgemeinern lässt.
Link to this sectionVerwaltung von Trainingszyklen mit Code#
Wenn du moderne Frameworks wie Ultralytics YOLO verwendest, ist die Definition der Anzahl der Epochen ein einfaches Argument im Trainingsbefehl. Tools wie die Ultralytics Platform können dabei helfen, die Verlustkurven über jede Epoche hinweg zu visualisieren, um den optimalen Endpunkt zu identifizieren.
Das folgende Beispiel zeigt, wie du die Epochenanzahl beim Training eines YOLO26-Modells festlegst:
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 Schnipsel weist das Argument epochs=50 die Trainings-Engine an, den coco8.yaml-Datensatz 50 Mal vollständig zu durchlaufen. Während jedes Zyklus führt das Modell Forward Propagation und Backpropagation durch, um seine Erkennungsfähigkeiten zu verfeinern.






