Auswahl einer geeigneten Minibatch-Größe für den stochastischen Gradientenabstieg (SGD)

13

Gibt es Literatur, die die Wahl der Minibatch-Größe bei der Durchführung eines stochastischen Gradientenabfalls untersucht? Nach meiner Erfahrung scheint es sich um eine empirische Entscheidung zu handeln, die normalerweise durch Kreuzvalidierung oder unter Verwendung unterschiedlicher Faustregeln getroffen wird.

Ist es eine gute Idee, die Minibatch-Größe langsam zu erhöhen, wenn der Validierungsfehler abnimmt? Welche Auswirkungen hätte dies auf den Generalisierungsfehler? Bin ich besser dran, wenn ich ein extrem kleines Minibatch verwende und mein Modell hunderttausend Mal aktualisiere? Wäre ich mit einer ausgeglichenen Zahl zwischen extrem klein und chargenweise besser dran?
Sollte ich die Größe meines Minibatchs mit der Größe des Datensatzes oder der erwarteten Anzahl von Features innerhalb des Datensatzes skalieren?

Ich habe offensichtlich viele Fragen zur Implementierung von Minibatch-Lernschemata. Leider geben die meisten Artikel, die ich lese, nicht wirklich an, wie sie diesen Hyperparameter gewählt haben. Ich hatte einige Erfolge von Autoren wie Yann LeCun, insbesondere von der Tricks of the Trade-Papiersammlung. Ich habe diese Fragen jedoch noch nicht vollständig beantwortet. Hat jemand Empfehlungen für Artikel oder Ratschläge, anhand welcher Kriterien ich gute Minibatch-Größen bestimmen kann, wenn ich versuche, Funktionen zu erlernen?

Jason_L_Bens
quelle
Ich bekomme anscheinend nicht viele Treffer zu diesem Thema. Gibt es eine bessere Stack-Exchange-Site, auf der Sie Fragen zum maschinellen Lernen oder zum tiefen Lernen stellen können?
Jason_L_Bens
Zu Ihrer
Information

Antworten:

6

Die Theorie für die Wirksamkeit von SGD wurde an einzelnen Beispielaktualisierungen (dh Minibatch-Größe 1) ausgearbeitet, sodass die Verwendung größerer Minibatches theoretisch nicht erforderlich ist. Es hat zwei praktische Vorteile:

Ein , wenn die Berechnung vektorisiert werden kann, können Sie in der Lage sein , Steigungen für ein kleines mini zu berechnen> 1 fast genauso schnell, was zu erheblichen Geschwindigkeitssteigerungen in der Ausbildung.

In diesem Fall hängt die optimale Minibatch-Größe von der jeweiligen Hardware und Implementierung ab, mit der Sie arbeiten. Sie sollten also am besten experimentieren, um den Sweet Spot zu finden.

Zwei der Gradient auf einer mini Größe Computer> 1 wird zu einer genaueren Gradienten führen und optimaleren Schritte. Dieser Vorteil wird sich jedoch schnell einstellen und abschwächen, sobald die Größe des Minibatches auf über 1 erhöht wird, sodass Sie sich in erster Linie auf das erste Ziel konzentrieren können.

David Kelley
quelle