L’apprentissage profond

D’après le théorème d’approximation universelle, une seule couche cachée suffit pour approcher presque n’importe quelle fonction. Pourtant, les réseaux qui ont transformé l’IA à partir de 2012 comptent des dizaines de couches. On les appelle des réseaux profonds, et leur entraînement, l’apprentissage profond (deep learning en anglais). Ce chapitre explique ce qu’on gagne à empiler les couches, et pourquoi cela n’a fonctionné qu’à partir de 2012.

Large ou profond

Le théorème dit qu’une couche suffit. Il ne dit pas combien de neurones elle doit contenir. Pour certains problèmes, ce nombre est si grand que le réseau ne peut être ni stocké ni entraîné.

Il y a deux façons d’agrandir un réseau. On peut l’élargir, en ajoutant des neurones à sa couche cachée. On peut l’approfondir, en ajoutant des couches. Les deux augmentent ce que le réseau peut représenter, mais pas au même coût. Dans un réseau profond, chaque couche part de ce que la précédente a déjà construit, et le réutilise. Un réseau large à une seule couche doit tout construire directement à partir des entrées, sans étape intermédiaire. Pour beaucoup de problèmes, le réseau profond obtient le même résultat avec beaucoup moins de neurones.

Une hiérarchie de caractéristiques

Le chapitre « Une couche cachée » a montré qu’une couche cachée est une fabrique de caractéristiques. Dans un réseau profond, chaque couche fabrique les siennes à partir de celles de la couche précédente. Les caractéristiques deviennent plus complexes de couche en couche.

Prenons les chiffres manuscrits. Une première couche peut détecter de petits traits, à différents endroits et selon différentes orientations. Une deuxième couche combine ces traits en formes : une boucle, un angle, une barre verticale. Une troisième combine ces formes en chiffres. Un 9 est une boucle au-dessus d’une barre, un 8 est fait de deux boucles.

Cette description est simplifiée. Personne n’indique au réseau quoi détecter dans chaque couche. Il le trouve pendant l’entraînement, et les caractéristiques réelles sont souvent moins nettes que dans ce schéma. Mais quand on examine les couches d’un réseau entraîné sur des images, on observe bien cette progression, de motifs simples vers des motifs complexes.

On peut voir ce que cherche un neurone d’un réseau entraîné. On part d’une image de bruit, et on la modifie pas à pas, par rétropropagation, pour activer le plus possible un neurone choisi. L’image obtenue montre ce à quoi ce neurone réagit. Le même procédé sert à fabriquer les exemples adverses, présentés plus loin, au chapitre « Tromper un réseau ». En 2017, Chris Olah, Alexander Mordvintsev et Ludwig Schubert, chez Google, ont appliqué cette méthode à toutes les couches d’un réseau convolutif entraîné sur ImageNet.

La progression décrite plus haut apparaît bien, sans que personne l’ait programmée.

DeepDream

En juin 2015, Alexander Mordvintsev, Christopher Olah et Mike Tyka, ingénieurs chez Google, publient des images produites par un réseau convolutif entraîné sur ImageNet. Ils partent d’une photo ordinaire et la modifient pas à pas, par rétropropagation, pour renforcer ce que le réseau croit y voir. Si une tache rappelle vaguement un œil à une couche du réseau, l’image est modifiée pour ressembler davantage à un œil. On recommence, encore et encore. Comme ImageNet contient beaucoup de photos de chiens, des têtes de chiens, des yeux et des pattes finissent par apparaître partout : dans les nuages, sur les visages, dans les feuillages.

Les chercheurs publient leur programme, et des milliers de personnes l’appliquent à leurs propres photos. Les images circulent dans le monde entier, et beaucoup y voient pour la première fois ce qui se passe à l’intérieur d’un réseau de neurones. Le phénomène rappelle la paréidolie (pareidolia), notre tendance à voir des visages dans les nuages ou les prises électriques. Le réseau fait de même avec ce qu’il a appris à reconnaître, mais en l’exagérant à chaque itération. DeepDream a aussi ouvert la voie à des usages artistiques des réseaux de neurones, qui annoncent l’IA générative du Module 4.

La carte n’est pas le territoire

Cette hiérarchie rappelle celle du cerveau. Dans les années 1960, David Hubel et Torsten Wiesel ont montré que le cortex visuel traite l’image par étapes : certains neurones réagissent à des traits orientés, d’autres, plus loin, à des formes. Les réseaux profonds se sont inspirés de ce résultat.

La ressemblance s’arrête là. Comme l’expliquait « D’où vient le mot « neurone » », un neurone artificiel est une formule. Un neurone biologique émet des impulsions électriques dans le temps, et son comportement dépend de nombreux signaux chimiques. Rien n’indique que le cerveau utilise la rétropropagation. Enfin, un enfant reconnaît un chat après en avoir vu quelques-uns, avec un cerveau qui consomme environ 20 watts, alors qu’un réseau a besoin de milliers d’exemples et de beaucoup plus d’énergie.

Un réseau de neurones est un modèle mathématique inspiré du cerveau. Ce n’est pas une copie du cerveau, et son fonctionnement ne nous apprend que peu de choses sur le nôtre.

La fin des caractéristiques fabriquées à la main

Jusqu’en 2012, un système de reconnaissance d’images se construisait en deux étapes. Des spécialistes concevaient d’abord des caractéristiques : des détecteurs de contours, de coins, de textures. Ces caractéristiques étaient ensuite données à un modèle simple, du type de ceux du Module 2. L’essentiel du travail, et de la performance, tenait à la première étape. Elle demandait des années de mise au point pour chaque type de données.

Un réseau profond supprime cette première étape. Il reçoit les pixels bruts, et il apprend à la fois les caractéristiques et la décision. On parle d’apprentissage de bout en bout (end-to-end en anglais). Le travail humain se déplace : il ne consiste plus à concevoir des caractéristiques, mais à rassembler des données et à choisir la forme du réseau.

Pourquoi seulement en 2012

L’idée d’empiler des couches est ancienne, et la rétropropagation s’applique à un réseau de n’importe quelle profondeur. Trois obstacles ont pourtant bloqué les réseaux profonds pendant plus de vingt ans.

Le gradient qui s’évanouit. Pendant la rétropropagation, l’erreur remonte de couche en couche. Avec la sigmoïde, elle s’affaiblit à chaque couche traversée. Après quelques couches, il n’en reste presque rien, et les premières couches n’apprennent plus. Ce problème s’appelle l’évanouissement du gradient (vanishing gradient). Un des remèdes est de remplacer la sigmoïde par une fonction plus simple, la ReLU : elle donne 0 quand son entrée est négative, et laisse passer l’entrée telle quelle quand elle est positive. Avec elle, l’erreur traverse les couches sans s’affaiblir autant.

Les données. Un réseau profond a des millions de paramètres, et il lui faut des millions d’exemples. Ils n’existaient pas. En 2009, l’équipe de Fei-Fei Li, à Stanford, publie ImageNet : 14 millions d’images, classées à la main dans plus de 20 000 catégories. Ce travail a été réalisé par des dizaines de milliers de personnes, sur la plateforme Mechanical Turk. C’est un exemple de l’industrie de l’étiquetage décrite au Module 2.

Le calcul. Entraîner un réseau profond sur des millions d’images demande une quantité de calculs hors de portée des processeurs des années 2000. La solution est venue du jeu vidéo, avec les processeurs graphiques (graphics processing units, GPU), qui entraînent un réseau des dizaines de fois plus vite qu’un processeur ordinaire. Des bibliothèques logicielles ont ensuite automatisé la rétropropagation. Le chapitre « Le matériel et les outils » raconte ces deux histoires.

Un premier contournement, en 2006. Avant que ces trois obstacles soient levés, Hinton propose un détour. Au lieu d’entraîner toutes les couches d’un coup, on les entraîne une à une, sans étiquettes : chaque couche apprend à résumer ce que lui transmet la précédente, un peu comme un autoencodeur. Une fois toutes les couches en place, la rétropropagation ajuste l’ensemble. Ce préentraînement couche par couche (greedy layer-wise pre-training), publié par Hinton et ses collègues en 2006 et repris aussitôt par l’équipe de Bengio, montre qu’on peut enfin entraîner des réseaux à plusieurs couches cachées, et qu’ils font mieux que les réseaux peu profonds sur plusieurs tâches. C’est à cette époque que le nom deep learning s’impose. Quelques années plus tard, avec la ReLU, de grandes bases de données et les GPU, le détour devient inutile : AlexNet s’en passe. Mais il avait ramené l’attention sur les réseaux profonds.

2012 : le concours ImageNet

À partir de 2010, ImageNet sert de base à un concours annuel. Il faut classer des images parmi 1 000 catégories, après un entraînement sur 1,2 million d’exemples. Une réponse est comptée comme une erreur si la bonne catégorie ne figure pas parmi les cinq propositions du système.

En 2010 et 2011, les meilleurs systèmes reposent sur des caractéristiques fabriquées à la main (hand-crafted features), et leur taux d’erreur est de 28 %, puis de 26 %. En 2012, Alex Krizhevsky, Ilya Sutskever et Geoffrey Hinton, de l’Université de Toronto, présentent un réseau profond, AlexNet. Il compte huit couches et 60 millions de paramètres, il utilise la ReLU, et il a été entraîné pendant environ une semaine sur deux GPU.

Avec 60 millions de paramètres pour 1,2 million d’images, le risque de sur-apprentissage (overfitting) est grand. AlexNet le limite par une forme de régularisation, au sens du Module 2 : le réseau reste riche, mais on l’empêche de trop coller à ses données d’entraînement. Il utilise une méthode toute récente, publiée par l’équipe de Hinton la même année, le dropout. À chaque étape de l’entraînement, une partie des neurones, tirés au hasard, est mise hors service. Le réseau ne peut donc pas compter sur un neurone en particulier, et il apprend des caractéristiques plus robustes, un peu comme une équipe où chacun doit pouvoir remplacer un absent. Les images d’entraînement sont aussi recadrées et retournées au hasard, ce qui en multiplie les variantes.

Le taux d’erreur d’AlexNet est de 15 %. Le deuxième système est à 26 %.

L’écart est si grand que le domaine change de méthode en deux ans. Dès 2014, tous les systèmes en compétition sont des réseaux profonds. En 2015, le réseau gagnant compte 152 couches et son taux d’erreur, 3,6 %, est inférieur à celui d’un humain sur la même tâche, estimé à 5 %. La même bascule se produit quelques années plus tard pour la traduction. Pour la reconnaissance de la parole, elle avait même commencé un peu plus tôt. Entre 2009 et 2012, des étudiants de Hinton, avec des équipes de Microsoft, de Google et d’IBM, remplacent une partie des systèmes de reconnaissance vocale par des réseaux profonds, préentraînés couche par couche. En 2012, la recherche vocale des téléphones Android en profite. C’est le premier grand succès industriel de l’apprentissage profond. ImageNet a pourtant davantage frappé les esprits, parce que l’écart y était spectaculaire et mesuré lors d’un concours public.

AlexNet est un réseau d’un type particulier, un réseau convolutif (convolutional neural network, CNN), conçu pour les images. Le chapitre « Voir : les réseaux convolutifs » lui est consacré.

Une école canadienne

AlexNet est sorti du laboratoire de Geoffrey Hinton, à l’Université de Toronto. Ce n’est pas un hasard. Pendant les années 1990 et 2000, les réseaux de neurones intéressaient peu, et les organismes qui finançaient la recherche s’en détournaient. En 2004, l’Institut canadien de recherches avancées (CIFAR) lance un programme intitulé « Calcul neuronal et perception adaptative » (Neural Computation and Adaptive Perception), dirigé par Hinton. Le programme réunit un petit groupe de chercheurs convaincus, dont Yoshua Bengio, à l’Université de Montréal, et Yann Le Cun, à l’Université de New York. Ils continuent à travailler sur les réseaux profonds quand presque personne d’autre ne le fait.

Le pari réussit en 2012. Hinton, Bengio et Le Cun reçoivent ensemble le prix Turing 2018. En 2024, Hinton reçoit le prix Nobel de physique avec l’Américain John Hopfield, « pour des découvertes et des inventions fondamentales qui permettent l’apprentissage automatique avec des réseaux de neurones artificiels ». Le comité récompense deux réseaux des années 1980 qui empruntent leurs outils à la physique statistique : le réseau de Hopfield (1982), une mémoire qui retrouve une image complète à partir d’un fragment, et la machine de Boltzmann de Hinton, qui tire son nom du physicien Ludwig Boltzmann. Le choix a surpris, et plusieurs physiciens se sont demandé si l’on récompensait encore de la physique. Hinton, qui avait quitté Google en 2023 pour parler librement des risques de l’IA, a profité de la tribune pour les rappeler. Le Module 5 revient sur ces risques. Le laboratoire fondé par Bengio en 1993 devient en 2017 Mila, l’Institut québécois d’intelligence artificielle, l’un des plus grands centres de recherche universitaire en apprentissage profond au monde. La même année, le gouvernement du Canada confie au CIFAR la Stratégie pancanadienne en matière d’intelligence artificielle, l’une des premières stratégies nationales consacrées à l’IA. Elle s’appuie sur trois instituts : Mila à Montréal, l’Institut Vecteur à Toronto et l’Amii à Edmonton, où travaille Richard Sutton, l’auteur de la leçon amère.

La leçon amère

La fin du Module 2 a présenté l’essai de Richard Sutton, « The Bitter Lesson » (2019). Sa thèse est la suivante. Dans l’histoire de l’IA, les chercheurs ont d’abord tenté d’inscrire leur propre savoir dans les systèmes. Cela aidait à court terme. À long terme, ces systèmes ont été dépassés par des méthodes générales, qui n’utilisent aucun savoir particulier, mais qui tirent parti de la puissance de calcul disponible.

Le concours de 2012 en est l’exemple le plus net. Les caractéristiques d’images mises au point par des experts pendant vingt ans ont été dépassées par un réseau qui apprend les siennes. Le Module 1 en donnait un autre exemple, avec Deep Blue : la recherche à grande échelle l’avait emporté sur les programmes qui tentaient d’imiter le raisonnement des grands maîtres.

Sutton qualifie cette leçon d’amère parce qu’elle va contre l’intuition des chercheurs : le savoir qu’ils inscrivent dans un système finit par le limiter. Elle a aussi un coût. Un réseau profond ne donne pas ses raisons, alors qu’on pouvait lire les règles d’un système expert ou les questions d’un arbre de décision (decision tree). Et ses progrès dépendent de quantités de données et de calcul que peu d’organisations possèdent.

La leçon ne dit pas que le savoir humain est inutile. Il reste présent, mais ailleurs : dans le choix des données, et dans la forme donnée au réseau. Les chapitres sur les réseaux convolutifs, les réseaux récurrents et l’attention en donnent des exemples.

Plus de paramètres que d’exemples

AlexNet a 60 millions de paramètres, pour 1,2 million d’images d’entraînement. D’après « Généraliser », un modèle aussi souple devrait apprendre ses exemples par cœur et échouer sur des images nouvelles. C’est le sur-apprentissage (overfitting). Or les réseaux profonds généralisent bien. C’est la question que le Module 2 avait laissée ouverte.

Une partie de la réponse tient à la régularisation, décrite dans « Entraîner un réseau ». Mais elle ne suffit pas à expliquer le phénomène. Quand on fait grossir un réseau, on observe d’abord la courbe en U du Module 2 : l’erreur sur les exemples nouveaux baisse, puis remonte. Si l’on continue au-delà du point où le réseau peut mémoriser tous ses exemples, l’erreur redescend, parfois plus bas qu’avant. Ce phénomène s’appelle la double descente (double descent).

Le phénomène est bien établi, mais son explication n’est pas complète. L’hypothèse la plus courante est la suivante. Un très grand réseau dispose de nombreuses façons de reproduire ses exemples, et la descente de gradient aboutit le plus souvent à l’une des plus simples. C’est un cas où la pratique a précédé la théorie.

Un phénomène voisin a été observé en 2022 par une équipe d’OpenAI, cette fois au fil de l’entraînement plutôt qu’en fonction de la taille. Sur de petites tâches d’arithmétique, un réseau apprend d’abord ses exemples par cœur : il ne fait plus aucune erreur sur eux, mais répond au hasard sur les nouveaux. Si l’on poursuit l’entraînement bien au-delà, parfois des milliers d’étapes plus tard, il se met soudain à généraliser presque parfaitement. Les chercheurs ont appelé ce phénomène grokking, d’après un mot inventé par l’écrivain Robert Heinlein, qui signifie « comprendre en profondeur ». Le chapitre « Regarder à l’intérieur » du Module 4 montre ce qui se passe dans le réseau pendant ce long plateau.

Apprendre sans étiquettes : l’autoencodeur

Tous les réseaux vus jusqu’ici sont entraînés avec des exemples étiquetés (labeled examples). Un réseau peut aussi apprendre des caractéristiques sans étiquettes. L’autoencodeur (autoencoder) en est l’exemple le plus simple.

Un autoencodeur est un réseau en forme de sablier. On lui donne une image en entrée, et on lui demande de produire la même image en sortie. L’erreur est l’écart entre les deux. La tâche serait sans intérêt si le réseau pouvait simplement recopier son entrée, mais la couche du milieu est très étroite. Les 784 pixels d’un chiffre doivent passer par quelques dizaines de neurones seulement.

  • La première moitié, l’encodeur, réduit l’image à quelques nombres.
  • La seconde moitié, le décodeur, reconstruit l’image à partir de ces nombres.

L’autoencodeur est un premier exemple d’assemblage : deux réseaux, l’un qui comprime et l’autre qui reconstruit, branchés l’un à la suite de l’autre et entraînés ensemble, comme les pièces du jeu de construction présenté au chapitre suivant.

Pour réussir, le réseau doit garder l’essentiel de l’image dans la couche étroite : quel chiffre, quelle inclinaison, quelle épaisseur de trait. Ces quelques nombres forment une représentation compacte de l’image, qu’on appelle sa représentation latente (latent representation). C’est un cas d’auto-supervision (self-supervised learning), présentée au Module 2 : les données fournissent elles-mêmes la réponse attendue.

L’ensemble des valeurs que peuvent prendre ces quelques nombres forme l’espace latent (latent space) du réseau. C’est un espace compressé : quelques dizaines de dimensions au lieu de 784, où ne reste que ce qui distingue une image d’une autre. Deux images semblables y occupent des points voisins, et l’on peut s’y déplacer d’un chiffre à l’autre par petites étapes. Beaucoup de chercheurs y voient l’endroit où un réseau travaille vraiment : il n’y manipule plus des pixels, mais des propriétés abstraites, comme la forme ou l’inclinaison d’un chiffre. Certains, comme Yann Le Cun, pensent même qu’une intelligence artificielle devrait raisonner et faire ses prévisions dans un tel espace, plutôt que sur les données brutes. Le Module 4 permet d’explorer l’espace latent d’un réseau entraîné sur des chiffres manuscrits.

Le décodeur a une autre utilité. Si on lui donne des nombres qui ne viennent d’aucune image réelle, il produit quand même une image. C’est une première façon de générer du contenu, sur laquelle le Module 4 reviendra.

Un réseau profond peut donc apprendre ses propres caractéristiques, à condition d’avoir assez de données et de calcul. Le chapitre suivant, « Le matériel et les outils », raconte comment ce calcul est devenu possible.