Donc, je n'ai pas pu trouver de littérature sur ce sujet mais il semble que quelque chose mérite réflexion:
Quelles sont les meilleures pratiques en matière de formation et d'optimisation de modèles si de nouvelles observations sont disponibles?
Existe-t-il un moyen de déterminer la période / fréquence de recyclage d'un modèle avant que les prédictions ne commencent à se dégrader?
Est-il trop adapté si les paramètres sont ré-optimisés pour les données agrégées?
Notez que l'apprentissage n'est pas nécessairement en ligne. On peut souhaiter mettre à niveau un modèle existant après avoir observé une variance significative dans les prévisions plus récentes.
Réponses:
.pickle
fichier, le charger et vous y entraîner lorsque de nouvelles données sont disponibles. Prenez note que pour le modèle à prédire correctement,the new training data should have a similar distribution as the past data
.The frequency will be dependent on dataset
et il n'y a pas de temps spécifique pour se déclarer comme tel.If you observe that your new incoming data is deviating vastly, then it is a good practise to retrain the model
.la source
Lorsque de nouvelles observations sont disponibles, il existe trois façons de recycler votre modèle:
Aujourd'hui, la plupart des modèles utilisent un lot / mini-lot et le choix de la taille du lot dépend de votre application et de votre modèle. Choisir la bonne taille de lot équivaut à choisir la bonne fréquence avec laquelle recycler votre modèle. Si votre nouvelle observation présente une faible variance avec vos données existantes, je suggère des lots plus importants (256-512 peut-être) et si au contraire de nouvelles observations tendent à varier considérablement avec vos données existantes, utilisez de petits lots (8-256). À la fin de la journée, la taille du lot est un peu comme un autre hyper-paramètre que vous devez régler et qui est spécifique à vos données
la source
Votre problème fait partie des méthodes d'apprentissage en ligne. En supposant qu'un flux de données arrive, vous pouvez utiliser la méthode de descente de gradient stochastique pour mettre à jour les paramètres de votre modèle à l'aide de cet exemple unique.
Si votre fonction de coût est:
Il s'agit essentiellement de SGD avec la taille de lot 1.
Il y a une autre astuce, vous pouvez adopter une méthode basée sur une fenêtre / tampon, où vous tamponnez quelques exemples de flux et le traitez comme lot et utilisez SGD par lot. Dans ce cas, l'équation de mise à jour deviendra:
Il s'agit essentiellement de mini-lots SGD.
la source
La question: DEVRIEZ-VOUS vous recycler?
La réponse dépend de ce que votre modèle tente de faire et dans quel environnement il est appliqué.
Permettez-moi d'expliquer par quelques exemples:
Supposons que votre modèle tente de prédire le comportement des clients, par exemple la probabilité qu'un client achète votre produit en fonction d'une offre adaptée à ses besoins. De toute évidence, le marché change avec le temps, les préférences des clients changent et vos concurrents s'adaptent. Vous devez également vous ajuster, vous devez donc vous recycler régulièrement. Dans un tel cas, je recommanderais d'ajouter de nouvelles données, mais également d'omettre les anciennes données qui ne sont plus pertinentes. Si le marché évolue rapidement, vous devriez même envisager de vous recycler périodiquement sur la base de nouvelles données uniquement.
D'un autre côté, si votre modèle classe certaines images (p. Ex. Rayons X ou IRM) dans des conditions médicales et que le modèle fonctionne bien, vous n'avez pas besoin de vous recycler s'il n'y a aucun changement dans la technologie ou dans le savoir-faire médical. . L'ajout de données supplémentaires ne s'améliorera pas beaucoup.
la source