Online Learning
L’apprentissage en ligne met à jour un modèle un exemple ou un mini-lot à la fois, au fil de l’arrivée des données. Il continue ainsi d’apprendre et s’adapte à la dérive de concept sans réentraînement.
L’apprentissage en ligne est une approche d’apprentissage automatique dans laquelle un modèle apprend à partir de données reçues en séquence, en se mettant à jour après chaque exemple ou petit lot plutôt qu’en étant entraîné une seule fois sur un jeu de données fixe. À chaque étape, le modèle effectue une prédiction, reçoit le résultat réel, mesure sa perte et ajuste ses paramètres avant l’arrivée de l’exemple suivant. Cette approche convient aux données diffusées en continu, comme les clics, les transactions ou les relevés de capteurs, aux données trop volumineuses pour être stockées et aux relations qui évoluent dans le temps. L’apprentissage par lots, ou hors ligne, est l’inverse : le modèle est entraîné sur toutes ses données d’entraînement à la fois et reste inchangé jusqu’à son réentraînement.
Fonctionnement de l’apprentissage en ligne#
Le perceptron de Frank Rosenblatt, créé en 1958, apprenait en ligne et ajustait ses poids après chaque exemple mal classé ; la descente de gradient stochastique (SGD) applique la même mise à jour par exemple ou par lot à presque tout modèle différentiable. D’autres algorithmes sont conçus pour les flux : les arbres de Hoeffding, présentés par Pedro Domingos et Geoff Hulten en 2000, construisent un arbre de décision à partir d’un flux en ne voyant chaque exemple qu’une fois, et des bibliothèques comme River implémentent des versions en continu de modèles courants. Dans scikit-learn, les estimateurs dotés d’une méthode partial_fit apprennent de manière incrémentielle.
Les apprenants en ligne sont généralement évalués de manière préquentielle, terme proposé par le statisticien Philip Dawid : chaque nouvel exemple sert d’abord à tester le modèle, puis à l’entraîner, de sorte que le score cumulatif est calculé sur des données que le modèle n’avait pas encore vues. La théorie mesure un apprenant en ligne par son regret, c’est-à-dire l’écart entre sa perte cumulée et celle du meilleur modèle fixe choisi rétrospectivement. Martin Zinkevich a démontré en 2003 que la descente de gradient en ligne maintient une croissance du regret proportionnelle uniquement à la racine carrée du nombre d’étapes ; l’écart moyen par étape tend donc vers zéro.
Cet exemple transmet 400 mini-lots à une régression logistique entraînée par SGD. À mi-parcours, la règle d’attribution des étiquettes change ; une copie figée à ce moment représente un modèle qui a cessé d’apprendre :
import copy
import numpy as np
from sklearn.linear_model import SGDClassifier
rng = np.random.default_rng(0)
online = SGDClassifier(loss="log_loss", random_state=0)
scores = {"frozen": [], "online": []}
for step in range(400): # 400 mini-batches of 20 examples arrive one at a time
X = rng.normal(size=(20, 2))
w = [1.0, 1.0] if step < 200 else [1.0, -1.0] # the labeling rule changes at step 200
y = (X @ np.array(w) > 0).astype(int)
if step == 200:
frozen = copy.deepcopy(online) # a copy that stops learning when the rule changes
if step >= 200: # test on each new batch before learning from it
scores["frozen"].append(frozen.score(X, y))
scores["online"].append(online.score(X, y))
online.partial_fit(X, y, classes=[0, 1])
for name, acc in scores.items():
print(f"{name}: {np.mean(acc):.2f} accuracy after the change")Après le changement, le modèle figé obtient un score de 0.47, pas mieux qu’une supposition, tandis que le modèle en ligne atteint une moyenne de 0.98. Le modèle en ligne obtient 0.35 sur le premier lot soumis à la nouvelle règle et 0.80 sur le deuxième, puis se rétablit en quelques lots supplémentaires.
Dérive conceptuelle et oubli#
La principale raison d’apprendre en ligne est la dérive conceptuelle, c’est-à-dire un changement dans la relation entre les entrées et les étiquettes, souvent accompagné d’une dérive des données d’entrée. La dérive peut être soudaine, comme dans l’exemple, ou s’installer progressivement ou revenir au fil des saisons et des heures de la journée. Des détecteurs comme ADWIN, créé par Albert Bifet et Ricard Gavaldà, surveillent le flux d’erreurs et signalent tout changement de moyenne, ce qui peut déclencher des mises à jour plus rapides ou une réinitialisation.
Une adaptation rapide a un coût. Un taux d’apprentissage élevé suit rapidement la dérive, mais aussi le bruit ; de plus, un réseau exposé uniquement aux données récentes écrase ce qu’il avait appris auparavant, un échec appelé oubli catastrophique. Les tampons de rejeu, qui mélangent d’anciens exemples stockés à chaque mise à jour, constituent un remède courant.
L’apprentissage en ligne en pratique#
L’apprentissage en ligne est courant lorsque les étiquettes arrivent en quelques secondes. La prédiction des clics publicitaires en est l’exemple classique : en 2013, Google a décrit comment ses modèles de taux de clic s’entraînent en continu sur des données en flux avec l’algorithme FTRL-Proximal ; les systèmes de recommandation et les modèles d’évaluation de la fraude sont souvent mis à jour de la même façon. Les modèles de vision déployés sont généralement mis à jour par lots, car les étiquettes arrivent tardivement et une seule mise à jour corrompue peut dégrader toutes les prédictions suivantes. Les équipes associent donc la surveillance des modèles à un ajustement fin périodique sur des données récentes et rejouées, comme dans les workflows de maintenance des modèles.
Des mises à jour en ligne plus modestes sont bien effectuées dans les systèmes de vision. En mode suivi d’Ultralytics YOLO26, l’activation de la réidentification avec with_reid: True permet au traceur TrackTrack par défaut de conserver une intégration d’apparence pour chaque trajectoire et de la mettre à jour après chaque détection associée sous forme de moyenne mobile. La nouvelle intégration reçoit un poids égal à 5 % multiplié par le niveau de confiance de la détection, de sorte que l’apparence de chaque trajectoire s’adapte graduellement aux changements de pose et d’éclairage, tandis que le réseau ReID reste fixe.
L’apprentissage continu recoupe l’apprentissage en ligne, mais vise à conserver les tâches antérieures pendant l’arrivée de nouvelles tâches ; l’apprentissage en ligne décrit plutôt la fréquence des mises à jour. L’apprentissage actif choisit les exemples à étiqueter, et l’apprentissage par renforcement apprend également à partir d’un flux d’interactions, mais à partir des récompenses associées à ses propres actions plutôt que d’exemples étiquetés.










