Module 3 — Réseaux de neurones et apprentissage profond
Le retour d’une idée ancienne
Le Module 1 a présenté deux paris sur la nature de l’intelligence, nés presque en même temps dans les années 1950. Le pari symbolique voit l’esprit comme de la logique, des symboles et des règles. Le pari connexionniste le voit comme un cerveau, un réseau qui s’ajuste à l’expérience. Le perceptron de Rosenblatt, en 1958, en était la première machine.
Ce second pari a connu une longue éclipse. En 1969, Minsky et Papert montrent qu’un perceptron ne peut pas apprendre une fonction aussi simple que le XOR, et la recherche sur les réseaux de neurones s’arrête presque. Elle reprend au début des années 1980, et surtout en 1986, avec une méthode pour entraîner des réseaux dotés d’une couche cachée, la rétropropagation. Mais pendant les vingt-cinq années suivantes, les progrès de l’apprentissage automatique viennent surtout d’autres méthodes : les machines à vecteurs de support (SVM) à partir du milieu des années 1990, le boosting, les forêts aléatoires au début des années 2000, et les modèles probabilistes comme le classifieur bayésien du Module 2. Ces méthodes s’appuient sur une théorie solide, s’entraînent de façon fiable et donnent d’excellents résultats. Les réseaux de neurones paraissent alors difficiles à régler et peu fiables, et beaucoup de chercheurs s’en détournent.
La situation change en 2012, quand un réseau profond dépasse de loin toutes les autres méthodes de reconnaissance d’images. En quelques années, les réseaux de neurones deviennent la méthode dominante pour les images, la parole et le texte. Ils sont aujourd’hui au cœur de la reconnaissance d’images et de la parole, de la traduction automatique, et des grands modèles de langage comme ChatGPT. Les autres méthodes n’ont pas disparu pour autant, et la différence tient à la nature des données. Dans une image, un son ou un texte, un élément isolé ne veut presque rien dire : un pixel n’est qu’un point de couleur, et le sens naît de l’agencement de milliers d’éléments voisins. Dans un tableau, comme les dossiers d’une banque ou d’un hôpital, chaque colonne a déjà un sens, comme l’âge, le revenu ou la pression artérielle. On peut d’ailleurs mélanger l’ordre des colonnes d’un tableau sans rien perdre, alors que mélanger les pixels d’une photo la détruit. Sur les premières données, les réseaux de neurones l’emportent. Sur les secondes, les forêts aléatoires et le gradient boosting restent souvent les plus efficaces.
Ce module raconte ce retour, et explique comment ces réseaux fonctionnent.
Une seule grande idée : apprendre ses propres caractéristiques
Au Module 2, un modèle recevait des données décrites par des caractéristiques (features), c’est-à-dire des grandeurs mesurables qui décrivent chaque exemple : la superficie d’une maison, son année de construction, la présence d’un mot dans un courriel. C’est un humain qui choisissait ces caractéristiques, et le modèle ne voyait les données qu’à travers elles. Quand un problème résistait, comme le XOR, c’était encore à l’humain d’inventer une nouvelle caractéristique, le produit des deux entrées, qui rendait le problème facile.
Cette nouvelle caractéristique est une combinaison de deux autres. C’est une idée importante : une caractéristique peut être construite à partir d’autres caractéristiques, elles-mêmes construites à partir d’autres, sur plusieurs étages. Pour une image de chiffre, les caractéristiques de départ sont les pixels, qui ne disent presque rien isolément. En combinant des pixels voisins, on obtient de petits traits. En combinant des traits, on obtient des courbes et des coins. En combinant des courbes, on obtient une boucle fermée ou une barre verticale. C’est en combinant ces formes qu’on reconnaît un 8 ou un 9. Concevoir à la main tous ces étages, pour toutes les façons d’écrire chaque chiffre, est presque impossible.
Un réseau de neurones fabrique lui-même ses caractéristiques. Chacune de ses couches combine les caractéristiques de la couche précédente pour en former de nouvelles, plus utiles. Un réseau qui reconnaît des chiffres manuscrits reçoit seulement des pixels. Il apprend seul à y repérer des traits, puis des formes, puis des chiffres. Personne ne lui indique quoi chercher.
Pour le reste, rien ne change. Un réseau s’entraîne avec le même schéma qu’au Module 2 : des données, un modèle réglable, une erreur à réduire, et la descente de gradient pour la réduire. La différence est l’échelle. Une droite avait deux paramètres. Un réseau en a des milliers, des millions, et parfois des centaines de milliards.
Un fil conducteur : les chiffres manuscrits
Un même exemple revient tout au long du module : reconnaître un chiffre écrit à la main, sur une image de 28 pixels sur 28. On le retrouve dans le premier neurone, dans le réseau à une couche cachée, dans les réseaux convolutifs de Yann Le Cun, qui lisaient les chèques dans les années 1990, et dans les exemples adverses qui trompent un réseau.
Ce que ce module n’est pas
Trois précisions évitent des malentendus fréquents.
- Un réseau de neurones n’est pas un cerveau. Il s’en inspire, mais un neurone artificiel est une formule simple. Le module y revient deux fois, dans les pages Un neurone et L’apprentissage profond.
- Les réseaux de ce module reconnaissent et prédisent. Ils associent une réponse à une entrée : quel chiffre, quel mot traduit, quel coup jouer. La génération de textes et d’images est le sujet du Module 4, qui s’appuie sur les architectures présentées ici, en particulier le Transformer.
- Aucune formule n’est nécessaire. Les mécanismes sont expliqués par des figures et des applets. Les calculs, pour qui veut les voir, sont dans des blocs dépliables « Pour aller plus loin ».
Des variations sur un même thème
Les réseaux de ce module portent des noms différents : perceptron multicouche, réseau convolutif, réseau récurrent, Transformer. Ils reposent pourtant tous sur les mêmes pièces. Ce sont des neurones qui calculent des sommes pondérées, des fonctions d’activation et des poids ajustés par une même méthode, la rétropropagation. D’un réseau à l’autre, seule change la façon de relier ces pièces, c’est-à-dire l’architecture. Un réseau convolutif réutilise le même petit filtre partout dans l’image. Un réseau récurrent réutilise la même couche à chaque mot. Un Transformer laisse chaque mot consulter tous les autres.
Ces pièces s’assemblent comme celles d’un jeu de construction. On peut les empiler, les combiner, ou brancher un réseau à la suite d’un autre, et l’ensemble s’entraîne toujours de la même façon. C’est l’une des grandes forces des réseaux de neurones. C’est aussi ce qui explique qu’une seule famille de méthodes se soit imposée pour les images, les sons, les textes et les jeux.
Le parcours du module
Comme au Module 2, chaque page rencontre une limite qui mène à la suivante.
- Un neurone : le retour du perceptron. Un neurone est une régression logistique, et il ne trace qu’une droite.
- Une couche cachée : quelques neurones reliés résolvent le XOR, en fabriquant eux-mêmes la bonne caractéristique.
- Entraîner un réseau : la rétropropagation, et la question de 1969 réglée en 1986.
- L’apprentissage profond : pourquoi empiler les couches, et pourquoi cela n’a fonctionné qu’à partir de 2012.
- Le matériel et les outils : l’histoire des processeurs graphiques et de la différentiation automatique.
- Voir : les réseaux convolutifs : le filtre qui glisse sur l’image, Yann Le Cun et les chèques, l’apprentissage par transfert.
- Lire une séquence : les réseaux récurrents : un réseau avec une mémoire, le LSTM, la traduction.
- L’attention et le Transformer : regarder toute la séquence à la fois, l’architecture des grands modèles actuels.
- Apprendre à jouer : le renforcement profond : Atari, AlphaGo, AlphaZero.
- Tromper un réseau : les exemples adverses, et la boîte noire.
Le module compte huit applets, dont un neurone à régler, un réseau qui apprend le XOR sous vos yeux, un filtre de convolution, une machine qui apprend le morpion en jouant contre elle-même, et un classifieur à tromper.
Pour situer ce module dans l’ensemble du cours : les réseaux de neurones sont une famille de méthodes d’apprentissage automatique, devenue la plus importante depuis 2012, et sur laquelle reposent l’IA générative et les grands modèles de langage du Module 4.
Objectifs
Au terme de ce module, vous devriez être en mesure de :
- expliquer ce qu’est un neurone artificiel, et pourquoi un neurone seul ne trace qu’une frontière droite ;
- expliquer comment une couche cachée permet de résoudre le XOR, en fabriquant de nouvelles caractéristiques ;
- décrire le principe de la rétropropagation, et le distinguer de l’inférence ;
- expliquer ce qu’apporte la profondeur, et les trois conditions du succès de 2012 : les données, le calcul et de meilleures méthodes d’entraînement ;
- décrire l’idée principale des réseaux convolutifs, des réseaux récurrents et du Transformer, et le type de données auquel chacun est adapté ;
- expliquer comment on réutilise un réseau déjà entraîné pour une nouvelle tâche (apprentissage par transfert) ;
- expliquer comment le renforcement profond combine la recherche du Module 1 et l’apprentissage ;
- expliquer ce qu’est un exemple adverse, et pourquoi un réseau profond est une boîte noire ;
- situer ces développements dans l’histoire du connexionnisme, de 1958 à aujourd’hui.
Durée
Trois semaines, travail noté compris, soit environ 27 heures.
Évaluation
Un travail noté (20 % de la note finale) où vous manipulerez des réseaux de neurones dans une application interactive, TensorFlow Playground, avec des questions d’interprétation.