Glossar

Epoche

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.

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, sodass 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 Gelegenheit hatte, die internen Parameter des Modells einmal zu aktualisieren. Bei großen Datensätzen ist die Verarbeitung des gesamten Datensatzes auf einmal sehr rechenintensiv, so dass die Daten oft in kleinere Teile, sogenannte Batches, aufgeteilt werden.

Epoche vs. Iteration vs. Chargengröß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 Stapel, die für den Abschluss einer Epoche erforderlich sind. Wenn ein Datensatz 1000 Stichproben hat und die Stapelgröße 100 beträgt, dann erfordert eine Epoche 10 Iterationen (1000 Stichproben / 100 Stichproben pro Stapel = 10 Stapel/Iterationen). Bei jeder Iteration wird ein Stapel verarbeitet und die Gewichte des Modells aktualisiert.
  • Epoche: Ein vollständiger Durchlauf durch den gesamten Trainingsdatensatz. Im obigen Beispiel stellt der Abschluss von 10 Iterationen eine Epoche dar.

Stellen Sie sich 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 Kontakt mit den Daten, um die zugrunde liegenden Muster effektiv zu lernen. Dies 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 Szenario lernt das Modell die Trainingsdaten zu gut, einschließlich des Rauschens und der spezifischen Details, und verliert seine Fähigkeit zur Generalisierung auf neue, ungesehene Daten. Das Modell kann eine ausgezeichnete Genauigkeit in den Trainingsdaten 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 erforderlich, die Leistung des Modells während des Trainings auf einem separaten Validierungsdatensatz zu überwachen.

Bestimmung der Anzahl der Epochen

Es gibt keine "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. Übliche Ansätze sind:

  • Experimentieren: Ausprobieren einer unterschiedlichen Anzahl von Epochen und Bewertung der Leistung.
  • Überwachung von Validierungsmetriken: Verfolgung von Metriken wie Verlust und Genauigkeit in einem Validierungssatz. Das Training wird oft abgebrochen, wenn sich diese Metriken nicht mehr verbessern oder verschlechtern, eine Technik, die als " Early Stopping" bekannt ist.
  • Hyperparameter-Abstimmung: Systematische Suche nach den besten Hyperparametern, einschließlich der Anzahl der Epochen, oft unter Verwendung automatischer Tools oder Techniken wie die im Ultralytics Hyperparameter Tuning Guide.

Beispiele aus der Praxis

  1. Objekt-Erkennung: Beim Trainieren eines Ultralytics YOLO-Modells wie YOLOv8 oder YOLO11 auf einem großen Datensatz wie COCO kann das Modell für eine bestimmte Anzahl von Epochen trainiert werden, beispielsweise 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 Benutzern, diesen Trainingsprozess einfach zu verwalten und die Leistung über Epochen hinweg zu überwachen.
  2. Verarbeitung natürlicher Sprache (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. Mit jeder Epoche wird sichergestellt, 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: Trainingsschleifen in PyTorch iterieren explizit über Epochen und Stapel.
  • TensorFlow: High-Level-APIs wie Keras innerhalb von TensorFlow ermöglichen es den Nutzern, die Anzahl der Epochen direkt in der fit Methode.
  • Ultralytics HUB: Bietet eine benutzerfreundliche Schnittstelle für Trainingsmodelle wie YOLO, auf der Benutzer die Anzahl der Epochen einfach konfigurieren und den Trainingsfortschritt visuell überwachen können.

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

Werden Sie Mitglied der Ultralytics-Gemeinschaft

Beteiligen Sie sich an der Zukunft der KI. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten
Link in die Zwischenablage kopiert