Yann LeCun

L'apprentissage auto-supervisé et les modèles basés sur l'énergie

16 octobre 2019

Intelligence Artificielle
Illustration de Yann LeCun

Introduction et limites de l'apprentissage supervisé

Yann LeCun

Cela montre que la seule chose que j'aie jamais faite dans ma vie est de réinventer des choses. C'est vrai pour la plupart d'entre nous. La plupart des idées sont dans l'air ; il faut faire prendre le tout. C'est comme quand on fait une mayonnaise. Je suis français, donc quand on fait une mayonnaise, on a les ingrédients, mais il faut la faire prendre.

Yann LeCun

Quoi qu'il en soit, le modèle basé sur l'énergie. C'est ce que je préconise depuis de nombreuses années maintenant, et c'est revenu au premier plan de mes intérêts en raison de la nécessité de réduire la quantité de supervision dans l'apprentissage automatique et de traiter l'incertitude dans la prédiction de manières différentes de ce que les gens font habituellement, à savoir la modélisation probabiliste, car c'est impraticable dans certains cas.

Yann LeCun

Nous savons tous que le succès de l'apprentissage profond est principalement dû à l'apprentissage supervisé. Quelques succès ont été dus à l'apprentissage par renforcement, bien que la plupart d'entre eux ne soient pas pratiques pour des applications réelles, à quelques exceptions près. Le problème de l'apprentissage supervisé est qu'il est très limité parce qu'il faut collecter des données, cela coûte cher, il faut les étiqueter, et la quantité d'informations de retour que vous fournissez à la machine est spécifique à une tâche. Nous n'allons donc pas parvenir à une intelligence générale de niveau humain. Je ne crois pas au concept d'intelligence générale ; l'intelligence humaine est très spécialisée. Mais si vous voulez atteindre le même niveau de généralité que l'intelligence humaine, vous n'y parviendrez pas avec l'apprentissage supervisé ou avec l'apprentissage multi-tâches. Il faudra quelque chose de plus global. Encore une fois, je n'invente pas cela ; je le réinvente à partir de Geoff Hinton et de diverses autres personnes.

Les limites de l'apprentissage par renforcement

Yann LeCun

C'est encore pire dans le contexte de l'apprentissage par renforcement car la quantité de retour que vous donnez à la machine est très faible. C'est juste un scalaire de temps en temps quand la machine réussit ou échoue. Par conséquent, le nombre d'interactions qu'un système d'apprentissage par renforcement doit effectuer dans une application réelle a tendance à être énorme. Pour qu'une machine apprenne à jouer à un jeu Atari, les meilleurs algorithmes actuels en RL doivent jouer l'équivalent d'environ 83 heures de jeu en temps réel. Ce serait l'équivalent de 83 heures d'entraînement pour atteindre le niveau de performance qu'un humain peut atteindre en environ 15 minutes.

Yann LeCun

De même, pour qu'une machine joue au Go, pour OpenGo chez Facebook, il a fallu environ 20 millions de parties en auto-apprentissage, ce qui prend environ deux semaines sur 2 000 GPU. C'est beaucoup de parties par rapport à toutes les parties jouées par l'humanité depuis le début de l'histoire. Le système StarCraft de DeepMind, AlphaStar, a mis l'équivalent de 200 ans de jeu en temps réel pour apprendre à jouer à un niveau surhumain sur une seule carte. OpenAI a révélé un système de manipulation de Rubik's Cube où le système apprend à manipuler un Rubik's Cube d'une seule main. La solution est un algorithme classique, mais la manipulation est intéressante. Il a fallu l'équivalent de 10 000 ans de simulation pour y parvenir. Comment se fait-il que les humains puissent apprendre à conduire une voiture en environ 20 heures d'entraînement ?

Yann LeCun

Si vous utilisiez l'apprentissage par renforcement pour entraîner une voiture à se conduire seule, elle devrait s'écraser des milliers de fois avant de comprendre comment ne pas le faire. C'est beaucoup plus complexe que de manipuler des Rubik's Cubes. Comment les humains et les animaux apprennent-ils ? C'est vraiment ce que je recherche. Pour passer au niveau supérieur de l'apprentissage automatique, nous devons comprendre comment les humains et les animaux peuvent apprendre si vite. Certains prétendent que c'est parce qu'il y a tellement de câblage rigide dans notre cerveau que nous ne partons pas de zéro, et une partie de cela est vraie, mais je pense qu'il y a autre chose.

L'apprentissage par observation chez les bébés et les animaux

Yann LeCun

Ceci est une diapositive d'Emmanuel Dupoux, un chercheur en sciences cognitives qui travaille chez Facebook. Les bébés apprennent beaucoup sur le monde au cours des premières semaines et des premiers mois de leur vie. Cela semble être appris de manière non dépendante d'une tâche, essentiellement en observant comment le monde fonctionne. Il y a des germes qui poussent les bébés à apprendre certaines choses, mais cela semble être principalement indépendant des tâches et sans interaction, juste par l'observation.

Yann LeCun

Si vous montrez un scénario où une voiture est poussée hors d'une plateforme et ne tombe pas à un bébé de moins de six ou sept mois, il n'est pas surpris. Il regarde cela et voit une autre chose qu'il doit apprendre. Si vous montrez cela à un bébé de plus de neuf mois, il est surpris. Vers huit ou neuf mois, ils ont appris le concept de gravité et qu'un objet non soutenu est censé tomber. Quand quelque chose viole leur modèle du monde, ils sont surpris.

Yann LeCun

Emmanuel a élaboré ce graphique indiquant quand les bébés apprennent ces concepts. Cela semble être spontané par observation. Comment amener les machines à apprendre qu'il y a de la gravité, à apprendre la physique intuitive, à apprendre la différence entre les objets animés et inanimés, et à apprendre la permanence de l'objet ? Ces concepts majeurs sur le monde sont à la base du bon sens. Nous n'aurons pas de machines dotées de bon sens à moins que nous ne parvenions à ce que les machines apprennent de cette façon, comme les animaux et les bébés.

Yann LeCun

J'ai dit les animaux parce qu'il ne s'agit pas seulement de bébés. J'adore cette vidéo d'un bébé orang-outan à qui l'on montre un tour de magie. Un objet est mis dans une tasse puis retiré, mais il ne le voit pas. Ensuite, la tasse est vide et il se roule par terre de rire. C'est un exemple de votre modèle du monde qui est violé et que vous trouvez drôle parce que ce n'est pas une situation dangereuse.

Construction de modèles du monde et représentations

Yann LeCun

Nous construisons ces modèles tout le temps. Par exemple, pour apprendre que le monde est tridimensionnel, nous entraînons notre cerveau à prédire à quoi le monde va ressembler lorsque nous bougeons la tête ou passons de la vue de l'œil gauche à celle de l'œil droit. Si nous essayons de prédire la vue de notre œil droit à partir de la vue de notre œil gauche, ou de prédire à quoi le monde va ressembler lorsque nous bougeons la tête, la meilleure explication est le fait que chaque objet a une profondeur, ce qui explique le mouvement de parallaxe.

Yann LeCun

Il est possible d'imaginer que si nous nous entraînons à prédire comment le monde change au fur et à mesure que la caméra bouge, un système apprendera à représenter la profondeur comme un effet secondaire. Une fois que vous avez la profondeur, vous avez des objets. Une fois que vous avez des objets, vous pouvez faire la différence entre les objets animés et inanimés. Les objets inanimés sont ceux dont les trajectoires sont prévisibles. C'est peut-être le processus par lequel nous construisons une hiérarchie de représentations et de concepts abstraits uniquement par l'observation.

L'apprentissage auto-supervisé : Le gâteau de l'intelligence

Yann LeCun

La prochaine révolution de l'IA ne sera pas supervisée ou renforcée. Je pense que nous devrions faire quelque chose que j'appelle l'apprentissage auto-supervisé. C'est l'idée que vous utilisez l'entrée comme supervision. Vous montrez à une machine une donnée, faites en sorte que la machine prétende qu'elle ne connaît pas une partie de la donnée, et elle essaie de reconstruire cette partie à partir de la partie qu'elle connaît.

Yann LeCun

Il existe deux situations différentes, caractérisées comme conditionnelles et inconditionnelles. Par exemple, s'il s'agit d'une séquence vidéo, le système observe le passé et le présent et essaie de prédire l'avenir. Il pourrait aussi essayer de prédire le haut d'une image à partir du bas. Le système ne sait pas à l'avance quelle partie il va devoir prédire, il n'y a donc pas de distinction claire entre la variable d'observation et celle que vous devez prédire. C'est l'idée de remplir les blancs dans l'apprentissage auto-supervisé.

Yann LeCun

Pourquoi cela présenterait-il un avantage par rapport à l'apprentissage par renforcement ou supervisé ? Le retour que vous donnez à la machine a un contenu informationnel beaucoup plus élevé par échantillon. Dans l'apprentissage auto-supervisé, si vous entraînez un système à faire de la prédiction vidéo, vous lui donnez une séquence entière d'images et lui demandez de prédire ceci. C'est une quantité énorme d'informations. Vous pouvez rendre la machine vraiment grande, il n'y a pas de limite à la quantité de données que vous pouvez obtenir, et la quantité d'informations que vous fournissez par échantillon est énorme. On peut s'attendre à ce que la machine en apprenne davantage sur la structure du monde.

Yann LeCun

Cela a conduit à une analogie : si l'intelligence est un gâteau, l'essentiel du gâteau doit être l'apprentissage auto-supervisé. C'est là que nous apprenons la majeure partie de ce que nous apprenons en tant qu'humains. L'apprentissage supervisé joue un rôle minime et l'apprentissage par renforcement un rôle minuscule. Nous sommes dans la même situation que les cosmologistes qui vous disent que 95 % de la masse de l'univers est de la matière noire. Nous savons comment faire le glaçage et la cerise sur le gâteau, mais we ne savons pas comment faire le gâteau lui-même.

Succès en NLP et défis en Vision par ordinateur

Yann LeCun

Il y a des indices que cette approche est bonne, comme le système BERT et ses successeurs. Cet article a été mis sur arXiv il y a environ un an. Entre le moment où il a été mis sur arXiv et celui où il a été présenté à l'ICLR, il avait reçu 650 citations. C'est un exemple d'apprentissage auto-supervisé appelé auto-encodeur débruiteur, bien qu'il ne soit pas présenté de cette façon dans l'article original.

Yann LeCun

Comme expliqué, vous prenez une fenêtre de mots sur un texte, vous supprimez 15 % des mots, et vous entraînez un réseau transformeur à reconstruire les mots manquants. Ensuite, vous utilisez la représentation extraite par ce système comme entrée pour une tâche supervisée ultérieure. Vous battez tous les records avec des systèmes de ce type sur tous les benchmarks.

Yann LeCun

Il existe des outils comme Word2Vec ; cela a commencé avec l'article de Collobert-Weston où ils apprenaient des plongements de mots en utilisant l'apprentissage supervisé multi-tâches. Word2Vec est un autre exemple d'apprentissage auto-supervisé où l'on prend les mots voisins pour prédire un mot particulier. FastText est un autre exemple qui travaille au niveau de l'unité de sous-mot, suivi par BERT et d'autres.

Yann LeCun

Cela fonctionne bien pour le texte. Le texte est discret, et il est relativement facile de représenter l'incertitude sur la prédiction d'un mot en ayant un softmax géant sur l'ensemble des mots de votre dictionnaire. Vous pouvez faire une prédiction approximative en produisant un vecteur de probabilité ; il y a une variable latente implicite qui est le mot qui est réellement apparu.

Yann LeCun

Les gens ont essayé de faire cela dans le contexte de la vision pour apprendre des caractéristiques pour la reconnaissance d'images ou le traitement vidéo. Le résultat est que cela ne fonctionne pas. Par exemple, on bloque une partie d'une image et on entraîne un réseau convolutionnel à reconstruire les parties manquantes. Lorsque vous utilisez les caractéristiques apprises par ce système comme entrées pour la reconnaissance d'images, vous obtenez de mauvaises performances. Dans l'ensemble, cela a été largement un échec.

Gérer l'incertitude dans les espaces continus

Yann LeCun

La manière de gérer l'incertitude dans cette prédiction n'est pas évidente. Par exemple, si nous voulons faire de la prédiction vidéo avec une pile de cubes, vous demandez au système de prédire où les cubes vont se trouver. Vous obtenez des prédictions floues parce que le système ne peut pas prédire exactement où ces cubes vont tomber, il prédit donc la moyenne de tous les résultats possibles. Cela fonctionne raisonnablement bien, mais il n'y a pas une énorme dose d'incertitude.

Yann LeCun

Le problème le plus important que nous devons résoudre est de savoir comment faire des prédictions dans un espace continu de grande dimension en présence d'incertitude. Si je laisse tomber un stylo, il tombera dans une orientation différente à chaque fois. Si je demande à un système de faire une prédiction déterministe unique, le mieux qu'il puisse faire est de prédire la moyenne de tous les résultats possibles pour minimiser les moindres carrés. Il va prédire une image transparente du stylo superposée dans toutes les directions.

Yann LeCun

De même, si vous entraînez un réseau convolutionnel à prendre quelques images d'une vidéo et à prédire les images suivantes, vous obtenez des prédictions floues. Le système ne peut pas prédire exactement ce qui va se passer parce qu'il n'a pas assez de connaissances de haut niveau, et le monde est stochastique.

Yann LeCun

La solution consiste à construire une fonction de prédiction G. Elle prend un contexte et prédit les prochaines images, et il existe un ensemble de prédictions correctes. Si cette fonction est déterministe, vous avez besoin d'une variable latente que vous pouvez faire varier sur un ensemble ; la sortie varie alors sur la variété des futurs plausibles. Je ne vois aucune autre idée.

Yann LeCun

Une mesure de probabilité est une variable latente implicite. Le problème est que maintenant votre variable latente se trouve dans le même espace que Y. Dans un espace discret, cela n'a pas d'importance. Dans un espace continu de grande dimension, si votre variable latente a la même dimension que votre sortie, cela ne fonctionne pas ; c'est inutile. Vous devez avoir une variable latente abstraite de haut niveau. C'est la différence entre la raison pour laquelle BERT fonctionne et la raison pour laquelle l'apprentissage auto-supervisé en vidéo ne fonctionne pas.

Modèles basés sur l'énergie (EBM) et variétés

Yann LeCun

Je pense que le bon cadre pour cela est de rejeter le cadre probabiliste parce qu'il est erroné dans ce cas. Imaginez que la variété des données soit une plaque mince dans un espace de plus grande dimension. Si vous regardez une vidéo de moi et que je bouge la tête, la variété de toutes les photos de ma tête est une variété de faible dimension limitée par le nombre de muscles de ma tête. C'est moins de 100.

Yann LeCun

Le problème avec une plaque mince est que toute fonction de vraisemblance serait équivalente à une fonction delta de Dirac. La fonction de vraisemblance doit être infinie sur la variété et nulle à l'extérieur, ce qui signifie que le réseau de neurones devrait avoir des poids infinis. C'est également inutile car, pour l'inférence, vous voulez une fonction lisse qui vous indique dans quelle direction se trouve la variété. Le maximum de vraisemblance ne convient pas pour cela.

Yann LeCun

Cela remplace des siècles de modélisation probabiliste. Dans le cas auto-supervisé, j'ai deux variables, Y1 et Y2, dont je veux modéliser la dépendance. Une bonne façon de modéliser cela est de passer par une fonction d'énergie, une fonction de contraste qui prend des valeurs faibles sur les données et des valeurs élevées à l'extérieur. Je n'insiste pas pour que cette fonction soit le logarithme d'une distribution de probabilité ; ce ne serait pas une fonction utile pour cela. On veut une fonction où le gradient indique la direction vers la variété pour permettre une inférence basée sur le gradient.

Yann LeCun

Notre problème d'apprentissage consiste à trouver une fonction objective pour façonner cette fonction d'énergie. L'énergie est optimisée pendant l'inférence, tandis qu'une fonction objective façonne la fonction d'énergie pendant l'entraînement. Vous aimeriez que l'algorithme d'apprentissage maintienne l'énergie des points de données aussi basse que possible et augmente l'énergie de tout le reste.

Yann LeCun

Vous pouvez le faire de différentes manières. Une méthode, dérivée de la modélisation probabiliste, consiste à augmenter l'énergie de chaque point en dehors de votre variété et à diminuer l'énergie des points sur la variété. Mais il existe des alternatives.

Yann LeCun

Dans un modèle basé sur l'énergie, une variable entre dans une fonction d'énergie qui produit un scalaire et indique la compatibilité entre les variables. Par exemple, une fonction d'énergie entraînée avec un jeu de données sur une spirale affiche des niveaux bas en noir et des niveaux élevés en blanc. On peut faire de l'inférence facilement : pour trouver le meilleur Y pour un X donné, on effectue une minimisation qui peut produire plusieurs solutions.

Yann LeCun

Nous allons paramétrer cette fonction d'énergie. Je dois introduire un type de fonction d'énergie dérivé d'une fonction d'énergie élémentaire qui possède des variables latentes. Cette fonction d'énergie dépend de la variable observée et d'une variable latente. L'inférence utilise le minimum sur Z de E(Y, Z). C'est ce que les modélisateurs probabilistes appellent l'inférence MAP.

Yann LeCun

Si vous êtes intéressé par l'inférence bayésienne, vous pouvez marginaliser cette variable latente en calculant la fonction de partition logarithmique. Il s'agit d'une énergie libre de Helmholtz, qui marginalise la variable Z et donne une énergie libre pour un Y donné. Je m'en tiendrai là et laisserai le reste aux bayésiens.

Architecture de prédiction et problème de l'effondrement

Yann LeCun

Voici une architecture d'un modèle à variables latentes pour la prédiction. Vous faites passer les images passées par un réseau convolutionnel pour produire une représentation du contenu. Il y a une variable latente qui représente ce que vous ne savez pas sur la prédiction. Vous mesurez un coût de reconstruction du futur de la vidéo ; c'est votre énergie. Votre énergie est l'erreur de prédiction entre la valeur que vous observez et la prédiction.

Yann LeCun

Vous aimeriez que Z contienne les informations qui ne sont pas prévisibles à partir du passé. Si je bouge la tête, vous savez que l'image sera moi devant le même arrière-plan, mais vous n'en connaissez pas l'orientation. Vous voulez que la représentation contienne des informations sur la pièce et ma tête, et que Z ne contienne que les informations que vous ne pouvez pas prédire, comme si je tourne à gauche ou à droite.

Yann LeCun

Si Z has suffisamment de capacité, il y aura toujours un Z qui reconstruira n'importe quel Y que vous montrez, même si c'est n'importe quoi. C'est le problème de l'effondrement, qui indique que votre fonction d'énergie est plate. Le système ne fait pas de différence entre un Y plausible et un Y non plausible. Comment gérer cela ?

Yann LeCun

Les auto-encodeurs peuvent tricher parce qu'ils regardent la valeur qu'ils sont censés prédire. Si un auto-encodeur apprend la fonction d'identité, l'erreur de reconstruction est nulle partout, ce qui n'est pas utile. Comment empêcher ce système de produire une fonction d'énergie plate ?

Yann LeCun

La première chose que vous pouvez faire est de rendre Z de faible dimension. Si vous rendez l'encodeur et le décodeur linéaires, vous obtenez l'ACP. La fonction d'énergie pour l'ACP est le carré de la distance entre le point de données et sa reconstruction. Si vous entraînez l'ACP sur une spirale, vous obtenez une fonction d'énergie où le sous-espace d'énergie nulle est un sous-espace linéaire et l'énergie croît quadratiquement en s'en éloignant.

Yann LeCun

K-means est un modèle à variables latentes avec une fonction d'énergie qui est la distance quadratique minimale entre le point de données et la variable latente multipliée par une matrice prototype. On contraint la variable latente à être un vecteur discret 'one-hot'. Cette fonction d'énergie finit par être le minimum de cuvettes quadratiques qui se placent autour des données.

Méthodes d'entraînement et régularisation

Yann LeCun

La modélisation probabiliste dit que cette fonction d'énergie est le logarithme d'une distribution de probabilité calculée via une formule de Gibbs. Si vous voulez faire du maximum de vraisemblance, vous minimisez la log-vraisemblance négative. Cela a pour effet d'abaisser l'énergie du point de données et d'augmenter celle de tous les autres points. Le problème est que c'est généralement insoluble.

Yann LeCun

Il existe des centaines d'articles sur la façon d'éviter de faire cela en utilisant des méthodes de Monte Carlo ou des approximations variationnelles. Vous devez calculer le gradient de cette perte, mais vous ne pouvez pas le calculer pour une fonction d'énergie utile dans un espace continu de grande dimension.

Yann LeCun

Cela a conduit à sept façons de s'assurer que l'énergie est élevée en dehors des points de données. On peut construire une machine de sorte que le volume de ce qui est à basse énergie soit limité. On peut abaisser l'énergie des points de données et l'augmenter partout ailleurs, ce que nous dit le maximum de vraisemblance. On peut augmenter l'énergie à des endroits choisis, comme dans la divergence contrastive ou les GAN, où l'on entraîne un réseau de neurones à produire des échantillons contrastifs dont on augmente l'énergie.

Yann LeCun

Je suis plus intéressé par l'utilisation d'un régularisateur sur la variable latente qui limite le volume d'espace pouvant prendre une énergie basse. Les modèles existants incluent le codage parcimonieux, les auto-encodeurs parcimonieux et les auto-encodeurs débruiteurs. Les modèles basés sur l'énergie à variables latentes régularisées sont la clé.

Yann LeCun

La différence est que vous fournissez la variable latente à un régularisateur, ce qui vous fait payer pour le fait que la variable latente sort d'un ensemble particulier. Un exemple familier est le codage parcimonieux. La fonction d'énergie est quadratique, le décodeur est linéaire et le régularisateur est la norme L1 de Z. Ce régularisateur enveloppe étroitement la région de haute densité.

Yann LeCun

La modélisation parcimonieuse est ennuyeuse car vous devez exécuter un algorithme d'optimisation pour trouver Z. Une astuce consiste à entraîner un réseau de neurones à prédire ce que ce Z parcimonieux devrait être ; c'est ce qu'on appelle un auto-encodeur parcimonieux. Une version plus sophistiquée garde Z comme variable latente à optimiser, mais la différence entre Z et la prédiction de l'encodeur est un autre terme de votre fonction d'énergie.

Yann LeCun

Si vous entraînez un système comme celui-ci sur MNIST en utilisant un décodeur linéaire et un encodeur simple, les colonnes de la matrice du décodeur sont de petits traits. N'importe quel chiffre MNIST peut être reconstruit comme une somme pondérée d'un petit nombre de ces parties. Si vous vous entraînez sur des patchs d'images naturelles, vous obtenez des détecteurs de bords orientés.

Yann LeCun

Il existe une version convolutionnelle de ceci qui produit des filtres, mais elle n'améliore les performances que lors du pré-entraînement d'un réseau convolutionnel pour des jeux de données avec une petite quantité de données étiquetées. Pour ImageNet, cela ne va pas aider.

Modèles prospectifs et planification

Yann LeCun

Les humains pourraient s'entraîner en prédisant ce qu'ils n'observent pas actuellement. Prédire l'avenir est une forme intéressante de prédiction, soit naturellement, soit comme conséquence d'actions. Si vous pouvez modéliser les conséquences de vos actions, vous pouvez utiliser cela pour planifier à l'avance.

Yann LeCun

En contrôle optimal, on appelle cela la commande prédictive. Vous avez un modèle du système que vous voulez contrôler et vous l'exécutez avec une hypothèse pour une séquence d'actions. Vous déterminez la meilleure séquence d'actions pour optimiser un objectif. Un système intelligent posséderait l'un de ces simulateurs du monde.

Yann LeCun

Voici un exemple pour la conduite de voitures. Vous avez un modèle prospectif de l'environnement qui décrit comment les voitures autour de vous se déplacent. Vous avez une variable latente que vous pouvez échantillonner et qui produit plusieurs prédictions futures. Vous avez une action, comme tourner le volant ou appuyer sur les pédales. Vous pouvez faire tourner ce modèle vers l'avant et utiliser la rétropropagation pour entraîner un réseau de politique à conduire tout en minimisant les collisions.

Yann LeCun

La meilleure façon d'entraîner cela est d'utiliser un auto-encodeur conditionnel régularisé. C'est le genre de prédiction que vous obtenez : des prédictions floues sans variable latente et des prédictions plus claires avec une variable latente. Vous mettez cela dans un système de commande prédictive, vous entraînez la politique, et vous obtenez une voiture qui peut se conduire seule sans heurter les autres. Bien qu'elle soit invisible pour les autres voitures et qu'elle se fasse serrer, elle parvient à éviter les collisions.