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

Im Bereich des maschinellen Lernens, insbesondere beim Training neuronaler Netze, ist eine Epoche ein grundlegendes Konzept, das einen vollständigen Durchlauf durch den gesamten Trainingsdatensatz markiert. Das Verständnis von Epochen ist wichtig, um zu verstehen, wie Modelle lernen und sich im Laufe der Zeit verbessern. Sie ist ein wichtiger Hyperparameter, der die Dauer des Trainingsprozesses bestimmt und die Leistung des Modells erheblich beeinflusst.

Epochen im maschinellen Lernen verstehen

Eine Epoche ist ein vollständiger Trainingszyklus eines neuronalen Netzes auf dem gesamten Trainingsdatensatz. Während einer Epoche sieht das Modell jeden Datenpunkt im Trainingsdatensatz einmal. Wenn dein Trainingsdatensatz zum Beispiel 1.000 Bilder enthält, bedeutet eine Epoche, dass das Modell alle 1.000 Bilder einmal während des Trainings verarbeitet.

Epochen sind wichtig, denn sie ermöglichen es dem Modell, iterativ aus den Daten zu lernen. In jeder Epoche passt das Modell seine internen Parameter (weights and biases) auf der Grundlage der Fehler an, die es im vorherigen Durchgang gemacht hat. Dieser Anpassungsprozess, der oft von Optimierungsalgorithmen wie Adam Optimizer oder Stochastic Gradient Descent (SGD) gesteuert wird, hilft dem Modell, die Verlustfunktion zu minimieren und seine Genauigkeit schrittweise zu verbessern.

Die Bedeutung von Epochen in der Modellschulung

Die Anzahl der Epochen, die zum Trainieren eines Modells verwendet werden, ist ein wichtiger Hyperparameter, der sich direkt auf die Lernkurve und die endgültige Leistung des Modells auswirkt. Ein Training mit zu wenigen Epochen kann zu einer Unteranpassung führen, bei der das Modell die zugrundeliegenden Muster in den Daten nicht lernt, was zu einer schlechten Leistung sowohl bei den Trainings- als auch bei den Validierungsdaten führt. Umgekehrt kann ein Training mit zu vielen Epochen zu einer Überanpassung führen, bei der das Modell zu sehr auf die Trainingsdaten spezialisiert ist und bei ungesehenen Daten schlecht abschneidet, sodass es nicht effektiv verallgemeinern kann.

Um die richtige Anzahl von Epochen zu finden, muss die Leistung des Modells während des Trainings häufig auf einer Validierungsmenge überwacht werden. Techniken wie die K-Fold-Kreuzvalidierung können ebenfalls bei der Ermittlung der optimalen Epochenzahl helfen, da sie eine robustere Schätzung der Modellleistung über verschiedene Datenuntermengen hinweg ermöglichen. Tools wie TensorBoard oder Weights & Biases können von unschätzbarem Wert sein, wenn es darum geht, den Trainingsfortschritt zu visualisieren und zu bestimmen, wann das Training abgebrochen werden sollte, um eine Über- oder Unteranpassung zu verhindern.

Epochen, Iterationen und Chargengröße

Es ist wichtig, Epochen von verwandten Begriffen wie Iterationen und Stapelgröße zu unterscheiden. Während eine Epoche ein vollständiger Durchlauf durch den gesamten Trainingsdatensatz ist, ist eine Iteration ein Durchlauf durch einen Stapel von Trainingsbeispielen. Die Stapelgröße bestimmt, wie viele Trainingsbeispiele in jeder Iteration verarbeitet werden.

Wenn du zum Beispiel einen Datensatz mit 1.000 Bildern hast und eine Stapelgröße von 10 festlegst, besteht jede Epoche aus 100 Iterationen (1.000 Bilder / 10 Bilder pro Stapel = 100 Iterationen). In jeder Iteration verarbeitet das Modell 10 Bilder, berechnet den Fehler und aktualisiert die Modellparameter. Nach 100 Iterationen hat das Modell eine Epoche abgeschlossen, da es alle 1.000 Bilder einmal gesehen hat.

Das Verständnis dieser Beziehung ist entscheidend für ein effizientes Training, vor allem wenn es um große Datensätze geht, die nicht auf einmal in den Speicher passen. Die Stapelgröße und die Anzahl der Iterationen pro Epoche sind konfigurierbare Parameter in Trainingsframeworks wie PyTorchauf denen Ultralytics YOLO aufbaut.

Anwendungen von Epochen in der realen Welt

Epochen sind grundlegend für das Training von Deep Learning-Modellen, und ihre Anwendung erstreckt sich über verschiedene Bereiche. Hier sind ein paar Beispiele:

  1. Ultralytics YOLO Objekterkennung: Beim Training eines Ultralytics YOLOv8 Modells für die Objekterkennung legst du die Anzahl der Epochen fest, mit denen das Modell auf deinem Datensatz trainiert wird. In Szenarien wie Computer Vision in der Landwirtschaft zur Objekterkennung könntest du zum Beispiel ein YOLO Modell für 100 Epochen trainieren. Das bedeutet, dass das Modell deinen gesamten Datensatz mit Obstbildern 100 Mal durchläuft und dabei lernt, Früchte in Bildern genau zu erkennen und zu lokalisieren. Die Plattform Ultralytics HUB vereinfacht diesen Prozess, indem sie es den Nutzern ermöglicht, die Epochen während des Trainings einfach festzulegen und zu verwalten.

  2. Medizinische Bildanalyse: In der medizinischen Bildanalyse sind Epochen wichtig, um Modelle zu trainieren, die Krankheiten oder Anomalien in medizinischen Scans erkennen. Um zum Beispiel ein Modell zur Erkennung von Tumoren in MRT-Bildern von Hirntumoren zu trainieren, muss eine Reihe von Epochen festgelegt werden. Jede Epoche stellt sicher, dass das Modell seine Fähigkeit verfeinert, subtile Muster zu erkennen, die auf Tumore im gesamten Datensatz der MRT-Scans hinweisen, und so die Diagnosegenauigkeit über aufeinanderfolgende Epochen hinweg verbessert.

Zusammenfassend lässt sich sagen, dass Epochen ein Eckpfeiler des Deep-Learning-Trainingsprozesses sind. Sie stellen vollständige Lernzyklen über die Trainingsdaten dar, und die sorgfältige Verwaltung ihrer Anzahl ist entscheidend, um eine optimale Modellleistung zu erzielen und häufige Fallstricke wie Overfitting und Underfitting zu vermeiden. Durch das Verständnis der Epochen können Praktiker/innen das Training ihrer KI-Modelle für verschiedene reale Anwendungen besser kontrollieren und optimieren.

Alles lesen