Accueil / Factory / Algos ML / Perceptron — factory / algos ML / apprentissage supervisé

PERCEP TRON.

Inventé par Frank Rosenblatt à la fin des années 1950, le perceptron est le premier neurone artificiel. Il additionne des entrées pondérées et corrige ses poids à chaque erreur. Rarement utilisé seul aujourd'hui, il reste la brique qui permet de comprendre les réseaux de neurones et l'apprentissage au fil de l'eau.

ClassificationNeurone artificielApprentissage en ligneModèle linéaireNiveau : débutant

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceFrontière droite, sans marge ni probabilité
InterprétabilitéUn poids par variable, mais aucune probabilité à expliquer
VitesseUne addition et une correction par exemple
Facilité de réglagePeu de paramètres, mais un résultat qui oscille d'une passe à l'autre
Tolérance aux données brutesVariables à mettre à l'échelle, sensible au bruit
EN 30 SECONDES

Un apprenti qui trie des pièces : à chaque erreur signalée par le chef, il ajuste un peu sa règle de tri, puis passe à la pièce suivante.

1. On additionne des entrées pondérées

Chaque pixel reçoit un poids. La somme pondérée donne un score ; le signe du score, ou le score le plus élevé entre plusieurs classes, décide de la réponse.

2. On corrige seulement en cas d'erreur

Si la réponse est fausse, on ajoute l'exemple aux poids de la bonne classe et on le retire de ceux de la classe prédite à tort. Si elle est juste, on ne touche à rien.

3. On repasse sur les données

On recommence plusieurs passes. Si une droite peut séparer parfaitement les classes, les erreurs finissent par disparaître ; sinon, les poids continuent d'osciller.

LE CAS MÉTIER

apprentissage au fil de l'eau · saisie de documents / flux de données
EN ENTRÉE

Des chiffres manuscrits qui arrivent en continu

Chaque chiffre scanné est une image de 8 × 8 pixels. À chaque correction d'un opérateur, le modèle reçoit la bonne réponse et peut se mettre à jour sans tout réentraîner.

EN SORTIE

Un modèle qui progresse à chaque passe

Sur le jeu d'exemple, le perceptron lit 87 % des chiffres mis de côté après une passe, 94 % après quatre. Les erreurs à l'entraînement ne baissent pas régulièrement : elles remontent parfois d'une passe à l'autre.

CE QU'ON MESURE

L'exactitude sur des données non vues, passe après passe

On suit l'exactitude sur un jeu mis de côté après chaque passe, pour arrêter quand elle plafonne. Le perceptron ne garantit pas que la dernière passe soit la meilleure.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Comprendre le fonctionnement d'un neurone avant d'aborder le deep learning
  • Mise à jour en continu, exemple par exemple, sur de gros flux
  • Classes séparables par une droite, avec beaucoup de variables
  • Point de départ très simple à coder dans n'importe quel langage

NON

  • Besoin d'une probabilité : utiliser une régression logistique
  • Classes qui se chevauchent : le perceptron oscille, une SVM linéaire gère mieux la marge
  • Frontières courbes : passer à un réseau de neurones multicouche ou une SVM à noyau
  • Décision à documenter pour un régulateur : préférer un modèle aux coefficients stables
LES 3 RÉGLAGES QUI COMPTENT

Noms donnés pour Python (scikit-learn). En R, l'algorithme s'écrit directement en R base.

Nombre de passes : max_iter

Combien de fois on parcourt les données. On s'arrête quand l'exactitude sur un jeu de validation ne progresse plus (early_stopping=True en Python).

Ordre des exemples : shuffle

Mélanger les exemples à chaque passe évite qu'une séquence particulière oriente les poids. Activé par défaut en Python.

penalty / alpha

Régularisation optionnelle des poids, désactivée par défaut. Elle limite le surapprentissage quand les données sont bruitées.

LE CODE MINIMAL

jeu d'exemple : chiffres_manuscrits.csv ↓
# Lecture de chiffres manuscrits : perceptron en R
# Pas de package R de référence : l'algorithme tient en quelques lignes de R base
chiffres <- read.csv("chiffres_manuscrits.csv")
X <- cbind(1, as.matrix(chiffres[, 1:64]) / 16)   # 1re colonne = biais
y <- chiffres$chiffre + 1                        # classes 1 à 10

set.seed(42)
idx <- sample(nrow(X), round(0.7 * nrow(X)))
W <- matrix(0, nrow = 10, ncol = ncol(X))         # un vecteur de poids par chiffre

for (passe in 1:5) {
  erreurs <- 0
  for (i in sample(idx)) {
    predit <- which.max(W %*% X[i, ])
    if (predit != y[i]) {                         # correction seulement en cas d'erreur
      W[y[i], ] <- W[y[i], ] + X[i, ]
      W[predit, ] <- W[predit, ] - X[i, ]
      erreurs <- erreurs + 1
    }
  }
  pred <- max.col(X[-idx, ] %*% t(W))
  cat("Passe", passe, "| erreurs corrigées :", erreurs, "| exactitude test :", round(mean(pred == y[-idx]), 3), "\n")
}

QUESTIONS FRÉQUENTES

Qu'est-ce qu'un perceptron ?

C'est le modèle de neurone artificiel le plus simple : une somme pondérée des entrées, suivie d'un seuil qui donne une réponse oui ou non. Il apprend en corrigeant ses poids chaque fois qu'il se trompe. Frank Rosenblatt l'a présenté en 1958.

Pourquoi un perceptron ne sait-il pas résoudre le XOR ?

Parce qu'il ne trace qu'une frontière droite. Le XOR, « l'un ou l'autre mais pas les deux », demande deux droites. Il faut au moins une couche cachée, c'est-à-dire un réseau de neurones multicouche, pour le résoudre.

Quelle différence entre perceptron et réseau de neurones ?

Un réseau de neurones empile plusieurs couches de neurones, avec des fonctions d'activation non linéaires, et s'entraîne par rétropropagation du gradient. Le perceptron est une seule couche avec un seuil : il ne sépare que ce qu'une droite peut séparer.

LES ALGOS VOISINS

à comparer avant de choisir
sa descendance

Réseau de neurones (MLP)

Des perceptrons empilés en couches, avec des fonctions d'activation : les frontières deviennent courbes.

Voir la fiche →
la frontière la plus sûre

SVM linéaire

Frontière droite aussi, mais placée au plus loin des deux classes. Plus stable.

Voir la fiche →
la version probabiliste

Régression logistique

Une somme pondérée passée dans une courbe en S : on obtient une probabilité au lieu d'un oui ou non.

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 →