Les modèles de machine learning mémorisent-ils ou généralisent-ils ?
(pair.withgoogle.com)- Le grokking, observé dans de petits modèles, est un phénomène où un modèle mémorise d’abord les données d’entraînement, puis, après un apprentissage bien plus long, se met soudain à prédire correctement des entrées jamais vues ; il fournit des indices pour distinguer mémorisation et généralisation
- Dans une expérience d’addition modulaire, un MLP à une couche affiche d’abord des poids très bruités, puis forme une structure périodique au moment où la précision de test augmente, ce qui lui permet de généraliser
- Dans une expérience sur des séquences de 30 chiffres 0/1, le modèle généralisé réduit les poids associés aux positions finales parasites et se concentre sur les 3 premiers chiffres, révélant la différence entre une solution par mémorisation et une solution généralisée
- La pression clé de la transition vient de la minimisation de la perte et de la décroissance des poids (weight decay) ; même si la perte de test semble chuter brutalement, les poids internes se déplacent de manière relativement fluide entre les deux solutions
- Le grokking n’apparaît que lorsque des hyperparamètres comme la taille du modèle, la taille des données et la décroissance des poids sont bien réglés ; savoir si l’on peut l’interpréter de la même manière dans de grands modèles reste une question ouverte
La question posée par le grokking
- En 2021, des chercheurs ont découvert que, sur une tâche jouet, de petits modèles ne parvenaient pas à prédire correctement les données de test pendant un certain temps après avoir appris les données d’entraînement, puis finissaient soudainement par généraliser après un apprentissage plus long
- Ce phénomène est appelé grokking et désigne une dynamique d’apprentissage dans laquelle la généralisation apparaît longtemps après l’ajustement aux données d’entraînement
- Les grands modèles de langage peuvent donner l’impression de comprendre le monde, mais ils peuvent aussi mémoriser et restituer des fragments de l’énorme corpus de textes d’entraînement
- Partir de petits modèles permet de construire plus facilement une intuition sur des techniques d’interprétation qui sont difficiles à appliquer directement aux plus grands modèles actuels
- L’approche consiste à observer le processus d’apprentissage de petits modèles et à rétroconcevoir la solution trouvée par le modèle, afin de montrer un exemple d’interprétabilité mécaniste
La structure périodique dans l’addition modulaire
- L’addition modulaire est utilisée comme petite tâche où le grokking est facile à observer
- Le problème consiste à prédire
a + bavec une opération modulaire, étant donnés deux nombres d’entréea,bet un module - L’expérience d’exemple utilise les nombres de 0 à 66 ; 67 a été choisi pour que la visualisation ne soit ni trop simple ni trop complexe
- Le problème consiste à prédire
- Le modèle expérimental est un MLP à une couche avec 24 neurones
- Toutes les paires
a, bsont divisées aléatoirement entre données d’entraînement et données de test - Les données d’entraînement servent à ajuster les poids du modèle, tandis que les données de test ne servent qu’à vérifier si le modèle a appris une solution générale
- Toutes les paires
- Le modèle sélectionne les colonnes d’embedding correspondant aux entrées
a,b, les additionne, remplace les valeurs négatives par 0, puis utilise la colonne la plus proche de la matrice de sortie comme prédiction - Au début de l’entraînement, les poids sont très bruités, mais lorsque la précision de test augmente et que le modèle généralise, des motifs périodiques apparaissent
- À la fin de l’entraînement, chaque neurone alterne plusieurs fois entre valeurs élevées et faibles tandis que le nombre d’entrée augmente de 0 à 66
- Le motif devient plus net lorsque les neurones sont regroupés selon leur fréquence périodique finale
- Cette périodicité suggère que le modèle apprend une certaine structure mathématique, et elle coïncide avec le moment où il commence à résoudre les exemples de test
Mémorisation et généralisation vues avec une tâche 0 et 1
- Une expérience plus simple consiste à prédire si le nombre de 1 dans les 3 premiers chiffres d’une séquence 0/1 de longueur 30 est impair
- Par exemple, une séquence commençant par
000...peut donner 0, tandis qu’une séquence commençant par010...peut donner 1 - Il s’agit essentiellement d’un problème XOR légèrement plus difficile, les positions suivantes étant du bruit parasite
- Par exemple, une séquence commençant par
- Un modèle qui généralise doit n’utiliser que les 3 premiers chiffres
- Un modèle qui mémorise les données d’entraînement utilise aussi les positions parasites situées après
- Cette expérience utilise elle aussi un MLP à une couche, entraîné sur 1 200 séquences fixes
- Au début, seule la précision d’entraînement augmente, tandis que la précision de test reste proche du hasard
- Ensuite, la précision de test grimpe fortement et le modèle apprend une solution générale
- Le modèle en phase de mémorisation présente une forme dense et bruitée, avec des poids de grande magnitude répartis sur de nombreuses entrées
- Une fois la généralisation terminée, les poids connectés aux positions parasites deviennent très faibles et le modèle se concentre sur les 3 premières entrées
Comment la décroissance des poids favorise la solution généralisée
- Pendant l’apprentissage, le modèle subit simultanément deux pressions
- Il doit réduire la perte (loss) afin d’attribuer une forte probabilité aux bons labels
- Il subit l’effet de la décroissance des poids, qui maintient la magnitude des poids à un niveau faible
- Dans la tâche 0/1, la perte d’entraînement augmente légèrement juste avant que le modèle ne généralise
- Cela s’explique par le fait qu’il abandonne une partie de la perte qui augmentait la probabilité des bonnes réponses pour se déplacer vers une solution aux poids plus faibles
- La chute brutale de la perte de test donne l’impression que le modèle bascule soudainement vers la généralisation
- Mais si l’on observe les poids pendant l’entraînement, la plupart interpolent de manière fluide entre la solution par mémorisation et la solution généralisée
- La généralisation rapide se produit lorsque les derniers poids connectés aux positions parasites sont éliminés par la décroissance des poids
Les conditions d’apparition du grokking
- Le grokking n’est pas un phénomène systématique, mais un phénomène dépendant des conditions, comme la taille du modèle, la décroissance des poids et la taille des données
- Si la décroissance des poids est trop faible, le modèle ne sort pas du surapprentissage des données d’entraînement
- En augmentant la décroissance, le modèle mémorise puis généralise
- En l’augmentant davantage, la perte de test et la perte d’entraînement baissent ensemble, et le modèle généralise directement
- Avec une décroissance trop forte, le modèle n’apprend rien
- Dans la tâche 0/1, plus de 1 000 modèles ont été entraînés avec différents hyperparamètres, et 9 modèles ont été entraînés pour chaque combinaison d’hyperparamètres afin de tenir compte du bruit d’entraînement
Une solution d’addition modulaire avec cinq neurones
- L’addition modulaire est un problème périodique : lorsque la somme dépasse 67, elle revient au début
- En plaçant les nombres d’entrée comme des points sur un cercle, il est possible d’intégrer directement cette périodicité dans la structure du modèle
- Pour chaque nombre d’entrée possible, on calcule des valeurs
sinetcosafin de construire la matrice d’embedding
- Pour chaque nombre d’entrée possible, on calcule des valeurs
- Dans un MLP à une couche avec ce point de départ, il suffit d’entraîner certaines matrices pour trouver une solution parfaitement exacte avec seulement 5 neurones
- En observant les paramètres entraînés, les neurones convergent vers des magnitudes presque identiques et, lorsque l’on trace les composantes
sinetcos, ils se répartissent presque uniformément sur un cercle - En reliant les neurones adjacents, on observe côté
unembeddingun motif qui tourne autour du cercle deux fois plus vite que côté embedding - Cette construction fournit une solution à 20 paramètres pour résoudre l’addition modulaire
Le même algorithme dans un grand MLP à une couche
- Le modèle initial à 3 216 paramètres est entraîné depuis le début et démarre sans périodicité intégrée
- Contrairement à la petite solution construite, ce modèle utilise plusieurs fréquences
- La transformée de Fourier discrète (DFT) permet de séparer les motifs périodiques appris sur l’ensemble des entrées
- Pour chaque neurone, on obtient les valeurs
sinetcosdes fréquences périodiques possibles de 1 à 33 - Les neurones peuvent être regroupés selon la fréquence qui possède les plus grandes valeurs
sinetcos
- Pour chaque neurone, on obtient les valeurs
- À mesure que le modèle généralise, la décroissance des poids rend cette représentation plus parcimonieuse
- En regroupant les neurones par fréquence finale et en traçant les composantes DFT, on voit apparaître la forme en étoile observée dans la configuration à cinq neurones
- Le modèle entraîné utilise le même algorithme que la solution construite
- En examinant la contribution en sortie de chaque groupe de neurones par fréquence, on voit apparaître une forme d’onde correspondant au calcul de
a + b mod 67 - Lorsque la perte de test s’améliore après une courte stagnation autour de 45 000 étapes, le groupe de neurones de fréquence 7 s’aligne en forme d’étoile et la sortie se rapproche davantage d’une forme d’onde
- En examinant la contribution en sortie de chaque groupe de neurones par fréquence, on voit apparaître une forme d’onde correspondant au calcul de
- Le modèle utilise plusieurs fréquences pour réduire la perte sans recourir à des poids plus grands, en exploitant l’interférence constructive
- Les fréquences 4, 5, 7 et 26 n’ont rien de spécial en elles-mêmes ; d’autres exécutions d’entraînement apprennent des variantes de cet algorithme
Questions encore ouvertes
- Entraîner directement un modèle de la forme
W = W_L W_Rne suffit pas à faire apparaître la généralisation en arithmétique modulaire, même en ajoutant de la décroissance des poids- Au moins une matrice doit être factorisée (factoring)
- Après la DFT, la solution généralisée est parcimonieuse, mais la matrice combinée a une grande norme
- Appliquer directement la décroissance des poids à
WetUne fournit pas le biais inductif adapté à cette tâche
- La décroissance des poids peut éloigner divers modèles de la mémorisation des données d’entraînement
- Parmi les autres techniques pour éviter le surapprentissage figurent le dropout, les modèles plus petits et les algorithmes d’optimisation numériquement instables
- Ces approches interagissent de manière complexe et non linéaire, ce qui rend difficile de prédire à l’avance quel réglage induira la généralisation
- Une théorie expliquant pourquoi la mémorisation précède la généralisation est qu’il peut exister beaucoup plus de façons de mémoriser l’ensemble d’entraînement que de solutions généralisées
- En l’absence de régularisation, ou avec une régularisation faible, la mémorisation a statistiquement plus de chances de se produire en premier
- Les techniques de régularisation comme la décroissance des poids favorisent certaines solutions, par exemple les solutions parcimonieuses plutôt que les solutions denses
- Des représentations bien structurées peuvent être liées à la généralisation, mais elles ne sont ni une condition nécessaire ni une condition suffisante
- Certaines variantes de MLP sans entrées symétriques apprennent des représentations moins circulaires lorsqu’elles résolvent l’addition modulaire
- De petits modèles entraînés sans décroissance des poids peuvent commencer à généraliser, puis revenir à la mémorisation tout en conservant des embeddings périodiques
- Avec certains hyperparamètres, il est aussi possible d’observer une transition généralisation → mémorisation → généralisation
Vers l’interprétabilité des modèles plus grands
- Le grokking a été observé sur des tâches algorithmiques dans de petits Transformers et MLP, puis dans des tâches plus complexes sur des images, du texte et des données tabulaires, au sein de certaines plages d’hyperparamètres
- Les plus grands modèles capables d’accomplir plusieurs types de tâches pourraient être en train de grokker plusieurs choses à des vitesses différentes pendant l’entraînement
- Certains travaux cherchent à prédire les résultats avant que le grokking ne se produise réellement
- Certaines méthodes nécessitent de connaître la solution généralisée ou l’ensemble du domaine de données
- D’autres n’utilisent que l’analyse de la perte d’entraînement et pourraient s’appliquer à des modèles plus grands
- Une voie possible consiste à utiliser de manière répétée des modèles plus simples
- Entraîner des modèles simples dotés de biais inductifs plus forts et de moins de pièces mobiles
- Utiliser ces modèles pour expliquer les parties difficiles à interpréter des grands modèles
- Répéter ce processus si nécessaire
- Cette approche d’interprétabilité mécaniste peut aider à identifier ou automatiser les motifs permettant de découvrir les algorithmes appris par les réseaux de neurones
1 commentaires
Avis de Hacker News
Si la mémoire humaine est étonnante, c’est sans doute parce qu’elle ne dispose pas d’une capacité de stockage comparable à celle des machines, mais qu’elle sait stocker l’information en la réduisant fortement grâce à une capacité de compression de motifs.
Elle regroupe ensuite ces motifs avec d’autres motifs pour les compresser à nouveau et en extraire quelque chose ; c’est une compression avec pertes massive, mais elle atteint son objectif.
Le cerveau ressemble plutôt à un système qui distille activement, en éléments essentiels, les connaissances qu’il n’a pas besoin de mémoriser littéralement, afin d’éviter le surapprentissage et d’obtenir une « intuition et une compréhension généralisées ».
Référence : https://www.scientificamerican.com/article/new-estimate-boosts-the-human-brain-s-memory-capacity-10-fold/
https://youtu.be/hpTCZ-hO6iI
La limite supérieure est techniquement « infinie », mais il existe un compromis entre le nombre de concepts stockés et la quantité fondamentale d’information stockable par concept, similaire à d’autres principes de compromis comme le principe d’incertitude.
Je ne sais pas si le cerveau des animaux fonctionne de la même façon, mais je soupçonne qu’il s’agit surtout d’un algorithme de compression destiné à la prédiction, et qu’il ne stocke pas beaucoup les données elles-mêmes.
La géométrie est excellente pour ce type d’entraînement, et elle est aussi souvent utile dans les démonstrations en physique.
Le point central semble être que la décroissance des poids induit de la parcimonie et aide à apprendre des représentations « réelles » plutôt que des représentations surapprises.
Dans le cerveau humain aussi, un mécanisme qui paraît similaire, l’élagage synaptique, apparaît largement au cours du développement. J’aimerais entendre un spécialiste du domaine dire si cela a inspiré la décroissance des poids ou, plus directement, l’élagage des réseaux neuronaux.
Si la décroissance des poids fonctionne, c’est parce que, lorsqu’elle est appliquée comme régularisation, elle rapproche le réseau de la longueur minimale de description (MDL) et réduit ainsi le regret pendant l’apprentissage. Il y a un certain rapport avec l’élagage dans le cerveau, mais le cerveau semble utiliser fondamentalement la parcimonie pour induire des représentations, et non pour compresser ; il s’agit donc en pratique d’un motif différent. Il faut penser aux biais implicites des différentes représentations et à leurs effets ultérieurs sur les représentations apprises ou apprenables.
Mais le meilleur remède au surapprentissage reste d’agrandir le jeu de données et d’assurer la diversité des données. Les LLM sont généralement entraînés sur une seule époque, car leurs jeux de données sont immenses.
La régularisation L1 produit beaucoup plus de parcimonie, mais ses performances sont d’autant moins bonnes.
Dans l’IA, on est en train de massacrer le mot grok.
À l’origine, il signifie à peu près « comprendre complètement, entièrement » ; employer le même mot pour parler de généralisation revient à ne pas grok le grokking.
Ce phénomène a aussi été discuté dans les commentaires d’un billet qui proposait de l’appeler « récupération finale après surapprentissage » : https://www.lesswrong.com/posts/GpSzShaaf8po4rcmA/qapr-5-grokking-is-maybe-not-that-big-a-deal
Ses connotations vont de « boire profondément », littéralement ou métaphoriquement, jusqu’à consommer le corps absent d’un être aimé. Je recommande vivement Stranger in A Strange Land, et il vaut mieux choisir la réédition intégrale parue vers 1990.
Cela paraît assez pertinent, car le terme évoque une compréhension intuitive et une augmentation soudaine et importante de la compréhension, ce qui ressemble aussi au changement qui se produit dans la perte.
Je ne sais plus si je me souviens bien, mais dans l’interview de Raphaël Millière sur Mindscape, il me semble qu’il disait que, lorsque les modèles de machine learning ont beaucoup de dimensions, la distinction entre interpolation et extrapolation n’est pas aussi nette que dans les domaines où nous raisonnons habituellement.
Je ne sais pas si c’est proche de ce dont parle cet article.
Je me demande comment ces graphiques ont été réalisés
J’imagine qu’ils ont été générés à moitié avec une bibliothèque, puis peaufinés à la main, mais le SVG animé produit est magnifique
Il y a aussi quelques petites bibliothèques pour les annotations, le mélange de SVG et de canvas, ou pour rendre d3 moins verbeux
https://github.com/PAIR-code/ai-explorables/tree/master/source/grokking
https://1wheel.github.io/swoopy-drag/
https://github.com/gka/d3-jetpack
https://roadtolarissa.com/hot-reload/
Si les détails de ce sujet vous intéressent, mieux vaut lire l’article sur ordinateur. Il contient des données de visualisation qu’on ne peut pas explorer sur mobile
D’abord, c’est un bon billet de blog, avec beaucoup d’excellents exemples, qui rappelle l’ancien distill.pub
Comme l’article le dit à juste titre, l’utilisation habituelle d’une décroissance L2 des poids produit beaucoup de poids de petite amplitude. Je me demande si, lorsqu’on veut un modèle qui généralise mieux, il ne vaudrait pas toujours mieux utiliser une décroissance L1 des poids pour favoriser la parcimonie et entraîner plus longtemps. Je me demande aussi si des modèles de deep learning n’utilisant que des caractéristiques de Fourier parcimonieuses, plutôt que des couches linéaires denses, fonctionneraient mieux
Réponse longue : les modèles de deep learning cherchent généralement à trouver la meilleure base non linéaire pour représenter l’entrée. Si l’on sait à l’avance que l’entrée peut être bien représentée — c’est-à-dire de façon parcimonieuse — dans une certaine base, il est généralement utile de la projeter dans cette base, comme lorsqu’on applique une FFT à un signal RF. Cela dit, la base globalement optimale peut être différente de la base de n’importe quel minimum local, donc il faut une astuce pour pousser le réseau dans cette direction
Je me demande à quel point la fonction cible est représentative
Il est courant de vouloir que le modèle apprenne les parties importantes de l’entrée, mais le fait de ne s’intéresser qu’aux trois premiers bits d’une chaîne de bits paraît assez artificiel. Je ne sais pas si une table de vérité avec 8 paramètres pertinents a été apprise à partir de 4,8 millions d’échantillons, ou si j’ai mal compris quelque chose
La raison d’utiliser une tâche simple est de pouvoir interpréter ce qui se passe en interne quand ce phénomène se produit
Il n’y avait ni flux d’auto-découverte RSS/Atom dans le HTML, ni lien vers un flux RSS, mais en devinant les noms et emplacements possibles des flux, j’ai réussi à trouver le flux RSS « Explorables » : https://pair.withgoogle.com/explorables/rss.xml
Ça ressemble à des cellules de grille
https://en.wikipedia.org/wiki/Grid_cell
Si l’on traçait la heatmap des neurones de la couche cachée sur un graphique 2D avec $a$ sur un axe et $b$ sur l’autre, je pense qu’on obtiendrait une grille triangulaire. Si ça fonctionne comme je l’imagine, en regardant un autre neurone caché, on verrait une autre grille avec une orientation et une échelle différentes. En les assemblant, on pourrait même construire un additionneur en base 67. Et j’ai aussi du mal à me défaire de l’intuition que la relation entre les neurones W_in-proj et celle entre les neurones W_out-proj ressemble à la correspondance entre le cercle des demi-tons et le cycle des quintes
https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Pitch_class_space_star.svg/220px-Pitch_class_space_star.svg.png