Cours généré
Comprendre son premier réseau de neurones MLP
Objectifs du cours
À la fin de ce cours, vous saurez expliquer le rôle des couches d'un MLP, décrire une propagation avant et reconnaître les grandes étapes de son entraînement.
1. Pourquoi utiliser un MLP ?
Un perceptron multicouche, ou MLP, est un réseau de neurones capable d'apprendre une relation entre plusieurs variables d'entrée et une sortie. Par exemple, il peut estimer si une fleur appartient à une espèce à partir de la longueur et de la largeur de ses pétales.
Imaginez une équipe : chaque neurone observe les informations reçues, effectue un petit calcul, puis transmet son résultat à la couche suivante. Aucun neurone ne résout seul le problème ; la décision émerge de leur collaboration.
2. Les trois éléments essentiels
La couche d'entrée reçoit les caractéristiques, par exemple quatre mesures pour une fleur.
Une ou plusieurs couches cachées combinent ces caractéristiques et apprennent des représentations utiles.
La couche de sortie produit la prédiction finale, par exemple une probabilité pour chaque classe.
Chaque connexion possède un poids. Pendant l'apprentissage, le réseau modifie ces poids pour rapprocher ses prédictions des bonnes réponses.
3. La propagation avant
Pour produire une prédiction, chaque couche calcule d'abord une combinaison du type entrée × poids + biais. Une fonction d'activation, souvent ReLU, transforme ensuite ce résultat.
ReLU suit une règle simple : si la valeur est négative, elle renvoie 0 ; sinon, elle conserve la valeur. Cette non-linéarité permet au réseau d'apprendre des frontières plus complexes qu'une simple droite.
mermaidflowchart LR
A[4 caractéristiques] --> B[Couche cachée<br/>8 neurones + ReLU]
B --> C[Couche de sortie<br/>3 classes]
C --> D[Prédiction]4. Comment le réseau apprend
Le réseau produit une prédiction sur un petit lot d'exemples.
Une fonction de perte mesure l'écart entre cette prédiction et la réponse attendue.
La rétropropagation calcule la contribution de chaque poids à l'erreur.
L'optimiseur déplace légèrement les poids dans la direction qui réduit cette erreur.
Le cycle recommence pendant plusieurs époques.
Une époque correspond à un passage complet sur les données d'entraînement. Une perte qui diminue est encourageante, mais la performance doit aussi être vérifiée sur des données que le modèle n'a pas utilisées pour apprendre.
5. Exemple guidé avec PyTorch
Le modèle suivant reçoit quatre nombres, utilise huit neurones cachés et produit trois scores de classe.
pythonimport torch
from torch import nn
model = nn.Sequential(
nn.Linear(4, 8),
nn.ReLU(),
nn.Linear(8, 3),
)
loss_fn = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
for epoch in range(100):
logits = model(X_train)
loss = loss_fn(logits, y_train)
optimizer.zero_grad()
loss.backward()
optimizer.step()
with torch.no_grad():
predictions = model(X_test).argmax(dim=1)La ligne optimizer.zero_grad() efface les gradients du tour précédent. loss.backward() calcule les nouveaux gradients et optimizer.step() met à jour les poids.
6. Erreurs fréquentes
Entraîner et évaluer sur les mêmes exemples donne une vision trop optimiste des performances.
Ajouter beaucoup de couches ne garantit pas un meilleur modèle et augmente le risque de surapprentissage.
Oublier de normaliser des variables aux échelles très différentes peut ralentir l'apprentissage.
Juger uniquement la perte d'entraînement masque parfois une mauvaise généralisation.
Mini-exercice
Vous disposez de dix caractéristiques et devez prédire deux classes. Adaptez la première couche à dix entrées et la dernière à deux sorties. Conservez d'abord une seule couche cachée, puis comparez les résultats obtenus avec 8 et 32 neurones.
Quiz final
Quiz final · 3 questions
0/3 réponduesQuel est le rôle principal d'une couche cachée ?
Pourquoi conserve-t-on un jeu de test séparé ?
Que fait optimizer.step() ?
À retenir
Un MLP enchaîne des transformations linéaires et des activations non linéaires. Il apprend ses poids en réduisant une fonction de perte, mais sa vraie valeur se mesure sur des données nouvelles.