Erfahren Sie mehr über Epochen beim maschinellen Lernen - wie sie sich auf die Modellschulung auswirken, eine Überanpassung verhindern und die Leistung mit Ultralytics YOLO optimieren.
Im Zusammenhang mit dem Training von Modelle der künstlichen Intelligenz (AI) bezeichnet eine Epoche einen vollständigen Durchlauf des gesamten Trainingsdatensatzes durch den Lernalgorithmus. Sie ist eine grundlegende Zeiteinheit für das Training von neuronaler Netze (NN) und markiert den Punkt, an dem das Modell die Möglichkeit hatte, aus jedem Muster der bereitgestellten Daten genau einmal zu lernen. Da Deep Learning Modelle selten eine optimale Leistung erreichen, nachdem sie die Daten nur ein einziges Mal gesehen haben, umfasst das Training normalerweise diesen Prozess über viele Epochen hinweg zu wiederholen, um Fehler zu minimieren und interne Parameter zu verfeinern.
Das Hauptziel während einer Epoche ist die Anpassung der Modellgewichte so anzupassen, dass die Eingaben den richtigen Ausgaben genau abzubilden. Während dieses Prozesses wird ein Optimierungsalgorithmus, wie z. B. der Stochastische Gradient DescentSGD), den Fehler anhand einer spezifischen Verlustfunktion und aktualisiert den internen Zustand des Modells.
Lernen in einem einzigen Durchgang ist oft unzureichend, da die Datensätze komplexe Variationen und Rauschen enthalten. Durch die Ausführung mehrerer Epochen verbessert das Modell iterativ seine Fähigkeit zur Durchführung von Aufgaben wie Bildklassifizierung oder Segmentierung. Diese iterative Verfeinerung ermöglicht es dem Netz, Muster aus den Trainingsdaten zu verallgemeinern Trainingsdaten zu verallgemeinern, anstatt sich nur bestimmte Beispiele. Deep Learning-Frameworks wie PyTorch und TensorFlow bieten eingebaute Mechanismen, um die Trainingsschleife über diese Zyklen zu steuern.
Um zu verstehen, wie Trainingsschleifen effizient funktionieren, ist es wichtig, zwischen drei eng miteinander verbundenen Begriffen zu unterscheiden Begriffen zu unterscheiden, die von Anfängern oft verwechselt werden:
Wenn Sie zum Beispiel einen Datensatz von 10.000 Bildern haben und eine Stapelgröße von 100 festlegen, dauert es 100 Iterationen, um eine Epoche eine Epoche abzuschließen.
Die Auswahl der richtigen Anzahl von Epochen ist ein entscheidender Aspekt der Abstimmung der Hyperparameter. Ein Training für zu wenige oder zu viele Zyklen kann zu suboptimaler Leistung führen.
Um diese Probleme zu entschärfen, verwenden Ingenieure häufig Frühstopp, eine Technik, die das Training beendet, wenn der Validierungsverlust aufhört, sich zu verbessern, unabhängig von der angegebenen Gesamtzahl der Epochen. Visualisierungswerkzeuge wie TensorBoard werden häufig verwendet, um diese Metriken in Echtzeit zu überwachen.
Das Konzept der Epochen ist universell für verschiedene Bereichen des maschinellen Lernens (ML).
Bei Verwendung des ultralytics Bibliothek ist es einfach, die Anzahl der Epochen festzulegen. Die
train() Methode akzeptiert eine epochs Argument, das steuert, wie oft das Modell über die bereitgestellten Daten iteriert
über die bereitgestellten Daten durchläuft.
from ultralytics import YOLO
# Load the YOLO11 model (recommended for latest performance)
model = YOLO("yolo11n.pt")
# Train the model for 50 epochs on the COCO8 dataset
# The 'epochs' argument defines the total passes through the data
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
Dieser Ausschnitt zeigt, wie man einen Trainingslauf initiiert, bei dem das Modell sein Verständnis des "coco8"-Datensatz 50 Mal verfeinert. Für künftige Fortschritte entwickelt Ultralytics derzeit YOLO26, das End-to-End-Training mit noch größerer Effizienz unterstützen wird und voraussichtlich Ende Ende 2025.