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.
Antworten:
.pickle
Datei speichern, laden und weiter trainieren, wenn neue Daten verfügbar sind. Beachten Sie, dass das Modell korrekt vorhersagen kannthe new training data should have a similar distribution as the past data
.The frequency will be dependent on dataset
und 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
.quelle
Wenn neue Beobachtungen verfügbar sind, gibt es drei Möglichkeiten, Ihr Modell zu trainieren:
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
quelle
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:
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
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:
Dies ist im Wesentlichen Mini-Batch-SGD.
quelle
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.
quelle