Accueil / Factory / Algos ML / Réseau de neurones (MLP) — factory / algos ML / apprentissage supervisé

RÉSEAU DE NEURONES (MLP).

Des couches de neurones empilées : chacune fait des sommes pondérées de la précédente, puis les passe dans une fonction non linéaire. Le perceptron multicouche (MLP) apprend ainsi des relations qu'une droite ne capte pas. C'est la brique de base du deep learning, utile sur des données numériques denses comme des pixels ou des signaux.

ClassificationRégressionDeep learningNon linéaireNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceCapte les effets croisés, sans battre le boosting sur tableaux
InterprétabilitéDes milliers de poids, aucun ne se lit seul
VitesseRapide en prédiction, entraînement plus long qu'une régression
Facilité de réglageTaille, régularisation, pas d'apprentissage : à tester
Tolérance aux données brutesVariables à mettre à l'échelle, manquants interdits
EN 30 SECONDES

Une chaîne de comités. Le premier regarde les pixels et vote sur des traits simples (une barre, une boucle). Le suivant combine ces votes pour décider quel chiffre est écrit.

1. Chaque neurone fait une somme pondérée

Il multiplie chaque entrée par un poids, additionne, ajoute un biais. Seul, c'est une régression linéaire.

2. Une fonction d'activation plie le résultat

ReLU (garder le positif, mettre le négatif à zéro) ou tanh casse la linéarité. Sans elle, empiler des couches ne servirait à rien : le tout resterait une simple régression linéaire.

3. Les couches s'empilent

Entrée (64 pixels), couche cachée (64 neurones), sortie (10 chiffres). La sortie passe dans un softmax qui donne une probabilité par classe.

4. On corrige les poids à partir des erreurs

La rétropropagation calcule comment chaque poids a contribué à l'erreur, un optimiseur (Adam, descente de gradient) les ajuste. On répète sur toutes les données, plusieurs passes.

LE CAS MÉTIER

back-office · assurance / banque / administration
EN ENTRÉE

Une image par chiffre manuscrit

1 797 chiffres scannés en 8 × 8 pixels, soit 64 niveaux de gris par ligne, issus de formulaires remplis à la main. La colonne à prédire : le chiffre écrit, de 0 à 9.

EN SORTIE

Le chiffre lu, avec sa probabilité

Sur le jeu d'exemple, le MLP lit correctement 97,8 % des chiffres jamais vus, contre 96,7 % pour une régression logistique : 12 erreurs sur 540. Les chiffres lus avec une probabilité faible partent en vérification humaine.

CE QU'ON MESURE

L'exactitude et la matrice de confusion

L'exactitude donne la part de chiffres bien lus. La matrice de confusion montre les confusions : ici, les 8 lus comme des 1 sont l'erreur la plus fréquente. C'est elle qui dit où placer le contrôle humain.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Données numériques denses : pixels, signaux de capteurs, spectres
  • Relations non linéaires et effets croisés entre beaucoup de variables
  • Plusieurs sorties à prédire en même temps (une probabilité par classe)
  • Première marche avant les réseaux spécialisés : CNN pour les images, LSTM pour les séquences

NON

  • Données tabulaires classiques (clients, contrats) : un gradient boosting fait en général mieux, avec moins de réglages
  • Petite base de quelques centaines de lignes : trop de poids pour trop peu d'exemples
  • Décision à justifier ligne à ligne : préférer une régression logistique ou un arbre
  • Images de taille réelle : un CNN exploite la proximité des pixels, pas le MLP
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour R (nnet) et Python (scikit-learn). nnet ne gère qu'une couche cachée.

size / hidden_layer_sizes

Le nombre de neurones et de couches cachées. Commencer avec une couche de la taille de l'entrée ; ajouter des couches seulement si la validation progresse.

decay / alpha

La pénalité sur les poids (régularisation L2). Elle freine le surapprentissage : à augmenter si l'écart entre entraînement et test se creuse.

maxit / max_iter, early_stopping

Le nombre de passes. En Python, early_stopping=True met de côté 10 % des données et arrête quand la validation ne progresse plus.

Mise à l'échelle

Obligatoire : un MLP apprend mal si une variable va de 0 à 1 et une autre de 0 à 100 000. Ici, les pixels sont divisés par 16 ; sur un tableau, StandardScaler ou scale().

LE CODE MINIMAL

jeu d'exemple : chiffres_manuscrits.csv ↓
# Formulaires manuscrits : réseau de neurones (MLP) en R
library(nnet)

chiffres <- read.csv("chiffres_manuscrits.csv")
chiffres[, 1:64] <- chiffres[, 1:64] / 16          # pixels ramenés entre 0 et 1
chiffres$chiffre <- factor(chiffres$chiffre)

set.seed(42)
idx <- sample(nrow(chiffres), round(0.7 * nrow(chiffres)))
train <- chiffres[idx, ]
test <- chiffres[-idx, ]

# 64 pixels -> 32 neurones cachés -> 10 chiffres (sortie softmax)
mlp <- nnet(chiffre ~ ., data = train, size = 32, decay = 0.01, maxit = 300,
            MaxNWts = 5000, trace = FALSE)
pred <- predict(mlp, test, type = "class")

cat("Exactitude MLP      :", round(mean(pred == test$chiffre), 3), "\n")
cat("Formulaires mal lus :", sum(pred != test$chiffre), "sur", nrow(test), "\n")
print(table(reel = test$chiffre, predit = pred))

QUESTIONS FRÉQUENTES

Quelle différence entre MLP et deep learning ?

Le MLP est le réseau de neurones le plus simple : des couches entièrement connectées. On parle de deep learning quand on empile beaucoup de couches, souvent spécialisées : convolutions pour les images, attention pour le texte. Un MLP à une ou deux couches cachées est un réseau peu profond.

Combien de neurones mettre dans la couche cachée ?

Il n'y a pas de formule. Un point de départ courant est un nombre proche du nombre de variables d'entrée, puis on compare quelques tailles en validation croisée. Au-delà d'une certaine taille, la performance plafonne et le risque de surapprentissage augmente.

Réseau de neurones ou XGBoost sur des données tabulaires ?

Sur des tableaux de type clients ou contrats, le gradient boosting l'emporte le plus souvent, avec moins de préparation et de réglages. Le réseau prend l'avantage sur les données non structurées (images, son, texte) ou quand il faut combiner un tableau avec ce type de données.

LES ALGOS VOISINS

à comparer avant de choisir
la référence à battre

Régression logistique

Un MLP sans couche cachée. Lisible et rapide : si l'écart est faible, elle suffit.

Voir la fiche →
le spécialiste des images

CNN

Des filtres qui glissent sur l'image et exploitent la proximité des pixels. Nettement plus fort sur de vraies photos.

Voir la fiche →
l'ancêtre

Perceptron

Un seul neurone, une seule frontière droite. Le MLP en empile des couches pour tracer des frontières courbes.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →