Comprendre Réseau de neurones
Un réseau de neurones est un empilement de couches, chacune effectuant deux opérations. D’abord une étape linéaire multiplie les valeurs entrantes par une matrice de poids et ajoute un biais. Puis une fonction d’activation non linéaire est appliquée terme à terme. La sortie d’une couche est l’entrée de la suivante, si bien que le réseau tout entier est une composition profondément imbriquée de ces éléments simples.
La non-linéarité n’est pas décorative. Composer des applications linéaires donne une autre application linéaire : un réseau de profondeur quelconque sans fonction d’activation équivaut exactement à une seule couche linéaire et ne peut rien représenter de plus. C’est la non-linéarité entre les couches qui permet à la composition d’exprimer des fonctions qu’aucune couche unique ne pourrait.
Ce que la profondeur apporte, c’est la représentation compositionnelle. Les premières couches apprennent une structure simple et locale, et les couches ultérieures les combinent en variables progressivement plus abstraites. Cela est appris et non conçu : on indique seulement au réseau ce qu’il faut prédire et à quel point il se trompe pour l’instant, et les représentations intermédiaires émergent de l’optimisation de cet objectif.
L’entraînement relève de la machinerie ordinaire de l’apprentissage supervisé. Une fonction de perte mesure l’écart entre prédictions et cibles, la rétropropagation calcule le gradient de cette perte par rapport à chaque poids, et un optimiseur fait descendre les poids. Tout le reste - fonctions d’activation, couches de normalisation, connexions résiduelles, régularisateurs - existe pour que cette optimisation fonctionne de façon fiable en profondeur.
Exemple : Réseau de neurones
Un petit réseau classant des images de chiffres en niveaux de gris 28×28 aplatit chaque image en 784 entrées, les fait passer par deux couches cachées de quelques dizaines d’unités chacune avec des activations ReLU, et se termine par une couche de sortie de 10 unités avec un softmax, donnant une probabilité par chiffre.
Chollet illustre exactement cette forme : des couches denses de tailles 784 → 32 → 64 → 32 → 10, avec ReLU sur les couches cachées et softmax en sortie. Le softmax transforme les scores finaux en une distribution de probabilité sur les dix classes, ce qui s’associe à la perte d’entropie croisée.
Le nombre de paramètres croît vite. La première couche à elle seule contient 784 × 32 poids plus 32 biais, soit plus de 25 000 paramètres, ce qui explique pourquoi même des réseaux modestes réclament des données substantielles ou de la régularisation, et pourquoi les architectures à poids partagés, comme les couches convolutives, sont préférées pour les images.
Questions fréquentes
Pourquoi une fonction d’activation non linéaire est-elle nécessaire ?
Parce qu’une composition de fonctions linéaires est elle-même linéaire. Sans non-linéarité, un réseau de cent couches aurait exactement le pouvoir de représentation d’une seule couche linéaire, et la profondeur n’apporterait absolument rien.
Combien de couches et d’unités faut-il ?
Il n’existe pas de formule. Le choix est empirique, guidé par la taille et la complexité des données et contraint par le surapprentissage. L’usage consiste habituellement à partir d’une architecture connue pour fonctionner sur des problèmes similaires et à ajuster à partir de là.
Qu’est-ce qui rend un réseau « profond » ?
Le fait d’avoir de nombreuses couches, et donc de nombreux étages successifs de représentation apprise. Le contraste est avec les modèles peu profonds qui envoient les entrées vers les sorties en une seule étape ; c’est la profondeur qui permet la composition hiérarchique des représentations.
En résumé
Un réseau de neurones alterne transformations linéaires et non-linéarités, et la profondeur lui permet de composer des représentations apprises simples en représentations complexes. La rétropropagation fournit les gradients et la descente de gradient fait l’ajustement ; presque tout le reste de l’apprentissage profond existe pour maintenir ce processus stable.