Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Epoche

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.

Die Rolle von Epochen bei der Optimierung

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.

  • Zu wenige Epochen: Dies kann zu einer Unteranpassung führen, bei der das Modell den zugrunde liegenden Trend der Daten noch nicht erfasst hat.
  • Zu viele Epochen: Dies führt häufig zu Überanpassung, wobei das Modell das Trainingsrauschen speichert, anstatt auf neue Daten zu generalisieren. Um dies zu verhindern, überwachen Entwickler häufig die Leistung anhand von Validierungsdaten und wenden Techniken wie Early Stopping an, um das Training zu beenden, wenn sich die Generalisierung nicht mehr verbessert.

Epoche vs. Batch vs. Iteration

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:

  • 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 auf einmal in GPU zu passen, werden sie in kleinere Gruppen unterteilt, die durch die Batchgröße
  • Iteration: Eine einzelne Aktualisierung der Gewichte des Modells. Wenn ein Datensatz 1.000 Bilder enthält und die Batchgröße 100 beträgt, sind 10 Iterationen erforderlich, um eine Epoche abzuschließen.

Anwendungsfälle in der Praxis

Die Anzahl der erforderlichen Epochen variiert stark je nach Komplexität der Aufgabe und Größe der Daten.

  • Medizinische Bildanalyse: Bei der medizinischen Bildanalyse, wie beispielsweise der Erkennung von Tumoren in MRT-Scans, ist Genauigkeit von größter Bedeutung. Für diese Aufgaben trainierte Modelle 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 und möglicherweise Leben retten.
  • Autonomes Fahren: Bei autonomen Fahrzeugen müssen Objekteerkennungsmodelle Fußgänger, Verkehrszeichen und andere Fahrzeuge zuverlässig identifizieren. Das Training dieser robusten Systeme erfordert in der Regel riesige Datensätze wie COCO oder Objects365. Trotz der enormen Größe des Datensatzes benötigt das Modell immer noch mehrere Epochen, um zu einer Lösung zu konvergieren, die sich gut auf unterschiedliche Wetter- und Lichtverhältnisse verallgemeinern lässt.

Verwaltung von Trainingszyklen mit Code

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 .

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten