Neuronale Netze: Ist eine Epoche in SGD dieselbe wie eine Epoche in Mini-Batch?

8

In SGD wäre eine Epoche die vollständige Darstellung der Trainingsdaten, und dann würde es N Gewichtsaktualisierungen pro Epoche geben (wenn der Trainingssatz N Datenbeispiele enthält).

Wenn wir jetzt stattdessen Mini-Batches durchführen, beispielsweise in Batches von 20. Besteht eine Epoche jetzt aus N / 20 Gewichtsaktualisierungen oder wird eine Epoche um 20 'verlängert', sodass sie die gleiche Anzahl von Gewichtsaktualisierungen enthält?

Ich frage dies, da in einigen Artikeln das Lernen für die angegebene Anzahl von Epochen zu schnell zu sein scheint.

James
quelle
Mögliches Duplikat der Tradeoff-
Stapelgröße im Vergleich
Die Frage bezieht sich eher auf Konventionen, dh wenn jemand angibt, ein Netzwerk für 10 Epochen mit Mini-Batches von 20 trainiert zu haben, bedeutet dies, dass 10 * N Gewichtsaktualisierungen oder 10 * N / 20 durchgeführt wurden?
James
Ich sehe, Entschuldigung für die Verwirrung, vielleicht beantwortet stats.stackexchange.com/a/164875/12359 Ihre Frage?
Franck Dernoncourt

Antworten:

6

In der Terminologie des neuronalen Netzwerks:

  • eine Epoche = ein Vorwärtsdurchlauf und ein Rückwärtsdurchlauf aller Trainingsbeispiele
  • Chargengröße = Anzahl der Trainingsbeispiele in einem Vorwärts- / Rückwärtsdurchlauf. Je höher die Stapelgröße, desto mehr Speicherplatz benötigen Sie.
  • Anzahl der Iterationen = Anzahl der Durchgänge, wobei jeder Durchgang die Anzahl der Beispiele [Stapelgröße] verwendet. Um klar zu sein, ein Durchgang = ein Vorwärtsdurchlauf + ein Rückwärtsdurchlauf (wir zählen den Vorwärtsdurchlauf und den Rückwärtsdurchlauf nicht als zwei verschiedene Durchgänge).

Beispiel: Wenn Sie 1000 Trainingsbeispiele haben und Ihre Stapelgröße 500 beträgt, sind 2 Iterationen erforderlich, um 1 Epoche abzuschließen.

Franck Dernoncourt
quelle
1

Francks Antwort ist nicht richtig. Es braucht etwas Mut, um das zu sagen, weil er viel mehr Wiederholungen hat als ich und viele Leute bereits dafür gestimmt haben.

Epoche ist ein Wort, das einen einzelnen Durchgang durch ein Trainingsset bedeutet, nicht alle Trainingsbeispiele.

Also ja. Wenn wir Mini-Batch-GD anstelle eines Batch-GD durchführen, z. B. in Batches von 20, besteht eine Epoche jetzt aus N / 20-Gewichtsaktualisierungen. N ist die Gesamtzahl der Proben.

Um es ausführlich zu sagen: Bei einem Batch-Gradientenabstieg können Sie mit einem einzigen Durchgang durch das Training nur einen Gradientenabstiegsschritt ausführen. Bei einem Mini-Batch-Gradientenabstieg (Chargengröße = 5.000) können Sie mit einem einzigen Durchgang durch das Trainingsset, dh einer Epoche, 5.000 Gradientenabstiegsschritte ausführen.

Aerin
quelle