Histoire de l’IA

Qu’est-ce qu’un réseau de neurones, et que sont ses poids?

· Par Robert Scales · 5 min de lecture

Réponse courte

Un réseau de neurones est un grand ensemble d’unités de calcul simples, vaguement inspirées des cellules du cerveau, disposées en couches qui se transmettent des nombres. Ses poids sont les nombres ajustables placés sur les connexions entre les unités; l’entraînement règle ces poids pour que l’ensemble du réseau transforme des entrées en sorties utiles.

L’expression « réseau de neurones » fait penser à un cerveau dans une boîte. La réalité est plus modeste et plus facile à saisir. Un réseau de neurones est une chaîne d’étapes arithmétiques simples : multiplier des nombres, les additionner, comprimer le résultat dans un intervalle pratique et le transmettre. Chaque unité qui fait cela s’appelle un neurone artificiel, et un réseau en relie un grand nombre, en couches.

Ce qui rend le réseau utile, ce n’est pas l’arithmétique, qui est élémentaire, mais les nombres précis par lesquels il multiplie. Ce sont ses poids. Un réseau tout neuf a des poids aléatoires et produit n’importe quoi. L’entraînement les ajuste, petit à petit, jusqu’à ce que les sorties soient justes la plupart du temps. Quand on dit qu’un modèle « a 1,5 milliard de paramètres », on veut surtout dire qu’il a autant de poids.

Un neurone, avec de vrais chiffres

Construisons un seul neurone qui estime si une promenade dehors vous plaira. Il reçoit trois entrées, chacune un nombre :

  • Fait-il soleil? (1 pour oui, 0 pour non)
  • Quelle est la chaleur, sur une échelle de 0 (glacial) à 1 (parfait)?
  • Êtes-vous fatigué? (1 pour oui, 0 pour non)

Chaque entrée a un poids qui dit à quel point elle compte, et dans quel sens. Il y a aussi un nombre supplémentaire, le biais, qui joue le rôle de point de départ ou de valeur de référence.

EntréeValeurPoidsValeur × poids
Soleil12,02,0
Chaleur0,61,50,9
Fatigue1−3,0−3,0
Biais−0,5
Total−0,6

Le neurone additionne tout et obtient −0,6. Il fait ensuite passer ce total dans une fonction d’activation, une formule fixe qui transforme n’importe quel nombre en une sortie plus utile. Un choix courant, la sigmoïde, ramène chaque nombre dans l’intervalle de 0 à 1. Pour −0,6, elle donne environ 0,35, ce qu’on peut lire comme « probablement pas très agréable aujourd’hui ».

Changez maintenant une entrée : vous n’êtes pas fatigué (0). Le total devient 2,0 + 0,9 − 0,5 = 2,4, et la sigmoïde donne environ 0,92. Même neurone, mêmes poids, entrée différente, réponse très différente.

Regardez ce que les poids encodent. Le grand poids négatif sur « fatigue » signifie que la fatigue pèse lourd contre la promenade. Le poids positif sur « soleil » joue en sa faveur. Personne n’a besoin de taper ces préférences sous forme de règles; dans un réseau entraîné, elles sont apprises à partir d’exemples.

D’un neurone à un réseau

Un seul neurone ne peut tracer qu’une ligne simple entre « oui » et « non ». La puissance vient de l’empilement :

  1. La couche d’entrée contient les nombres bruts, comme la luminosité des pixels d’une photo ou des codes pour les mots d’une phrase.
  2. Les couches cachées contiennent chacune de nombreux neurones. Chaque neurone prend toutes les sorties de la couche précédente, applique ses propres poids et transmet son résultat.
  3. La couche de sortie donne la réponse finale, comme « chat » ou « chien », ou une note pour chaque mot suivant possible.

Les poids s’accumulent vite. Une couche de 1 000 neurones, chacun relié à 1 000 entrées, a déjà un million de poids, plus 1 000 biais. Le modèle de langage GPT-2 d’OpenAI a environ 1,5 milliard de paramètres répartis sur 48 couches.

C’est dans les couches cachées que se passe la partie intéressante. Dans leur lettre de 1986 sur la rétropropagation, parue dans Nature, David Rumelhart, Geoffrey Hinton et Ronald Williams ont montré que les unités cachées peuvent en venir d’elles-mêmes à représenter des caractéristiques utiles. Lors d’un test, un réseau qui apprenait des arbres généalogiques a développé des unités cachées qui suivaient des notions comme la nationalité et la génération, même si personne ne lui avait dit que ces concepts existaient.

Comment les poids sont-ils réglés?

L’entraînement suit la même boucle pour presque tous les réseaux. On lui montre un exemple, on compare sa sortie avec la bonne réponse et on mesure l’erreur. Puis on détermine, pour chaque poids, si le pousser un peu vers le haut ou vers le bas réduirait cette erreur, et on le déplace d’un tout petit peu. La méthode de rétropropagation de cette lettre de 1986 est la façon standard de calculer ces ajustements efficacement, en remontant à rebours depuis la couche de sortie. Répétez sur des millions d’exemples, et les poids se stabilisent à des valeurs qui fonctionnent.

À essayer : avec une calculatrice ou un tableur, reconstruisez le neurone de la promenade ci-dessus. Changez le poids de « fatigue » de −3,0 à −1,0 et recalculez les deux cas. Vous venez de faire à la main ce que l’entraînement fait automatiquement : changer un poids et voir l’avis du réseau se déplacer.

Pourquoi les plus grands réseaux ont-ils besoin d’autant de données?

Chaque poids est un nombre que le réseau doit apprendre, et apprendre un nombre demande des preuves. Un réseau qui n’a qu’une poignée de poids peut être fixé avec quelques dizaines d’exemples. Un réseau de millions ou de milliards de poids a de la place pour stocker une quantité énorme de détails, et s’il voit trop peu d’exemples, il utilise cette place pour les mémoriser, bizarreries comprises. C’est ce qu’on appelle le surapprentissage : le réseau réussit très bien sur ses exemples d’entraînement et mal sur tout ce qui est nouveau.

Un article publié en janvier par des chercheurs d’OpenAI et de l’Université Johns Hopkins, « Scaling Laws for Neural Language Models » (lois d’échelle des modèles de langage neuronaux), a mesuré ce phénomène pour les modèles de langage. Ses auteurs, menés par Jared Kaplan, ont constaté que la performance s’améliore de façon régulière et prévisible quand la taille du modèle et les données augmentent ensemble, mais qu’elle plafonne si l’une augmente pendant que l’autre reste fixe. Leur estimation : chaque fois qu’un modèle devient huit fois plus grand, il lui faut environ cinq fois plus de données pour éviter le surapprentissage.

Le même article apporte une bonne nouvelle. Les grands modèles sont plus efficaces avec les échantillons : ils apprennent davantage de chaque exemple que les petits. Les besoins en données augmentent donc moins vite que la taille, mais ils augmentent quand même. C’est pourquoi GPT-2 a été entraîné sur environ 40 Go de texte tiré de quelque 8 millions de pages Web, et pourquoi les équipes qui construisent des réseaux toujours plus grands consacrent autant d’efforts à recueillir et à nettoyer des données.

Sources

  1. Learning representations by back-propagating errors — Nature, vol. 323, pp. 533-536, 9 octobre 1986
  2. Scaling Laws for Neural Language Models — Kaplan, McCandlish et al., OpenAI and Johns Hopkins University (arXiv), 23 janvier 2020
  3. Language Models are Unsupervised Multitask Learners — OpenAI (Radford, Wu, Child, Luan, Amodei, Sutskever), 14 février 2019

Recevez gratuitement le Guide de l’intelligence artificielle

Abonnez-vous à l’infolettre hebdomadaire et recevez le guide gratuit : ce qui a changé en IA cette semaine, une leçon, un prompt à essayer. Désabonnement en un clic.

Ce que nous faisons de votre adresse

Retour en haut

Affichage

Vos choix sont enregistrés dans ce navigateur seulement. Aucune donnée n’est transmise.

Taille du texte
100 %
Couleurs
Lecture
Autres réglages
Déclaration d’accessibilité