Was ist der Unterschied zwischen Online- und Batch-Lernen?

16

Derzeit lese ich die Arbeit Efficient Online and Batch Learning mit Forward-Backward Splitting von John Duchi und Yoram Singer. Ich bin sehr verwirrt über die Verwendung der Begriffe "Online" und "Batch".

Ich dachte, "Online" bedeutet, dass wir die Gewichtsparameter nach der Verarbeitung einer Einheit der Trainingsdaten aktualisieren. Dann verwenden wir die neuen Gewichtsparameter, um die nächste Einheit der Trainingsdaten zu verarbeiten.

In der obigen Abhandlung ist die Verwendung jedoch nicht so klar.

Vivian
quelle
1
und die frage ist?
a.desantos

Antworten:

5

Für mich sieht es so aus, als würden sie Batch- und Online-Lernen richtig einsetzen. In Abschnitt 3 bearbeiten sie den gesamten Datensatz, um das Lernen, dh das Batch-Lernen, durchzuführen, während sie in Abschnitt 4 auf die stochastische Gradientenfolge umschalten, die als Online-Lernalgorithmus verwendet werden kann.

Ich habe noch nie stochastische Verlaufsverfolgung als Online-Lernalgorithmus verwendet. Es ist jedoch möglich, den Optimierungsprozess einfach mitten in einem Lernlauf anzuhalten, und dies ist immer noch ein nützliches Modell. Bei sehr großen Datenmengen ist dies hilfreich, da Sie die Konvergenz messen und das Lernen frühzeitig beenden können. Sie können die stochastische Gradientenverfolgung als Online-Lernmethode verwenden, da Sie das Modell für jeden neuen Datenpunkt aktualisieren, wie Sie selbst gesagt haben. Trotzdem würde ich vorsichtig sein, wenn ich es "pro Trainingsdaten" nenne. Trainingsdaten sind ein Datensatz, kein Datenpunkt, aber ich glaube, ich habe Sie verstanden, seit Sie " Pro Trainingsdaten" gesagt haben .

André Christoffer Andersen
quelle
ftft
11

Batch versus Online-Lernen

Der Online- und der Batch-Modus unterscheiden sich geringfügig, obwohl beide für parabolische Leistungsoberflächen eine gute Leistung erbringen. Ein Hauptunterschied besteht darin, dass der Batch-Algorithmus die Systemgewichte konstant hält, während der Fehler berechnet wird, der mit jeder Stichprobe in der Eingabe verbunden ist. Da die Online-Version ihre Gewichte ständig aktualisiert, werden für die Fehlerberechnung (und damit für die Gradientenschätzung) für jedes Eingabemuster unterschiedliche Gewichte verwendet. Dies bedeutet, dass die beiden Algorithmen während der Anpassung unterschiedliche Punktmengen besuchen. Beide konvergieren jedoch zum gleichen Minimum.

Beachten Sie, dass die Anzahl der Gewichtsaktualisierungen der beiden Methoden für die gleiche Anzahl von Datenpräsentationen sehr unterschiedlich ist. Die Online-Methode (LMS) aktualisiert jede Stichprobe, während die Batch-Methode jede Epoche aktualisiert, d. H.

LMS-Updates = (Batch-Updates) x (Anzahl der Proben im Trainingssatz).

Der Batch-Algorithmus ist auch in Bezug auf die Anzahl der Berechnungen etwas effizienter.

user69945
quelle