Imaginez que vous montriez cent fois sur un réseau de neurones l'image d'un lion et que vous étiquetiez «dangereux», de sorte qu'il découvre que les lions sont dangereux.
Imaginez maintenant que vous lui avez déjà montré des millions d’images de lions et que vous l’aviez étiquetée comme "dangereux" et "non dangereux", de sorte que la probabilité qu’un lion soit dangereux est de 50%.
Mais ces 100 dernières fois ont poussé le réseau de neurones à être très positif quant à considérer le lion comme "dangereux", ignorant ainsi le dernier million de leçons.
Par conséquent, il semble que les réseaux de neurones présentent un défaut: ils peuvent changer d'avis trop rapidement en se basant sur des preuves récentes. Surtout si cette preuve précédente était au milieu.
Existe-t-il un modèle de réseau de neurones qui garde en mémoire le nombre de preuves qu'il a vues? (Ou cela équivaudrait-il à laisser le taux d'apprentissage diminuer de où est le nombre d'essais?)
la source
Réponses:
Oui, en effet, les réseaux de neurones sont très sujets aux oublis catastrophiques (ou interférences) . Actuellement, ce problème est souvent ignoré car les réseaux de neurones sont principalement formés hors ligne (parfois appelés batch training ), où ce problème ne se pose pas souvent, et pas en ligne ou de manière incrémentielle , ce qui est fondamental pour le développement de l'intelligence générale artificielle .
Certaines personnes travaillent sur l'apprentissage continu tout au long de la vie dans les réseaux de neurones, qui tente d'adapter les réseaux neuronaux à l'apprentissage continu tout au long de la vie, c'est-à-dire la capacité d'un modèle à apprendre continuellement à partir d'un flux de données, de manière à ne pas oublier complètement les connaissances acquises précédemment. connaissances tout en apprenant de nouvelles informations. Voir, par exemple, l'étude Apprentissage continu tout au long de la vie avec les réseaux de neurones: Une revue (2019) de German I. Parisi, Ronald Kemker, Jose L. Part, Christopher Kanan et Stefan Wermter, qui résume les problèmes et les solutions existantes liés à la catastrophe. l'oubli des réseaux de neurones.
la source
Oui, le problème de l' oubli d' anciens exemples de formation est une caractéristique des réseaux de neurones. Je n’appellerais pas cela une "faille", car cela les aiderait à être plus adaptatifs et permettrait des applications intéressantes telles que l’apprentissage par transfert (si un réseau retenait trop bien les anciennes formations, les adapter aux nouvelles données n’aurait aucun sens).
En pratique, ce que vous voulez faire est de mélanger les exemples d’entraînement pour dangereux et non dangereux afin qu’il ne voit pas une catégorie au début et une à la fin.
Une procédure de formation standard fonctionnerait comme ceci:
Notez que le brassage à chaque époque garantit que le réseau ne verra pas les mêmes exemples de formation dans le même ordre à chaque époque et que les classes seront mélangées.
Maintenant, pour répondre à votre question, oui, une diminution du taux d’apprentissage rendrait le réseau moins enclin à oublier sa formation précédente, mais comment cela fonctionnerait-il dans un environnement non en ligne? Pour qu'un réseau puisse converger, il a besoin de plusieurs époques de formation (c'est-à-dire voir chaque échantillon de l'ensemble de données plusieurs fois).
la source
Ce que vous décrivez semble que cela pourrait être un cas délibéré d’ ajustement .
Il existe une hypothèse fondamentale qui rend la descente de gradient de mini-lot utile pour les problèmes d’apprentissage: il est supposé que tout lot ou fenêtre temporelle de lots consécutifs constitue une approximation décente du véritable effet global.gradient de la fonction d'erreur par rapport à tout paramétrage du modèle. Si la surface d'erreur elle-même se déplace fortement, cela compromettrait les objectifs de la descente de gradient - la descente de gradient étant un algorithme de raffinement local, tous les paris sont désactivés lorsque vous modifiez soudainement la distribution sous-jacente. Dans l'exemple que vous avez cité, l'oubli catastrophique semble être une conséquence du fait d'avoir "oublié" des points de données précédemment vus, et est soit un symptôme de la distribution ayant changé, soit de la sous-représentation dans les données d'un phénomène important , de telle sorte qu'il est rarement vu par rapport à son importance.
L’expérience acquise à partir de l’apprentissage par renforcement est un concept pertinent qui passe bien dans ce domaine. Voici un document qui explore ce concept en ce qui concerne l’oubli catastrophique. Tant que l'échantillonnage représente suffisamment les véritables gradients (regardez l' équilibre de l'échantillon d'apprentissage pour cela) et que le modèle dispose de suffisamment de paramètres, le problème de l'oubli catastrophique est peu probable. Dans les ensembles de données remaniés de manière aléatoire avec remplacement, il est plus probable que les points de données d'une classe particulière soient si rares qu'il est peu probable qu'ils soient inclus pendant une longue période de formation, ce qui permet d'affiner le modèle à un problème différent jusqu'à l'obtention d'un échantillon correspondant. est vu à nouveau.
la source
Pour répondre à votre question, je dirais: peut-être en théorie, mais pas en pratique.
Le problème est que vous ne considérez qu'une formation chronologique / séquentielle.
Une seule fois, j’ai utilisé cette méthode de formation séquentielle appelée formation en ligne ou apprentissage automatique en ligne . Cela utilisait la bibliothèque woppbit woppal . C’est une fonctionnalité (et non un problème que vous considérez) de cette bibliothèque à adapter chronologiquement à l’entrée dont elle est alimentée.
J'insiste : dans le cas de cette bibliothèque Woppal Wabbit, il est une caractéristique d'adaptation chronologique. Il est souhaitable que lorsque vous commencez seulement à lui dire que les lions sont dangereux, il s’adapte en conséquence.
Mais dans tous les autres cas , qu'il s'agisse d'exercices de cours ou de compétitions de kaggle, j'ai utilisé un sous-ensemble aléatoire de mes données d'entrée comme ensemble d'entraînement. Et c'est vraiment crucial :
C'est une partie importante de Machine Learning qui s'appelle la validation croisée . C'est le moyen d'estimer la qualité du réseau de neurones formés.
Pour avoir une bonne estimation de la validité de votre réseau de neurones, vous prenez un sous-ensemble aléatoire de vos données d’entraînement. En bref, vous prenez environ 80% de vos données à des fins d’entraînement. Réseau de neurones formé donne de bonnes prévisions.
Et on ne peut pas non plus simplement partir sans validation croisée, en raison de la nécessité de détecter le surajustement (ce qui est une autre préoccupation).
Cela peut vous sembler être un problème théorique possible, mais j’ai tendance à dire que l’utilisation actuelle des méthodes de validation croisée rend votre préoccupation non pertinente.
la source