Epoch
Erfahre, was eine Epoche im Machine Learning ist und wie sie das Modelltraining beeinflusst. Entdecke Optimierungsmöglichkeiten, vermeide Overfitting und trainiere Ultralytics YOLO26 mit Leichtigkeit.
Eine Epoche stellt einen vollständigen Durchlauf durch den gesamten Trainingsdatensatz durch einen Algorithmus für maschinelles Lernen dar. Während dieses Prozesses kann das Modell seine internen Parameter auf Grundlage jedes einzelnen Datenbeispiels genau einmal aktualisieren. Im Kontext des Deep Learning reicht ein einzelner Durchlauf nur selten aus, damit ein neuronales Netzwerk komplexe Muster effektiv erlernt. Daher umfasst das Training typischerweise mehrere Epochen, sodass der Lernalgorithmus sein Verständnis iterativ verfeinern und den Fehler zwischen seinen Vorhersagen und den tatsächlichen Referenzwerten minimieren kann.
Die Rolle von Epochen bei der Optimierung#
Das Hauptziel des Trainings besteht darin, die Modellgewichte anzupassen, um eine bestimmte Verlustfunktion zu minimieren. Optimierungsalgorithmen wie der stochastische Gradientenabstieg (SGD) oder der Adam-Optimierer verwenden den während jeder Epoche berechneten Fehler, um diese Anpassungen zu steuern. Mit zunehmender Anzahl an Epochen wechselt das Modell im Allgemeinen von einem Zustand mit hohem Fehler (zufälliges Raten) zu einem Zustand mit geringerem Fehler (erlernte Muster).
Die Auswahl der richtigen Anzahl an Epochen ist jedoch ein entscheidender Aspekt der Hyperparameter-Optimierung.
- 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 Rauschen der Trainingsdaten einprägt, anstatt auf neue Daten zu generalisieren. Um dies zu verhindern, überwachen Entwickler häufig die Leistung anhand von Validierungsdaten und setzen Techniken wie Early Stopping ein, um das Training zu beenden, sobald sich die Generalisierungsfähigkeit nicht mehr verbessert.
Epoche vs. Batch vs. Iteration#
Anfänger verwechseln „Epoche“ häufig mit verwandten Begriffen. Für die korrekte Konfiguration von Trainingsschleifen ist es wichtig, die Hierarchie dieser Konzepte zu verstehen:
- Epoche: Ein vollständiger Durchlauf durch den gesamten Datensatz.
- Batch: Eine Teilmenge des Datensatzes, die gleichzeitig verarbeitet wird. Da Datensätze häufig zu groß sind, um vollständig in den GPU-Speicher zu passen, werden sie anhand der Batchgröße in kleinere Gruppen aufgeteilt.
- Iteration: Eine einzelne Aktualisierung der Modellgewichte. Wenn ein Datensatz 1.000 Bilder umfasst und die Batchgröße 100 beträgt, sind 10 Iterationen erforderlich, um eine Epoche abzuschließen.
Anwendungen in der Praxis#
Die erforderliche Anzahl an Epochen variiert je nach Komplexität der Aufgabe und Größe der Daten erheblich.
- Medizinische Bildanalyse: Bei der medizinischen Bildanalyse, beispielsweise bei der Erkennung von Tumoren in MRT-Aufnahmen, ist Genauigkeit von größter Bedeutung. Für diese Aufgaben trainierte Modelle durchlaufen häufig Hunderte von Epochen. Durch dieses umfangreiche Training kann das Faltungsneuronale Netzwerk (CNN) subtile Anomalien erkennen, die bösartiges von gesundem Gewebe unterscheiden, und dadurch möglicherweise Leben retten.
- Autonomes Fahren: Bei autonomen Fahrzeugen müssen Objekterkennungsmodelle Fußgänger, Verkehrszeichen und andere Fahrzeuge zuverlässig identifizieren. Das Training dieser robusten Systeme umfasst typischerweise umfangreiche Datensätze wie COCO oder Objects365. Obwohl der Datensatz sehr groß ist, benötigt das Modell weiterhin mehrere Epochen, um zu einer Lösung zu konvergieren, die sich gut auf unterschiedliche Wetter- und Lichtbedingungen verallgemeinern lässt.
Trainingszyklen mit Code verwalten#
Bei der Verwendung moderner Frameworks wie Ultralytics YOLO wird die Anzahl der Epochen als unkompliziertes Argument im Trainingsbefehl festgelegt. Tools wie die Ultralytics Platform können dabei helfen, die Verlustkurven über die einzelnen Epochen hinweg zu visualisieren und den optimalen Abbruchpunkt zu bestimmen.
Das folgende Beispiel zeigt, wie du beim Training eines YOLO26-Modells die Anzahl der Epochen 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 Codeausschnitt weist das Argument epochs=50 die Trainings-Engine an, den Datensatz coco8.yaml 50 verschiedene Male zu durchlaufen. Während jedes Durchlaufs führt das Modell Vorwärtspropagation und Rückwärtspropagation durch, um seine Fähigkeiten zur Objekterkennung zu verfeinern.









