Apprentissage en ligne ou hors ligne?

38

Quelle est la différence entre l' apprentissage hors ligne et en ligne ? Est-ce juste une question d’apprentissage sur l’ensemble du jeu de données (hors ligne) par opposition à un apprentissage incrémentiel (une instance à la fois)? Quels sont les exemples d'algorithmes utilisés dans les deux?

griffon
la source

Réponses:

26

L'apprentissage en ligne signifie que vous le faites au fur et à mesure que les données arrivent. Hors connexion, vous avez un ensemble de données statique.

Donc, pour l'apprentissage en ligne, vous avez (généralement) plus de données, mais vous avez des contraintes de temps. Une autre ride qui peut affecter l'apprentissage en ligne est que vos concepts peuvent changer avec le temps.

Supposons que vous souhaitiez créer un classificateur reconnaissant le spam. Vous pouvez acquérir un grand corpus d'e-mails, les étiqueter et y former un classificateur. Ce serait un apprentissage hors ligne. Ou bien, vous pouvez prendre tous les courriels arrivant dans votre système et mettre à jour en permanence votre classificateur (les étiquettes peuvent être un peu délicates). Ce serait l'apprentissage en ligne.

utilisateur549
la source
7
Oui, et une légère précision est que les algorithmes d'apprentissage en ligne, du moins ceux étudiés dans Machine Learning, supposent généralement que votre capacité à stocker des exemples est très limitée par rapport à la taille de l'ensemble de données. Dans le cas le plus limitatif, vous ne voyez qu'un exemple à la fois, puis vous devez l'oublier après l'avoir utilisé pour mettre à jour votre classificateur.
Harlan
8

Le terme "en ligne" est surchargé et provoque donc une confusion dans le domaine de l'apprentissage automatique.

Le contraire de "en ligne" est l'apprentissage par lots. Dans l'apprentissage par lots, l'algorithme d'apprentissage met à jour ses paramètres après avoir consommé la totalité du lot, tandis que dans l'apprentissage en ligne, il met à jour ses paramètres après avoir appris à partir d'une instance d'apprentissage. L'apprentissage en mode batch est à mi-chemin entre l'apprentissage en batch d'un côté et l'apprentissage en ligne de l'autre côté.

De plus, "quand" les données sont entrées, qu'elles soient ou non stockées, est orthogonal à l'apprentissage en ligne ou par lots.

L’apprentissage en ligne est considéré comme plus lent à converger vers un minimum que l’apprentissage par lots. Cependant, dans les cas où l'ensemble de données entier ne tient pas dans la mémoire, utiliser l'apprentissage en ligne est un compromis acceptable.

shark8me
la source
Je ne pense pas que c'est vrai. Ce que vous décrivez est l’algorithme d’optimisation de la descente de gradient stochastique (ou en ligne) qui peut être utilisé pour les paramètres de problème en ligne ou hors ligne.
danijar
Je crois que le « sous forme de données est disponible en » fait référence à des algorithmes en ligne et hors ligne en.wikipedia.org/wiki/Online_algorithm je pense que pour l' apprentissage DEFN OPs en ligne fait clairement cette distinction. Algos en ligne -> processus lors de l’introduction de données. Apprentissage en ligne -> mise à jour progressive du modèle sous-jacent au cours de la formation.
gokul_uf
4

Apprentissage en ligne (également appelé apprentissage incrémental ): nous considérons une seule présentation des exemples. Dans ce cas, chaque exemple est utilisé séquentiellement de la manière prescrite par l'algorithme d'apprentissage, puis jeté. Les modifications de poids effectuées à un stade donné dépendent uniquement de l'exemple (actuel) présenté et éventuellement de l'état actuel du modèle. C'est la procédure naturelle pour les règles variables dans le temps où les exemples peuvent ne pas être disponibles du tout à la fois.

Apprentissage hors ligne : les changements de poids dépendent de l'ensemble du jeu de données (formation), définissant une fonction de coût globale. Les exemples sont utilisés à plusieurs reprises jusqu'à ce que cette fonction de coût soit minimisée.

FrankyBravo
la source