Verlustreduzierung: stochastischer Gradientenabstieg

Beim Gradientenverfahren ist ein Batch die Reihe von Beispielen, mit denen Sie den Gradienten in einem einzelnen Trainingsdurchlauf berechnen. Bisher haben wir davon ausgegangen, dass der Batch das gesamte Dataset umfasst. Im Google-Maßstab enthalten Datasets oft Milliarden oder sogar Hunderte Milliarden Beispiele. Außerdem enthalten Google-Datensätze oft eine große Anzahl von Funktionen. Daher kann ein Batch riesig sein. Ein sehr großer Batch kann dazu führen, dass selbst eine einzelne Iteration sehr lange für die Berechnung dauert.

Ein großes Dataset mit zufällig ausgewählten Beispielen enthält wahrscheinlich redundante Daten. Tatsächlich steigt mit zunehmender Batchgröße auch die Redundanz. Ein gewisses Maß an Redundanz kann nützlich sein, um verrauschte Gradienten zu glätten. Große Batches bieten jedoch tendenziell keinen wesentlich höheren Vorhersagewert als große Batches.

Was wäre, wenn wir im Durchschnitt den richtigen Gradienten für wesentlich weniger Rechenvorgänge erhalten könnten? Durch die zufälligen Auswahl von Beispielen aus unserem Dataset können wir einen großen Durchschnittswert von einem viel kleineren Durchschnittswert schätzen (wenn auch sehr verwirrend). Der stochastische Gradientenabstieg (SGD) geht aus dieser Idee hervor, denn es wird nur ein einziges Beispiel (eine Batchgröße von 1) pro Iteration verwendet. Bei genügend Iterationen funktioniert SGD, ist aber sehr laut. Der Begriff "stochastisch" gibt an, dass das Beispiel, aus dem jeder Batch besteht, nach dem Zufallsprinzip ausgewählt wird.

Der stochastische Minibatch-Gradientenabstieg (Mini-Batch-SGD) ist ein Kompromiss zwischen der vollständigen Batchiteration und SGD. Ein Minibatch besteht in der Regel aus 10 bis 1.000 Beispielen, die zufällig ausgewählt werden. Mini-Batch-SGD reduziert das Rauschen in SGD, ist aber immer noch effizienter als Full-Batch.

Zur Vereinfachung der Erläuterung haben wir uns auf das Gradientenverfahren für ein einzelnes Feature konzentriert. Sie können sicher sein, dass das Gradientenverfahren auch für Feature-Sets funktioniert, die mehrere Merkmale enthalten.