Les réseaux de neurones sont-ils sujets à un oubli catastrophique?

38

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?)1/TT

Zooby
la source
Je parle d'apprentissage supervisé où l'utilisateur dit à NN que le lion est dangereux.
Zooby
Cela arrive un peu aux gens aussi. Il est vraiment effrayant de constater à quel point il est facile de "désapprendre" le fait que quelque chose est dangereux après l'avoir fait plusieurs fois sans conséquence, ce qui est à peu près égal au scénario que vous avez décrit avec l'IA.
Tomáš Zato - Réintégrer Monica
2
Marqué comme trop large. Cela dépend beaucoup trop des techniques de reconnaissance utilisées par le réseau. Évidemment, dans certains cas, le réseau "oublie" mais dans d’autres, il ne le fera pas. Il devrait être extrêmement clair que toute réponse à cette question devrait commencer et se terminer par "Cela dépend".
8protons
3
Pour être juste, c'est l'une de ces offres de type "choisissez votre poison". Un NN qui privilégie les expériences récentes par rapport aux expériences historiques a tendance à ignorer le passé, mais il est capable de réagir aux développements récents. Par exemple, supposons que tous les lions se transforment soudain en meurtrier du jour au lendemain, alors votre NN qui privilégie les expériences récentes sera beaucoup plus rapide dans la détection de la nouvelle menace, par opposition au NN plus lent qui dit fondamentalement que concluez que rien de nouveau ne se passe "jusqu'à ce que les lions soient
devenus
1
De plus, AGI aurait une pondération d'erreur pertinente - les deux erreurs ne sont pas également mauvaises en termes de résultats.
MSalters le

Réponses:

39

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.

nbro
la source
1
Merci! Je vais lire le document que vous suggérez.
Zooby
7
La corruption infâme du chatbot "Tay" de Microsoft est-elle un exemple d’oubli catastrophique?
Non U
4
@TKK Je pense que ce serait une bonne nouvelle question sur le site!
Nbro
2
@TKK Allez-vous le demander ? Si non, quelqu'un d'autre pourrait-il le faire? Je veux vraiment connaître la réponse.
wizzwizz4
3
Je suis à peu près sûr que la phrase "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" a été écrite par un réseau neuronal.
Moyli
16

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:

for e in epochs:
    shuffle dataset
    for x_batch, y_batch in dataset:
        train neural_network on x_batxh, y_batch

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).

Djib2011
la source
4

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.

pygosceles
la source
1

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.

Stéphane Rolland
la source