Réponse courte
Dans un article paru dans la revue Neural Computation en juillet 2006, Geoffrey Hinton, Simon Osindero et Yee-Whye Teh ont montré une façon rapide d’entraîner des réseaux de neurones à plusieurs couches : les construire une couche à la fois, en laissant chaque couche apprendre les régularités de la sortie de la couche du dessous, puis faire l’ajustement fin de toute la pile. Leur « réseau de croyances profond » reconnaissait les chiffres manuscrits mieux que les principales méthodes du moment et a convaincu de nombreux chercheurs que les réseaux profonds pouvaient finalement être entraînés.
Question de suivi Les systèmes d’apprentissage profond d’aujourd’hui utilisent-ils encore des réseaux de croyances profonds?
Au début des années 2000, les réseaux de neurones avaient un problème de réputation. L’idée d’empiler de nombreuses couches de neurones artificiels, chacune trouvant des régularités plus abstraites que la précédente, existait depuis des décennies. En pratique, les réseaux de plus d’une ou deux couches cachées étaient lents et frustrants à entraîner, et beaucoup de chercheurs étaient passés à d’autres méthodes, comme les machines à vecteurs de support, qui donnaient des résultats fiables avec moins de complications.
En juillet 2006, un court article intitulé « A fast learning algorithm for deep belief nets » a changé l’ambiance. Ses auteurs étaient Geoffrey Hinton et Simon Osindero, de l’Université de Toronto, et Yee-Whye Teh, de l’Université nationale de Singapour. Il a paru dans Neural Computation, volume 18, numéro 7, et proposait une recette pratique pour entraîner un réseau profond par étapes.
Le problème que l’article a résolu
Un réseau de neurones apprend en ajustant la force des connexions entre ses unités, qu’on appelle souvent des poids. Avec une seule couche cachée, la méthode standard, la rétropropagation, fonctionne bien : elle mesure l’erreur du réseau à la sortie et renvoie des corrections vers l’arrière à travers les couches. Avec de nombreuses couches, ces corrections ont tendance à devenir faibles ou erratiques avant d’atteindre le bas, et l’entraînement peut s’éterniser ou s’arrêter sur de mauvaises solutions.
L’équipe de Hinton a pris une autre voie. Au lieu d’entraîner toutes les couches ensemble à partir de poids de départ aléatoires, elle a entraîné une couche à la fois, sans étiquettes, et n’a fait qu’ensuite l’ajustement fin du réseau entier.
Comment un réseau de croyances profond est construit
L’élément de base est une machine de Boltzmann restreinte (RBM). Elle compte deux rangées d’unités : une rangée visible qui reçoit les données, comme les pixels d’une image, et une rangée cachée qui apprend à décrire ces données. Chaque unité visible est reliée à chaque unité cachée, mais les unités d’une même rangée ne sont pas reliées entre elles. C’est cette restriction qui rend la machine rapide à entraîner.
Une RBM apprend en essayant de reconstruire son entrée. Elle regarde une image, active des unités cachées pour la décrire, puis utilise ces unités cachées pour redessiner l’image. Chaque fois que le dessin diffère de l’original, elle ajuste légèrement ses poids pour que la tentative suivante soit plus proche. Au fil de nombreuses images, les unités cachées deviennent des détecteurs de caractéristiques courantes, comme les traits et les courbes de l’écriture manuscrite.
L’astuce consiste à les empiler. Voici la recette de l’article, en étapes :
- Entraîner une RBM sur des images brutes en pixels. Ses unités cachées apprennent des caractéristiques simples.
- Figer ces poids. Faire passer chaque image et enregistrer ce que font les unités cachées.
- Entraîner une deuxième RBM en traitant ces activités enregistrées comme si c’étaient les données.
- Répéter pour autant de couches qu’on le souhaite. Chacune apprend les régularités de la couche du dessous.
- Enfin, faire l’ajustement fin de toute la pile ensemble avec une procédure plus lente que les auteurs appellent l’algorithme « up-down » (montant-descendant).
Les auteurs montrent que l’ajout de chaque nouvelle couche de cette façon améliore une borne mathématique sur la qualité avec laquelle le modèle entier décrit les données. Autrement dit, l’approche gloutonne n’est pas qu’un bricolage; elle repose sur une base solide.
Le terme « réseau de croyances » (belief net) désigne un type de modèle probabiliste dans lequel les connexions expriment la probabilité que certaines unités soient actives, selon l’état des autres. Comme le modèle est génératif, c’est-à-dire qu’il peut produire de nouveaux exemples aussi bien que les reconnaître, les auteurs pouvaient le faire fonctionner à l’envers et afficher des images de ce que le réseau « avait en tête » pour chaque chiffre.
Le test d’écriture manuscrite
Pour montrer que la méthode fonctionnait, l’équipe a utilisé MNIST, une collection standard de chiffres manuscrits : 60 000 exemples pour l’apprentissage et 10 000 autres, distincts, pour le test, chacun de 28 pixels sur 28. Leur réseau avait deux couches de 500 unités, une couche supérieure de 2 000 unités et 10 unités supplémentaires représentant les étiquettes des chiffres de 0 à 9.
Voici comment il se comparait aux autres méthodes dans la version de la tâche où l’algorithme ne reçoit aucune connaissance intégrée du fait que les entrées sont des images :
| Méthode | Erreur de test |
|---|---|
| Réseau de croyances profond (cet article) | 1,25 % |
| Machine à vecteurs de support | 1,4 % |
| Rétropropagation, deux couches cachées (500 et 300 unités) | 1,51 % |
| Rétropropagation, une couche cachée de 800 unités | 1,53 % |
| Plus proche voisin, les 60 000 exemples | 2,8 % à 3,1 % |
Les méthodes conçues expressément pour les images, ou dotées d’exemples d’entraînement déformés supplémentaires, faisaient mieux encore. Mais à armes égales, un réseau profond entraîné de cette façon battait les meilleures solutions de rechange. Le préentraînement de chaque couche prenait quelques heures dans Matlab sur un seul processeur de 3 GHz, et l’entraînement complet a duré environ une semaine.
À essayer : prenez une feuille de papier et écrivez le chiffre 4 de cinq façons différentes. Dressez la liste des traits simples qu’ils ont en commun (une ligne verticale, une barre transversale, un angle). Puis notez ce qui distingue un 4 d’un 9. Vous venez de faire à la main ce que la première et la deuxième couche d’un réseau de croyances profond apprennent à faire automatiquement.
Pourquoi l’article comptait
Le résultat lui-même tenait à une fraction de point de pourcentage sur un test de chiffres. Son importance tenait à ce qu’il prouvait : les réseaux profonds n’étaient pas une cause perdue. Wikipédia décrit cette astuce d’entraînement couche par couche comme l’origine de l’une des premières méthodes d’apprentissage profond qui fonctionnaient vraiment bien.
L’article a aussi montré la valeur de l’apprentissage sans étiquettes. La majeure partie du travail se fait avant même qu’on dise au réseau quel chiffre est lequel. C’est important, parce que les données non étiquetées, comme des images ou du texte, sont beaucoup plus abondantes que les données soigneusement étiquetées.
Les années qui ont suivi ont apporté une vague de recherches sur les réseaux profonds, la diffusion de l’expression « apprentissage profond » et, à partir de 2012, une série de victoires en reconnaissance d’images et de la parole. En cette fin de 2020, l’apprentissage profond est derrière la plupart des nouvelles en IA : des modèles de langage comme GPT-3, et le système AlphaFold de DeepMind, dont les prédictions de structures de protéines ont impressionné les biologistes lors de l’évaluation CASP14 cette semaine.
Les systèmes d’apprentissage profond d’aujourd’hui utilisent-ils encore des réseaux de croyances profonds?
Pour la plupart, non. Les chercheurs ont vite découvert qu’avec plus de données, des processeurs graphiques plus rapides et quelques changements simples dans la façon dont les neurones artificiels réagissent, des réseaux très profonds pouvaient être entraînés directement par rétropropagation, sans le préentraînement couche par couche. Les grands systèmes modernes sont habituellement entraînés de cette façon.
Les idées, elles, survivent. Préentraîner sur des données non étiquetées, puis faire un ajustement fin pour une tâche précise, c’est exactement ainsi que fonctionnent aujourd’hui de nombreux modèles de langage : GPT-3, par exemple, apprend d’abord à partir d’une énorme quantité de texte et peut ensuite être adapté à des tâches particulières. L’idée que chaque couche construit des caractéristiques plus abstraites par-dessus celle du dessous reste la façon standard d’expliquer ce que fait un réseau profond.
Les réseaux de croyances profonds sont donc moins un outil d’usage courant qu’un tournant. Ils ont montré que la profondeur pouvait fonctionner, et ce regain de confiance a ramené vers les réseaux de neurones des gens, du financement et de la puissance de calcul.
Sources
- A fast learning algorithm for deep belief nets — Neural Computation 18(7):1527-1554 (2006), Geoffrey E. Hinton, Simon Osindero, Yee-Whye Teh, doi:10.1162/neco.2006.18.7.1527
- Deep belief network — Wikipedia, 19 octobre 2020