Gibt es Regeln für die Auswahl der Größe einer Mini-Charge?


21

Beim Training neuronaler Netze ist ein Hyperparameter die Größe eines Minibatches. Übliche Auswahlmöglichkeiten sind 32, 64 und 128 Elemente pro Minibatch.

Gibt es irgendwelche Regeln / Richtlinien, wie groß eine Mini-Charge sein sollte? Gibt es Veröffentlichungen, in denen die Auswirkungen auf das Training untersucht werden?


Anders als passend in Erinnerung?
Ehsan M. Kermani

Ja. Gibt es zum Beispiel eine Publikation mit der Aufschrift "Je größer die Stapelgröße, desto besser" (solange sie in den Speicher passt)?
Martin Thoma

@ EhsanM.Kermani Ich denke, es spielt eine Rolle. Ich habe ein paar Läufe mit CIFAR-100 durchgeführt und erhalte je nach Chargengröße unterschiedliche Ergebnisse (mit vorzeitigem Anhalten, so dass eine Überanpassung hoffentlich kein Problem darstellt)
Martin Thoma,

3
Größere Berechnungen sind schneller (effizient), kleinere konvergieren schneller und verallgemeinern besser. vgl. Effizientes Mini-Batch-Training für die stochastische Optimierung und diese RNN-Studie . Es gibt einen Sweet Spot, den Sie empirisch für Ihr Problem finden.
Emre,

2
Diese aufschlussreichste Arbeit von Blei et al. Ist gerade erschienen: Stochastic Gradient Descent als ungefähre bayesianische Folgerung
Emre

Antworten:


22

In On Large-Batch-Training für vertiefendes Lernen: Generalisierungslücke und scharfe Minima gibt es ein paar interessante Aussagen:

In der Praxis wurde beobachtet, dass sich bei Verwendung einer größeren Charge die Qualität des Modells verschlechtert, was an seiner Fähigkeit zur Verallgemeinerung [...]

Verfahren mit großen Ansätzen tendieren dazu, zu scharfen Minimierern der Trainings- und Testfunktionen zu konvergieren - und wie allgemein bekannt ist, führen scharfe Minima zu einer schlechteren Verallgemeinerung. n Im Gegensatz dazu konvergieren Small-Batch-Methoden konsequent gegen flache Minimierer, und unsere Experimente stützen die weit verbreitete Ansicht, dass dies auf das inhärente Rauschen bei der Gradientenschätzung zurückzuführen ist.

Aus meiner Masterarbeit : Daher beeinflusst die Wahl der Mini-Batch-Größe:

  • Trainingszeit bis zur Konvergenz : Es scheint einen Sweet Spot zu geben. Wenn die Chargengröße sehr klein ist (z. B. 8), wird diese Zeit verlängert. Wenn die Chargengröße sehr groß ist, ist sie auch höher als das Minimum.
  • Trainingszeit pro Epoche : Größere rechnen schneller (ist effizient)
  • Resultierende Modellqualität : Je niedriger, desto besser durch bessere Verallgemeinerung (?)

Es ist wichtig zu beachten , hyper-Parameter Wechselwirkungen : Chargengröße mit anderen Hyper-Parametern in Wechselwirkung treten kann, insbesondere Rate zu lernen. In einigen Experimenten kann es aufgrund dieser Wechselwirkung schwierig sein, den Einfluss der Chargengröße allein auf die Modellqualität zu bestimmen. Eine weitere starke Wechselwirkung ist das frühzeitige Anhalten zur Regularisierung.

Siehe auch


@NeilSlater Möchtest du deinen Kommentar zu meiner (jetzt Community-Wiki) Antwort hinzufügen?
Martin Thoma

Ich mag die Antwort allgemein. Außerdem würde ich schätze eine Reihe darüber zu haben , was ist sehr klein , große und Mini-Charge in einem spezifischen Beispiel.
Also S

@ SoS Mini-Batch ist nur ein Begriff. Der "Mini" bezieht sich nicht auf eine bestimmte Größe, sondern bedeutet nur, dass es mehr als ein Beispiel und weniger als das gesamte Trainingsset gibt. Ich betrachte "sehr klein" als <= 8 (ich habe gerade die Antwort bearbeitet). Ich habe auch eine extreme (mehr als 5-fache) Zunahme der Trainingszeit für die Wanduhr gemessen. Normal ist so etwas wie 64 oder 128. Ich bin mir nicht sicher, was "riesig" ist. Ich denke das könnte von der Hardware abhängen.
Martin Thoma

Diese Antwort stellt mehr Fragen als sie beantwortet. Wo ist dieser Sweet Spot (vielleicht würde ein Graph helfen)? Wie wirkt es sich auf die Lernrate und das frühe Anhalten aus?
3.

Die Antwort hängt vom Netzwerk und dem Datensatz ab. Daher ist es nicht sinnvoll, bestimmte Zahlen anzugeben, und daher würde ein Diagramm nicht helfen. Über Wechselwirkungen mit anderen Hyperparametern: Ich weiß es nicht genau. Probieren Sie es aus und veröffentlichen Sie Ihre Ergebnisse :-)
Martin Thoma
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.