Eine zu große Chargengröße führt dazu, dass die optimale Lösung verpasst wird

Vereinfacht ausgedrückt geht es darum, wie viele Daten wir gleichzeitig zum Training in das Modell einspeisen möchten. Dieser Wert liegt zwischen 1 und der Gesamtzahl der Trainingsbeispiele.

1. Wenn die Chargengröße zu klein ist, ergeben sich Nachteile

  • ① Es dauert lange und die Trainingseffizienz ist gering.
    Nehmen Sie an, dass batchsize=1jedes Mal, wenn Daten für das Training verwendet werden, wenn die Gesamtdatenmenge groß ist (vorausgesetzt, es sind 100.000 Daten vorhanden), 100.000 Daten in das Modell eingegeben werden müssen. Es dauert lange, bis das Training abgeschlossen ist Die Daten- und Trainingseffizienz ist sehr hoch. Niedrig;
  • ②Es wird sehr schwierig sein, die Trainingsdaten zu konvergieren, was zu einer Unteranpassung führt.
    Unter der Annahme batchsize=1, dass sich die Parameter des Modells jedes Mal, wenn Daten für das Training verwendet werden, aufgrund individueller Unterschiede oder des Einflusses von Ausreißern stark ändern und der Gradient jeder Schicht sehr zufällig ist, was viel Zeit in Anspruch nimmt macht es sehr schwierig, das Modell zu konvergieren.

2. Die Vor- und Nachteile einer schrittweisen Erhöhung der Chargengröße

1. Die große Stapelgröße reduziert die Trainingszeit und erhöht gleichzeitig die erforderliche Speicherkapazität

  • ①Erhebliche batchsizeReduzierung der Trainingszeit
    Dies bedeutet mit Sicherheit, dass bei gleicher Epochenanzahl batchsizdie Anzahl der für ein großes e erforderlichen Stapel verringert wird, sodass die Verarbeitungsgeschwindigkeit schneller wird und die Trainingszeit verkürzt werden kann.
  • ②Die für eine große Stapelgröße erforderliche Speicherkapazität erhöht sich
    . Wenn der Wert jedoch zu groß ist, batchsize=100000kann es unter der Annahme, dass 100.000 Daten gleichzeitig in das Modell eingefügt werden, wahrscheinlich zu einem Speicherüberlauf kommen und ein normales Training kann nicht durchgeführt werden.

2. Eine große Chargengröße kann zu einer Verringerung der Generalisierungsfähigkeit des Modells führen und gleichzeitig die Stabilität verbessern

  • ① Die Berechnung großer batch sizeGradienten ist stabiler,
    da die Modelltrainingskurve glatter ist. Bei der Feinabstimmung kann eine große Chargengröße bessere Ergebnisse erzielen. Denn innerhalb eines bestimmten Bereichs gilt im Allgemeinen: Je größer die Chargengröße, desto genauer ist die Abstiegsrichtung und desto geringer ist der Trainingsschock. Wenn die Batchgröße bis zu einem gewissen Grad ansteigt, ändert sich die festgelegte absteigende Richtung im Grunde nicht mehr.
  • ②Eine große Batchgröße kann zu einer Verringerung der Generalisierungsfähigkeit des Modells führen
    . Innerhalb eines bestimmten Bereichs ist eine Erhöhung der Batchgröße hilfreich für die Stabilität der Konvergenz, aber mit zunehmender Batchgröße nimmt die Generalisierungsleistung des Modells ab. Wenn die Chargengröße auf das Maximum (die Gesamtzahl der Proben) eingestellt ist, werden die Parameter jedes Mal mit derselben Probe aktualisiert und die Richtung des Rückgangs wird grundsätzlich bestimmt, was zu einer Verringerung der Generalisierungsleistung des Modells führt.

3. Wie kann man die Größe der Batchgröße ausgleichen?

Es ist nicht gut, wenn die Chargengröße zu groß oder zu klein ist. Je größer der Wert der Stapelgröße ist, desto stabiler ist der Gradient. Je kleiner die Stapelgröße, desto höher ist die Zufälligkeit des Gradienten. Wenn die Stapelgröße jedoch zu groß ist, ist der Speicherbedarf höher Es ist nicht förderlich, dass das Netzwerk extrem klein aus dem lokalen Netzwerk herausspringt. Daher müssen wir einen geeigneten Batchgrößenwert festlegen, um das beste Gleichgewicht zwischen Trainingsgeschwindigkeit und Speicherkapazität zu finden.

  • ① Wenn die Stapelgröße zunimmt, müssen wir im Allgemeinen die Anzahl der Trainingszeiten für alle Proben (dh die Epoche, die später besprochen wird) erhöhen (um die Anzahl der Trainingszeiten zu erhöhen und bessere Ergebnisse zu erzielen), was auch der Fall ist Dies führt zu einem Anstieg des Zeitverbrauchs, daher müssen wir einen geeigneten Wert finden. Der Batchgrößenwert ist das beste Gleichgewicht zwischen der Gesamteffizienz des Modells und der Speicherkapazität.
  • ②Aufgrund des Widerspruchs zwischen den beiden oben genannten Faktoren erhöht sich die Chargengröße bis zu einem bestimmten Punkt, um die optimale Zeit zu erreichen. Da die endgültige Konvergenzgenauigkeit in verschiedene lokale Extrema fällt, wird die Stapelgröße auf einen bestimmten Punkt erhöht, um die optimale endgültige Konvergenzgenauigkeit zu erreichen.

Ich denke du magst

Origin blog.csdn.net/weixin_45277161/article/details/132540801
Empfohlen
Rangfolge