Sollte ein Modell umgeschult werden, wenn neue Beobachtungen vorliegen?


28

Daher konnte ich keine Literatur zu diesem Thema finden, aber es scheint sich zu lohnen, darüber nachzudenken:

  • Was sind die Best Practices für Modellbildung und -optimierung, wenn neue Beobachtungen verfügbar sind?

  • Gibt es eine Möglichkeit, den Zeitraum / die Häufigkeit des erneuten Trainings eines Modells zu bestimmen, bevor sich die Prognosen verschlechtern?

  • Überanpassung, wenn die Parameter für die aggregierten Daten erneut optimiert werden?

Beachten Sie, dass das Lernen nicht unbedingt online sein muss. Möglicherweise möchten Sie ein vorhandenes Modell aktualisieren, nachdem Sie signifikante Abweichungen bei neueren Vorhersagen festgestellt haben.


Die Antwort hängt stark vom Geschäftsbereich und der jeweiligen Modellanwendung ab.
Pete

Antworten:


16
  1. Sobald ein Modell trainiert ist und Sie neue Daten erhalten, die für das Training verwendet werden können, können Sie das vorherige Modell laden und darauf trainieren. Beispielsweise können Sie Ihr Modell als .pickleDatei speichern, laden und weiter trainieren, wenn neue Daten verfügbar sind. Beachten Sie, dass das Modell korrekt vorhersagen kann the new training data should have a similar distribution as the past data.
  2. Vorhersagen neigen dazu, sich basierend auf dem von Ihnen verwendeten Datensatz zu verschlechtern. Zum Beispiel, wenn Sie versuchen, mit Twitter-Daten zu trainieren und Daten zu einem Produkt gesammelt haben, das an diesem Tag häufig getwittert wird. Wenn Sie jedoch nach einigen Tagen Tweets verwenden, wenn dieses Produkt noch nicht einmal besprochen wird, ist es möglicherweise voreingenommen. The frequency will be dependent on datasetund es gibt keine bestimmte Zeit, um als solche anzugeben. If you observe that your new incoming data is deviating vastly, then it is a good practise to retrain the model.
  3. Die Optimierung der Parameter für die aggregierten Daten ist nicht übermäßig. Große Datenmengen bedeuten keine Überanpassung. Verwenden Sie die Kreuzvalidierung, um auf Überanpassung zu prüfen.

Wenn also die Art des eingehenden Datensatzes durchgehend konsistent bleibt, kann das Modell nichts Neues lernen?
user140323

Wenn sich die Daten nicht ändern und Sie mit der Genauigkeit des aktuellen Modells zufrieden sind, sehe ich keinen Grund für eine Umschulung.
Hima Varsha

@Aayush, Vielleicht können Sie die eingehenden Daten als Validierungssatz verwenden und Ihr aktuelles Modell überprüfen.
Hima Varsha

Noch zu früh, um das zu akzeptieren, aber ich werde es tun. Vielen Dank!
user140323

Hallo @ tktktk0711, ich habe derzeit keinen Code, der Ihnen angezeigt werden könnte. Aber gehen Sie dies einfach durch, was auf einen anderen Link mit dem Code hinweist. github.com/tflearn/tflearn/issues/39
Hima Varsha

20

Wenn neue Beobachtungen verfügbar sind, gibt es drei Möglichkeiten, Ihr Modell zu trainieren:

  1. Online: Jedes Mal, wenn eine neue Beobachtung verfügbar ist, verwenden Sie diesen einzelnen Datenpunkt, um Ihr Modell weiter zu trainieren (z. B. laden Sie Ihr aktuelles Modell und trainieren Sie es, indem Sie eine Rückübertragung mit dieser einzelnen Beobachtung durchführen). Mit dieser Methode lernt Ihr Modell auf sequentielle Weise und passt sich lokal Ihren Daten an, indem es stärker von den jüngsten Beobachtungen beeinflusst wird als von älteren Beobachtungen. Dies kann in Situationen nützlich sein, in denen Ihr Modell dynamisch an neue Muster in Daten angepasst werden muss. Dies ist auch nützlich, wenn Sie mit extrem großen Datenmengen arbeiten, für die nicht alle gleichzeitig trainiert werden können.
  2. Offline: Sie fügen die neuen Beobachtungen zu Ihrem bereits vorhandenen Datensatz hinzu und trainieren Ihr Modell vollständig auf diesem neuen, größeren Datensatz. Dies führt im Allgemeinen zu einer besseren globalen Annäherung der Zielfunktion und ist sehr beliebt, wenn Sie einen festen Datensatz haben oder wenn Sie nicht zu oft neue Beobachtungen haben. Bei großen Datenmengen ist dies jedoch unpraktisch.
  3. nn

Die meisten heutigen Modelle verwenden Batch / Mini-Batch, und die Auswahl für die Größe des Batch hängt von Ihrer Anwendung und Ihrem Modell ab. Die Auswahl der richtigen Losgröße entspricht der Auswahl der richtigen Häufigkeit, mit der Sie Ihr Modell neu trainieren können. Wenn Ihre neue Beobachtung eine geringe Varianz zu Ihren vorhandenen Daten aufweist, würde ich größere Chargen vorschlagen (256-512), und wenn im Gegenteil neue Beobachtungen dazu neigen, sich stark von Ihren vorhandenen Daten zu unterscheiden, verwenden Sie kleine Chargen (8-256). Am Ende des Tages ähnelt die Batchgröße einem weiteren Hyperparameter, den Sie einstellen müssen und der spezifisch für Ihre Daten ist


Hallo, ich möchte dich online fragen: wie online nach neuen Daten. Beschränkt diese Methode einige ML-Modelle, meine ich nicht das gesamte maschinelle Lernen.
tktktk0711

Kennen Sie Tensorflow-Beispiele, die Batch verwenden ?
Maxisme

1

Ihr Problem wird unter dem Dach der Online-Lernmethoden behandelt. Unter der Annahme eines Datenstroms können Sie die Methode "Stochastic Gradient Descent" verwenden, um die Modellparameter anhand dieses Beispiels zu aktualisieren.

Wenn Ihre Kostenfunktion ist:

minθJ(x,y,θ)

Wobei Parametervektor ist und dann Streaming-Daten der Form ( ) vorausgesetzt werden , können Sie Ihren Parametervektor mit SGD mit der folgenden Aktualisierungsgleichung aktualisieren:θxi,yi

θt=θt1θJ(xi,yi)

Dies ist im Wesentlichen SGD mit Losgröße 1.

Es gibt noch einen anderen Trick: Sie können eine fenster- / pufferbasierte Methode anwenden, bei der Sie einige Beispiele aus dem Stream puffern und als Batch behandeln und Batch-SGD verwenden. In diesem Fall lautet die Aktualisierungsgleichung:

θt=θt1iθJ(xi,yi)

Dies ist im Wesentlichen Mini-Batch-SGD.


0

Die Frage: SOLLTEN Sie sich umbilden?

Die Antwort hängt davon ab, was Ihr Modell versucht und in welcher Umgebung es angewendet wird.

Lassen Sie mich anhand einiger Beispiele erklären:

Angenommen, Ihr Modell versucht, das Kundenverhalten vorherzusagen, z. B. wie wahrscheinlich es ist, dass ein Kunde Ihr Produkt mit einem auf ihn zugeschnittenen Angebot kauft. Der Markt ändert sich mit der Zeit, die Kundenpräferenzen ändern sich und Ihre Konkurrenten passen sich an. Sie sollten auch anpassen, so dass Sie regelmäßig neu trainieren müssen. In einem solchen Fall würde ich empfehlen, neue Daten hinzuzufügen, aber auch alte Daten wegzulassen, die nicht mehr relevant sind. Wenn sich der Markt schnell verändert, sollten Sie sogar in Erwägung ziehen, regelmäßig nur auf der Grundlage neuer Daten umzuschulen.

Wenn Ihr Modell jedoch bestimmte bildgebende Verfahren (z. B. Röntgen- oder MRT-Verfahren) für medizinische Bedingungen klassifiziert und das Modell eine gute Leistung erbringt, ist keine Umschulung erforderlich, wenn sich weder die Technologie noch das medizinische Know-how geändert haben . Das Hinzufügen weiterer Daten wird sich nicht wesentlich verbessern.

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.