Glossar

Epoche

Erfahre mehr über Epochen beim maschinellen Lernen - wie sie sich auf das Modelltraining auswirken, Overfitting verhindern und die Leistung optimieren mit Ultralytics YOLO .

Trainiere YOLO Modelle einfach
mit Ultralytics HUB

Mehr erfahren

Beim maschinellen Lernen (ML), insbesondere beim Training von Deep Learning-Modellen, stellt eine Epoche einen vollständigen Durchlauf des gesamten Trainingsdatensatzes durch den Lernalgorithmus dar. Das Training von Modellen ist ein iterativer Prozess, bei dem das Modell durch wiederholte Verarbeitung der Daten Muster lernt. Epochen sind ein grundlegender Hyperparameter, der festlegt, wie oft der Algorithmus den gesamten Datensatz durchläuft, damit das Modell aus jedem Beispiel in den Daten mehrmals lernen kann.

Epoche Erklärt

Während des Trainingsprozesses werden die internen Parameter oder Gewichte eines Modells auf der Grundlage der Fehler, die es bei seinen Vorhersagen macht, angepasst. Diese Anpassung erfolgt in der Regel mithilfe eines Optimierungsalgorithmus wie Gradient Descent oder seiner Varianten (z. B. Adam Optimizer). Eine Epoche bedeutet, dass jede Probe im Trainingsdatensatz die Möglichkeit hatte, die internen Parameter des Modells einmal zu aktualisieren. Bei großen Datensätzen ist die Verarbeitung des gesamten Datensatzes auf einmal sehr rechenintensiv, daher werden die Daten oft in kleinere Teile, sogenannte Batches, aufgeteilt.

Epoche vs. Iteration vs. Batchgröße

Es ist wichtig, eine Epoche von verwandten Begriffen zu unterscheiden:

  • Stapelgröße: Hier wird die Anzahl der Stichproben festgelegt, die verarbeitet werden, bevor die Gewichte des Modells aktualisiert werden.
  • Iteration: Dies bezieht sich auf die Anzahl der Batches, die für eine Epoche benötigt werden. Wenn ein Datensatz 1000 Proben enthält und die Stapelgröße 100 beträgt, sind für eine Epoche 10 Iterationen erforderlich (1000 Proben / 100 Proben pro Stapel = 10 Stapel/Iterationen). Bei jeder Iteration wird ein Stapel verarbeitet und die Gewichte des Modells werden aktualisiert.
  • Epoche: Ein vollständiger Durchlauf durch den gesamten Trainingsdatensatz. Im obigen Beispiel ist eine Epoche das Ergebnis von 10 Iterationen.

Stell dir das wie das Lesen eines Buches vor: Das gesamte Buch ist der Datensatz, ein Kapitel ist ein Stapel, das Lesen eines Kapitels ist eine Iteration und das Lesen des gesamten Buches von vorne bis hinten ist eine Epoche.

Warum Epochen wichtig sind

Die Anzahl der Epochen ist ein wichtiger Hyperparameter, da er bestimmt, wie oft das Modell aus dem gesamten Datensatz lernt.

  • Zu wenige Epochen: Wenn ein Modell für zu wenige Epochen trainiert wird, hat es möglicherweise nicht genügend Erfahrung mit den Daten, um die zugrunde liegenden Muster effektiv zu lernen. Das führt zu einer Unteranpassung, bei der das Modell sowohl bei den Trainingsdaten als auch bei den ungesehenen Testdaten schlecht abschneidet.
  • Zu viele Epochen: Umgekehrt kann das Training für zu viele Epochen zu einer Überanpassung führen. In diesem Fall lernt das Modell die Trainingsdaten zu gut, einschließlich des Rauschens und der spezifischen Details, und verliert seine Fähigkeit, auf neue, ungesehene Daten zu generalisieren. Das Modell kann in den Trainingsdaten eine hervorragende Genauigkeit aufweisen, aber bei den Validierungs- oder Testdaten schlecht abschneiden.

Das richtige Gleichgewicht zu finden, ist der Schlüssel zu einer guten Modellleistung und Generalisierung. Dazu ist es oft notwendig, die Leistung des Modells während des Trainings an einem separaten Validierungsdatensatz zu überprüfen.

Festlegen der Anzahl der Epochen

Es gibt nicht die eine "richtige" Anzahl von Epochen; der optimale Wert hängt von der Komplexität der Daten, der Größe des Datensatzes, der Modellarchitektur und der Lernrate ab. Zu den gängigen Ansätzen gehören:

  • Experimentieren: Verschiedene Epochenzahlen ausprobieren und die Leistung bewerten.
  • Überwachung von Validierungsmetriken: Verfolgen von Kennzahlen wie Verlust und Genauigkeit in einem Validierungsset. Das Training wird oft abgebrochen, wenn sich diese Kennzahlen nicht mehr verbessern oder verschlechtern.
  • Hyperparameter-Tuning: Systematische Suche nach den besten Hyperparametern, einschließlich der Anzahl der Epochen, oft unter Verwendung automatisierter Tools oder Techniken, wie sie im Ultralytics Hyperparameter Tuning Guide beschrieben sind.

Beispiele aus der realen Welt

  1. Objekterkennung: Beim Training einer Ultralytics YOLO Modell, wie zum Beispiel YOLOv8 oder YOLO11Auf einem großen Datensatz wie COCO kann das Modell für eine bestimmte Anzahl von Epochen trainiert werden, zum Beispiel 100 oder 300. Während jeder Epoche verarbeitet das Modell alle Bilder des COCO-Trainingsdatensatzes und passt seine Gewichte an, um die Bounding Boxes und Klassenbezeichnungen für Objekte besser vorhersagen zu können. Plattformen wie Ultralytics HUB ermöglichen es den Nutzern, diesen Trainingsprozess einfach zu verwalten und die Leistung über Epochen hinweg zu überwachen.
  2. Natürliche Sprachverarbeitung (NLP): Um ein großes Sprachmodell wie BERT für eine Aufgabe wie die Stimmungsanalyse zu trainieren, müssen große Mengen an Textdaten durch das Modell geleitet werden. Aufgrund der schieren Größe der Datensätze und Modelle kann das Training über eine kleinere Anzahl von Epochen (z. B. 3-10) erfolgen. Jede Epoche stellt sicher, dass das Modell den gesamten Textkorpus einmal sieht und sein Verständnis der für die Stimmung relevanten Sprachnuancen verfeinert. Frameworks wie Hugging Face Transformers geben oft Standard-Epochenzahlen für die Feinabstimmung vor.

Tools und Rahmenwerke

Epochen sind ein Standardparameter in den meisten Deep Learning-Frameworks:

  • PyTorch: Schleifen trainieren in PyTorch iterieren explizit über Epochen und Stapel.
  • TensorFlow: High-Level-APIs wie Keras innerhalb TensorFlow ermöglichen es den Nutzern, die Anzahl der Epochen direkt in der fit Methode.
  • Ultralytics HUB: Bietet eine benutzerfreundliche Oberfläche für Trainingsmodelle wie YOLO, auf der die Benutzer die Anzahl der Epochen einfach konfigurieren und den Trainingsfortschritt visuell überwachen können.

Epochen sind ein Eckpfeiler des iterativen Lernens beim maschinellen Lernen, bei dem es darum geht, die Notwendigkeit einer ausreichenden Datenexposition gegen das Risiko einer Überanpassung abzuwägen. Die Auswahl der richtigen Anzahl von Epochen, oft durch sorgfältiges Experimentieren und Überwachen, wie es in Ressourcen wie dem CS231n-Kurs in Stanford oder dem Machine Learning Mastery Blog besprochen wird, ist der Schlüssel zum Aufbau effektiver Modelle. Weitere Definitionen findest du in Ressourcen wie dem Google Machine Learning Glossary.

Alles lesen