Accueil / Factory / Algos ML / Autoencodeur — factory / algos ML / deep learning non supervisé

AUTO ENCODEUR.

Un réseau de neurones entraîné à recopier son entrée en la faisant passer par un goulot étroit. Pour y parvenir, il doit apprendre une version compressée des données normales. Ce qui s'en écarte est mal reconstruit : l'erreur de reconstruction devient un score d'anomalie.

Réduction de dimensionDétection d'anomaliesRéseau de neuronesCompressionNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceCapte des structures non linéaires hors de portée de l'ACP
InterprétabilitéCode compressé et erreurs difficiles à expliquer
VitesseEntraînement plus long qu'une ACP, prédiction rapide
Facilité de réglageArchitecture, goulot et entraînement à régler
Tolérance aux données brutesMise à l'échelle nécessaire, sensible aux anomalies d'entraînement
EN 30 SECONDES

Un copiste qui a reproduit des milliers de formulaires : il recopie sans effort un chiffre bien écrit, mais bute sur une tache d'encre qui ne ressemble à rien de ce qu'il connaît.

1. Un encodeur compresse

Les 64 pixels d'une image traversent des couches de neurones de plus en plus étroites, jusqu'à un goulot de 8 nombres : le code.

2. Un décodeur reconstruit

Des couches symétriques repartent de ces 8 nombres pour redessiner les 64 pixels. On entraîne le réseau pour que la sortie ressemble le plus possible à l'entrée.

3. L'erreur signale l'anormal

Une image semblable à celles de l'entraînement est bien reconstruite. Une image d'un autre type laisse un grand écart entre entrée et sortie. On trie les données par erreur décroissante.

LE CAS MÉTIER

contrôle qualité · numérisation de documents
EN ENTRÉE

Des chiffres scannés sur formulaires

1 797 chiffres manuscrits en 8 x 8 pixels servent d'exemples normaux. On y ajoute 20 scans ratés simulés, des taches aléatoires, pour vérifier que le réseau les repère sans les avoir jamais vus.

EN SORTIE

Une file de scans à revoir

Chaque scan reçoit une erreur de reconstruction. Sur le jeu d'exemple, l'erreur médiane des scans ratés est environ 3 fois celle des vrais chiffres, et 19 des 20 scans ratés figurent parmi les 30 pires. L'opérateur ne contrôle que cette file.

CE QU'ON MESURE

La part de vrais problèmes dans la file

On fixe la taille de la file selon la capacité de contrôle, puis on mesure la part de vrais problèmes qu'elle contient. Sans anomalies étiquetées, on en simule, comme ici, ou on fait vérifier un échantillon de la file à la main.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Données riches (images, signaux, centaines de variables) où l'ACP est trop simple
  • Beaucoup d'exemples normaux et très peu d'anomalies connues
  • Compresser des données en un code court, réutilisable par un autre modèle
  • Débruiter des images ou des signaux (autoencodeur débruiteur)

NON

  • Tableau de quelques variables : Isolation Forest ou LOF sont plus simples et souvent aussi bons
  • Peu de données (quelques centaines de lignes) : le réseau apprend mal
  • Chaque alerte doit être justifiée : l'erreur de reconstruction s'explique mal
  • Anomalies nombreuses dans l'entraînement : le réseau apprend aussi à les reconstruire
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour R (nnet, une seule couche cachée) et Python (scikit-learn). Pour des réseaux plus profonds : keras3 ou torch en R, Keras ou PyTorch en Python.

size / hidden_layer_sizes

La taille du goulot. Trop large, le réseau recopie tout, anomalies comprises. Trop étroit, il reconstruit mal même les données normales. Ici, 8 nombres pour 64 pixels.

Données d'entraînement

On entraîne sur des données aussi propres que possible : l'historique validé, sans les anomalies connues. C'est ce qui rend l'erreur de reconstruction informative.

decay / alpha

Pénalité sur les poids du réseau, qui limite le surapprentissage. Une petite valeur, comme 1e-4 (défaut de scikit-learn), suffit souvent.

maxit / max_iter

Nombre d'itérations d'entraînement. On vérifie que l'erreur ne baisse plus ; si le package signale une non-convergence, on augmente.

LE CODE MINIMAL

jeu d'exemple : chiffres_manuscrits.csv ↓
# Scans de formulaires : autoencodeur en R
library(nnet)

chiffres <- read.csv("chiffres_manuscrits.csv")
X <- as.matrix(chiffres[, names(chiffres) != "chiffre"]) / 16   # pixels entre 0 et 1

set.seed(42)
# 20 scans ratés simulés (taches aléatoires) pour contrôler la détection
rates <- matrix(runif(20 * 64) * (runif(20 * 64) < 0.3), nrow = 20)
X_tout <- rbind(X, rates)

# Autoencodeur à une couche cachée de 8 neurones : l'entrée sert aussi de sortie
ae <- nnet(X, X, size = 8, linout = TRUE, decay = 1e-4, maxit = 500, MaxNWts = 2000, trace = FALSE)

# Erreur de reconstruction : un scan mal reconstruit est atypique
erreur <- rowMeans((predict(ae, X_tout) - X_tout)^2)
n <- nrow(X)
cat("Erreur médiane, vrais chiffres :", round(median(erreur[1:n]), 4), "\n")
cat("Erreur médiane, scans ratés    :", round(median(erreur[-(1:n)]), 4), "\n")
cat("Scans ratés parmi les 30 pires :", sum(order(erreur, decreasing = TRUE)[1:30] > n), "sur 20\n")

QUESTIONS FRÉQUENTES

Comment un autoencodeur détecte-t-il des anomalies ?

Il est entraîné à reconstruire des données normales. Face à une donnée inhabituelle, il la reconstruit mal, faute d'avoir appris sa structure. On calcule l'erreur de reconstruction de chaque ligne et on examine d'abord les plus grandes.

Quelle différence entre un autoencodeur et une ACP ?

Les deux compressent les données en quelques dimensions. L'ACP ne trouve que des combinaisons linéaires ; l'autoencodeur, grâce à ses fonctions d'activation non linéaires, peut apprendre des structures courbes. En contrepartie, il demande plus de données, de réglages et de temps de calcul.

Faut-il des anomalies étiquetées pour entraîner un autoencodeur ?

Non. Il suffit d'exemples majoritairement normaux. Quelques anomalies étiquetées restent utiles pour évaluer la détection et fixer le seuil d'alerte, mais elles ne servent pas à l'entraînement.

LES ALGOS VOISINS

à comparer avant de choisir
la version linéaire

ACP

Un autoencodeur linéaire entraîné aux moindres carrés retrouve le sous-espace de l'ACP. L'ACP est plus rapide et reproductible.

Voir la fiche →
plus simple sur tableaux

Isolation Forest

Détecte les anomalies dans des données tabulaires sans réseau de neurones ni architecture à régler.

Voir la fiche →
la version générative

VAE

Un autoencodeur probabiliste, capable aussi de générer de nouveaux exemples réalistes.

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 →