Online oder Offline lernen?


38

Was ist der Unterschied zwischen Offline- und Online-Lernen ? Geht es nur darum, über den gesamten Datensatz (offline) zu lernen oder inkrementell (jeweils eine Instanz) zu lernen? Was sind Beispiele für Algorithmen, die in beiden verwendet werden?

Antworten:


26

Online-Lernen bedeutet, dass Sie es tun, während die Daten eingehen. Offline bedeutet, dass Sie einen statischen Datensatz haben.

Beim Online-Lernen verfügen Sie (normalerweise) über mehr Daten, haben jedoch zeitliche Einschränkungen. Ein weiteres Problem, das sich auf das Online-Lernen auswirken kann, besteht darin, dass sich Ihre Konzepte im Laufe der Zeit ändern können.

Angenommen, Sie möchten einen Klassifikator erstellen, um Spam zu erkennen. Sie können einen großen E-Mail-Korpus erwerben, ihn beschriften und einen Klassifikator darauf trainieren. Dies wäre Offline-Lernen. Oder Sie können alle in Ihrem System eingehenden E-Mails abrufen und Ihren Klassifikator kontinuierlich aktualisieren (Beschriftungen können etwas schwierig sein). Dies wäre Online-Lernen.


7
Ja, und eine leichte Klarstellung ist, dass Online-Lernalgorithmen, zumindest wie sie im maschinellen Lernen untersucht wurden, meist davon ausgehen, dass Ihre Fähigkeit, Beispiele zu speichern, im Vergleich zur Größe des Datensatzes sehr begrenzt ist. Im einschränkendsten Fall sehen Sie immer nur ein Beispiel und müssen es dann vergessen, nachdem Sie es zum Aktualisieren Ihres Klassifikators verwendet haben.
Harlan

8

Der Begriff "online" ist überladen und führt daher zu Verwirrung im Bereich des maschinellen Lernens.

Das Gegenteil von "online" ist Batch-Lernen. Beim Batch-Lernen aktualisiert der Lernalgorithmus seine Parameter nach dem Verbrauch des gesamten Batch, während beim Online-Lernen die Parameter nach dem Lernen von einer Trainingsinstanz aktualisiert werden. Mini-Batch-Lernen ist die Mitte zwischen Batch-Lernen an einem Ende und Online-Lernen am anderen Ende.

Außerdem ist "wann" die Daten eingehen oder ob sie gespeichert werden können oder nicht, orthogonal zum Online- oder Batch-Lernen.

Es wird angenommen, dass Online-Lernen im Vergleich zum Batch-Lernen langsamer zu einem Minimum konvergiert. In Fällen, in denen der gesamte Datensatz nicht in den Arbeitsspeicher passt, ist die Verwendung des Online-Lernens ein akzeptabler Kompromiss.


Ich denke nicht, dass das wahr ist. Sie beschreiben den Optimierungsalgorithmus für den stochastischen (oder Online-) Gradientenabstieg , der sowohl für Online- als auch für Offline-Problemeinstellungen verwendet werden kann.
Danijar

Ich glaube , die „als Daten kommen in“ bezieht sich auf Online- und Offline - Algorithmen en.wikipedia.org/wiki/Online_algorithm ich das Gefühl , dass OPs für Online - Lernen DEFN klar diese Unterscheidung macht. Online Algos -> Prozess, sobald Daten eingehen. Online-Lernen -> Aktualisierung des zugrunde liegenden Modells schrittweise während des Trainings.
Gokul_uf

4

Online-Lernen (auch inkrementelles Lernen genannt ): Wir betrachten eine einzelne Darstellung der Beispiele. In diesem Fall wird jedes Beispiel sequentiell in einer Weise verwendet, wie es durch den Lernalgorithmus vorgeschrieben ist, und dann weggeworfen. Die in einem bestimmten Stadium vorgenommenen Gewichtsänderungen hängen insbesondere nur vom (aktuellen) präsentierten Beispiel und möglicherweise vom aktuellen Status des Modells ab. Es ist das natürliche Verfahren für zeitlich veränderliche Regeln, bei denen die Beispiele möglicherweise nicht auf einmal verfügbar sind.

Offline-Lernen : Die Gewichtsänderungen hängen vom gesamten (Trainings-) Datensatz ab und definieren eine globale Kostenfunktion. Die Beispiele werden wiederholt verwendet, bis eine Minimierung dieser Kostenfunktion erreicht ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.