Aus vielen Diskussionen habe ich ähnliche Schlussfolgerungen gezogen, dass die Konvergenz von SGD mit zunehmender Minibatch-Größe tatsächlich schwieriger / schlechter wird, zum Beispiel in diesem Artikel und in dieser Antwort . Ich habe auch von Leuten gehört, die im frühen Stadium Tricks wie kleine Lernraten oder Losgrößen einsetzten, um diese Schwierigkeit bei großen Losgrößen anzugehen.
Dies erscheint jedoch kontraintuitiv, da der durchschnittliche Verlust eines Minibatches als Annäherung an den erwarteten Verlust über die Datenverteilung betrachtet werden kann:
Je größer die Losgröße, desto genauer soll sie sein. Warum ist das in der Praxis nicht der Fall?
Hier sind einige meiner (wahrscheinlich falschen) Gedanken, die zu erklären versuchen.
Die Parameter des Modells hängen stark voneinander ab. Wenn der Stapel zu groß wird, wirkt sich dies auf zu viele Parameter auf einmal aus, sodass es für die Parameter schwierig ist, eine stabile inhärente Abhängigkeit zu erreichen. (wie das interne Kovariatenverschiebungsproblem, das im Batch-Normalisierungspapier erwähnt wird )
Oder wenn fast alle Parameter in jeder Iteration verantwortlich sind, tendieren sie dazu, redundante implizite Muster zu lernen, wodurch die Kapazität des Modells verringert wird? (Ich meine, bei Problemen mit der Ziffernklassifizierung sollten einige Muster für Punkte verantwortlich sein, andere für Kanten, aber wenn dies passiert, versucht jedes Muster, für alle Formen verantwortlich zu sein).
Oder liegt es daran, dass die Minibatches, wenn sich die Stapelgröße dem Maßstab des Trainingssatzes annähert, nicht mehr als aus der Datenverteilung ersichtlich sind, da eine große Wahrscheinlichkeit für korrelierte Minibatches besteht?
Update
Wie in der Antwort von Benoit Sanchez hervorgehoben, ist ein wichtiger Grund, dass große Minibatches mehr Berechnungen erfordern, um ein Update abzuschließen, und die meisten Analysen verwenden zum Vergleich eine feste Anzahl von Trainingsepochen.
Diese Arbeit (Wilson und Martinez, 2003) zeigt jedoch, dass eine größere Stückzahl trotz einer ausreichenden Anzahl von Trainingsepochen immer noch leicht nachteilig ist. Ist das generell der Fall?
Zur Antwort von Curtis White hinzufügen (und weitere Referenzen hinzufügen):
Ja, SGD arbeitet als eine Art Regularisierung. Dies ist wichtig, da es ansonsten schwer zu erklären ist, warum DNNs nicht immer übermäßig passen, weil sie es können .
Der Grund, wie ich verstehe, ist, dass SGD im Parameterraum ein "Herumhüpfen" verursacht, so dass die Parameter während des Trainings nicht in einem engen Minimum bleiben können, nur in (oder in der Nähe von) breiteren. Und diese breiteren verallgemeinern anscheinend [1] besser (auch bekannt als weniger Überanpassung).
Weitere Referenzen:
"stochastic relaxation, or random diffusion"
die Stochastizität, die SGD innewohnt, dazu führt"maximiz[ation of] the conditional entropy of the layer"
.Beide sagen, dass SGD einem Entropie-Regularisierungsterm entspricht.
Es könnte durchaus auch andere Möglichkeiten geben, wie die Chargengröße die Konvergenz beeinflusst. das ist das, von dem ich weiß.
[1] Beispiel: "Eine Bayes'sche Perspektive auf Generalisierung und stochastische Gradientenabnahme", Smith, Le, 2018. Aus der Zusammenfassung:
"We propose that the noise introduced by small mini-batches drives the parameters towards minima whose evidence is large."
[2] "Der stochastische Gradientenabstieg führt eine Variationsinferenz durch und konvergiert, um die Zyklen für tiefe Netzwerke zu begrenzen", Chaudhari, Soatto 2017
[3] "Öffnen der Black Box von Deep Neural Networks über Information" Schwartz-Ziv, Tishby, 2017
[4] "Um tiefes Lernen zu verstehen, muss man die Verallgemeinerung überdenken", C. Zhang usw. 2016
quelle
Eine zu große Stapelgröße kann Konvergenz verhindern, zumindest wenn SGD verwendet wird und MLP mit Keras trainiert wird. Was den Grund angeht, bin ich mir nicht hundertprozentig sicher, ob es sich um eine Mittelung der Gradienten handelt oder ob kleinere Aktualisierungen eine größere Wahrscheinlichkeit bieten, den lokalen Minima zu entkommen.
Sehen Sie hier .
quelle