Epoch
Ein Lernalgorithmus verarbeitet denselben Datensatz mehrfach hintereinander. Jeder vollständige Durchlauf durch alle Trainingsdaten heißt Epoch. Nach jedem Durchlauf passt das System seine internen Gewichte an, sodass die Vorhersagen Schritt für Schritt besser werden.
Warum ein Modell dieselben Daten mehrfach sieht
Beim Training eines neuronalen Netzes reicht ein einzelner Durchlauf durch die Trainingsdaten selten aus. Die Gewichte des Modells werden nach jedem Datenpunkt nur geringfügig angepasst. Erst durch wiederholte Präsentation derselben Daten konvergieren die Parameter in Richtung eines stabilen Zustands. Jeder dieser vollständigen Durchläufe heißt Epoch.
Die Reihenfolge der Daten wird vor jeder neuen Epoch zufällig gemischt (Shuffling). Das verhindert, dass das Modell Muster aus der Reihenfolge statt aus den Inhalten lernt.
Beispiel: Ein Bilderkenner wird auf 10.000 Bilder trainiert. In der ersten Epoch sieht er jedes Bild genau einmal. Die Fehlerrate liegt bei 45 %. Nach der zehnten Epoch ist sie auf 12 % gesunken, weil die Gewichte in jedem Durchlauf feinjustiert wurden.
Beispiel: Ein Sprachmodell wird auf einem Textkorpus von 500.000 Sätzen trainiert. Nach einer Epoch hat es statistische Zusammenhänge zwischen häufigen Wortpaaren erfasst. Nach 20 Epochs erkennt es komplexere syntaktische Strukturen.
Epoch, Batch und Iteration
Ein Trainingsdatensatz wird selten komplett auf einmal verarbeitet. Stattdessen wird er in kleinere Portionen aufgeteilt, sogenannte Batches (siehe Batch-Size). Eine Iteration bezeichnet die Verarbeitung eines einzelnen Batches. Eine Epoch ist dann abgeschlossen, wenn alle Batches einmal verarbeitet wurden.
Die Formel lautet: Iterationen pro Epoch = Datensatzgröße / Batch-Size. Bei 10.000 Datenpunkten und einer Batch-Size von 100 ergeben sich 100 Iterationen pro Epoch.
Beispiel: Ein Datensatz enthält 50.000 Bilder. Die Batch-Size beträgt 256. Pro Epoch werden 50.000 / 256 = 195 Iterationen (aufgerundet 196) durchgeführt. Bei 30 Epochs sieht das Modell jedes Bild insgesamt 30-mal.
Beispiel: Beim Training eines Transformer-Modells mit 1 Million Token und einer Batch-Size von 512 Token ergeben sich rund 1.953 Iterationen pro Epoch. Die Gesamtzahl der Parameteraktualisierungen über 10 Epochs beträgt 19.530.
Wie sich die Modellqualität über Epochs verändert
Der typische Trainingsverlauf zeigt eine charakteristische Kurve: In den ersten Epochs sinkt der Loss (die Fehlerfunktion) steil ab. Das Modell lernt grobe Muster. In späteren Epochs flacht die Kurve ab. Die Verbesserungen werden kleiner, weil das Modell bereits die wesentlichen Strukturen erfasst hat.
Parallel dazu wird die Leistung auf einem separaten Validierungsdatensatz gemessen. Solange beide Kurven sinken, profitiert das Modell von weiteren Epochs. Sobald der Validierungsfehler steigt, während der Trainingsfehler weiter sinkt, tritt Überanpassung (Overfitting) ein.
Beispiel: Ein Klassifikator für medizinische Bilder erreicht nach 15 Epochs eine Validierungsgenauigkeit von 91 %. Nach 40 Epochs liegt die Trainingsgenauigkeit bei 99 %, die Validierungsgenauigkeit ist auf 87 % gefallen. Das Modell hat Rauschen in den Trainingsdaten auswendig gelernt.
Beispiel: Bei einem Sentimentanalyse-Modell sinkt der Loss in den ersten drei Epochs von 2,3 auf 0,8. Zwischen Epoch 20 und Epoch 30 verändert er sich nur noch von 0,15 auf 0,13. Weitere Epochs bringen kaum Verbesserung und kosten Rechenzeit.
Wie die Anzahl der Epochs bestimmt wird
Die optimale Epoch-Anzahl lässt sich nicht vorab berechnen. Sie hängt von der Datensatzgröße, der Modellkomplexität, der Lernrate und der Art der Aufgabe ab. In der Praxis gibt es drei Strategien:
Feste Epoch-Anzahl
Der Trainingslauf wird auf eine vorher festgelegte Zahl von Epochs begrenzt. Das ist die einfachste Variante, birgt aber das Risiko, zu früh oder zu spät zu stoppen.
Beispiel: Viele Tutorials für Deep Learning verwenden 50 oder 100 Epochs als Standardwert. Diese Zahlen sind willkürlich gewählt und müssen für den jeweiligen Anwendungsfall validiert werden.
Early Stopping
Das Training wird automatisch beendet, wenn sich die Leistung auf dem Validierungsdatensatz über eine definierte Anzahl aufeinanderfolgender Epochs nicht verbessert. Der Parameter "Patience" bestimmt, wie viele Epochs ohne Verbesserung toleriert werden.
Beispiel: Ein Modell trainiert mit Patience=5. Ab Epoch 23 verbessert sich der Validierungs-Loss nicht mehr. Das Training stoppt automatisch bei Epoch 28. Das System lädt die Gewichte von Epoch 23 (dem letzten Verbesserungspunkt) als finales Modell.
Lernraten-Scheduling
Die Lernrate wird über die Epochs hinweg angepasst. Zu Beginn ermöglicht eine hohe Lernrate schnelle Fortschritte. In späteren Epochs wird sie reduziert, damit die Optimierung feinere Anpassungen vornehmen kann. Diese Technik verlängert die sinnvolle Trainingsdauer.
Beispiel: Cosine Annealing reduziert die Lernrate in Sinusform über 200 Epochs von 0,001 auf nahezu 0. Zwischen Epoch 1 und 50 findet der Großteil des Lernens statt. Die restlichen 150 Epochs verfeinern das Ergebnis im Bereich von Nachkommastellen.
Epochs bei großen Sprachmodellen
Bei großen Sprachmodellen (Large Language Models) unterscheidet sich die Epoch-Praxis deutlich von kleineren Modellen. GPT-3 wurde auf 300 Milliarden Token trainiert, wobei der Trainingsdatensatz etwa 500 Milliarden Token umfasste. Das entspricht weniger als einer vollständigen Epoch. Das Modell hat also nicht einmal alle Daten einmal gesehen.
Diese Praxis hat einen Grund: Bei extrem großen Datensätzen reicht ein Bruchteil einer Epoch aus, um robuste Muster zu erfassen. Wiederholtes Präsentieren derselben Daten erhöht das Risiko, dass das Modell einzelne Trainingsbeispiele reproduziert statt generalisierbare Muster zu lernen.
Beispiel: Chinchilla (70 Milliarden Parameter) wurde auf 1,4 Billionen Token trainiert. Die Autoren zeigten, dass eine Epoch auf dem vollständigen Datensatz bessere Ergebnisse liefert als mehrere Epochs auf einem kleineren Datensatz bei gleichem Rechenbudget.
Beispiel: Beim Fine-Tuning eines vortrainierten Sprachmodells auf einen spezifischen Datensatz werden typischerweise 3 bis 5 Epochs verwendet. Mehr Epochs führen bei kleinen Fine-Tuning-Datensätzen (10.000 bis 100.000 Beispiele) schnell zu Overfitting.
Fachliche Einordnung: Die Chinchilla-Studie (Hoffmann et al., 2022) etablierte Skalierungsgesetze, die das optimale Verhältnis zwischen Modellgröße und Trainingsdatenmenge beschreiben. Diese Gesetze implizieren, dass für große Modelle eine Epoch auf einem proportional größeren Datensatz effizienter ist als mehrere Epochs auf einem kleineren. Nachfolgende Arbeiten (Muennighoff et al., 2023) relativierten dies: Bei begrenzten Daten können bis zu vier Epochs ohne signifikante Qualitätseinbußen genutzt werden.
Epoch-Konfiguration in der Praxis
Die Wahl der Epoch-Anzahl ist ein Hyperparameter, der zusammen mit Lernrate und Batch-Size abgestimmt werden muss. In der Praxis ergeben sich typische Muster:
Bildklassifikation mit CNNs verwendet häufig 50 bis 200 Epochs. Textklassifikation mit vortrainierten Sprachmodellen kommt mit 3 bis 10 Epochs aus. Reinforcement-Learning-Agenten trainieren oft über mehrere tausend Epochs. Die Unterschiede erklären sich durch Datensatzgröße und Modellkomplexität.
Checkpoints werden regelmäßig gespeichert, typischerweise nach jeder Epoch oder nach einer festen Anzahl von Iterationen. Sie ermöglichen, das Training nach einem Abbruch fortzusetzen oder das Modell eines früheren Zustands wiederherzustellen.
Beispiel: Ein Unternehmen trainiert einen Dokumentenklassifikator auf 200.000 Verträgen. Mit einer Batch-Size von 32, einer anfänglichen Lernrate von 3e-5 und Early Stopping (Patience=3) konvergiert das Modell nach 7 Epochs. Pro Epoch dauert der Durchlauf 45 Minuten. Die Gesamttrainingszeit beträgt etwas über 5 Stunden.
Beispiel: Bei der Bildsegmentierung in der Satellitenfernerkundung werden 120 Epochs mit Cosine-Annealing-Scheduler und Warm Restarts verwendet. Alle 10 Epochs wird ein Checkpoint gespeichert. Das beste Modell wird anhand der Intersection-over-Union-Metrik auf dem Validierungsset ausgewählt.
Grenzen und häufige Fehler
Die Epoch-Anzahl allein sagt wenig über die Qualität eines Trainings aus. Ein Modell, das 1.000 Epochs auf einem kleinen, verzerrten Datensatz trainiert wurde, liefert schlechtere Ergebnisse als eines, das 5 Epochs auf einem gut kuratierten, repräsentativen Datensatz absolviert hat.
Drei verbreitete Fehler beim Umgang mit Epochs:
Erstens: Die Epoch-Anzahl wird von einem anderen Projekt übernommen, ohne die unterschiedliche Datensatzgröße und Aufgabenkomplexität zu berücksichtigen. Zweitens: Early Stopping wird nicht implementiert, obwohl der Validierungs-Loss längst gestiegen ist. Drittens: Es wird nur die Trainingsmetrik beobachtet und die Validierungsmetrik ignoriert.
Beispiel: Ein Team trainiert ein NER-Modell (Named Entity Recognition) 50 Epochs lang, weil ein Blog-Artikel diese Zahl empfahl. Der Datensatz umfasst 2.000 annotierte Sätze. Ab Epoch 8 verschlechtert sich der F1-Score auf dem Testset. 42 Epochs Rechenzeit waren verschwendet.
Fachliche Einordnung: Die Abhängigkeit der optimalen Epoch-Anzahl von Datensatz und Aufgabe macht pauschale Empfehlungen unbrauchbar. Systematische Hyperparameter-Suche (Grid Search, Random Search oder Bayessche Optimierung) ist der zuverlässigere Weg. Insbesondere bei begrenzten Rechenressourcen lohnt es sich, wenige Epochs mit verschiedenen Lernraten zu testen, statt viele Epochs mit einer einzigen Konfiguration durchzuführen.