Master · Deep Learning

Connexionnisme · Apprentissage profond · IA

Réseau de Neurones

aₗ = σ(Wₗ · aₗ₋₁ + bₗ)  ·  ∂L/∂W = δ · aᵀ

Un réseau de neurones artificiel est un système de calcul inspiré du cerveau biologique, composé de couches de neurones artificiels connectés par des poids apprenables, capables d'approximer n'importe quelle fonction continue.

—
McCulloch & Pitts — neurone formel
—
Paramètres GPT-4 (estimé)
—
Précision ImageNet (top-5, 2024)
—
Naissance des GANs (Goodfellow)
🧠
01

Analogie avec le neurone biologique

Biologique

Neurone biologique

Corps cellulaire (soma) : intégration des signaux. Dendrites : réceptions des entrées synaptiques. Axone : transmission du signal (potentiel d'action). Synapse : jonction entre neurones. Neurotransmetteurs : acétylcholine, glutamate, GABA. Plasticité : LTP/LTD.

Artificiel

Neurone artificiel (McCulloch-Pitts)

Entrées xᵢ × poids wᵢ → somme pondérée z = Σwᵢxᵢ + b → fonction d'activation σ(z) → sortie a. Le biais b joue le rôle du seuil de déclenchement. La sortie représente le taux de firing. Réseau de tels neurones : perceptron multicouche.

Comparaison

Limites de l'analogie

Cerveaux humains : 86 milliards de neurones, 100 trillions de synapses. Traitement analogique, spikes temporels, 3D. Neurones ANN : numériques, synchrones, backward pass impossible biologiquement. L'inspiration est conceptuelle — pas une simulation fidèle.

🔢
02

Perceptron & Réseaux multicouches

Perceptron (Rosenblatt, 1957)
ŷ = σ(w · x + b)   ·   w ← w + α(y - ŷ)x

Classifieur linéaire binaire. Règle de Hebb simplifiée : si la prédiction est fausse, ajuste les poids dans la direction de l'erreur. Convergence garantie si les données sont linéairement séparables (théorème de convergence du perceptron). Limites : XOR insoluble (Minsky & Papert, 1969).

Théorème d'approximation universelle (Cybenko, 1989 ; Hornik, 1991)
∀f ∈ C([0,1]ⁿ), ∀ε>0, ∃NN à 1 couche cachée : ‖f - NN‖ < ε

Un réseau à une seule couche cachée avec suffisamment de neurones peut approximer n'importe quelle fonction continue sur un compact. Ne dit pas combien de neurones ni comment les trouver. Justification théorique du deep learning.

Architecture

MLP — Multilayer Perceptron

Couche d'entrée → couches cachées → couche de sortie. Fully connected : chaque neurone connecté à tous ceux de la couche suivante. Paramètres : n_in × n_hidden (poids) + n_hidden (biais) par couche. Initialisation : Xavier/Glorot, He. Notation matricielle : A = σ(WX + b).

Forward Pass

Propagation avant

Z¹ = W¹X + b¹ → A¹ = σ(Z¹) → Z² = W²A¹ + b² → ... → ŷ = softmax(Zᴸ). Cache pour la rétropropagation. Complexité : O(n × m) par couche. Vectorisé sur batch avec NumPy/PyTorch. Inférence = forward pass uniquement.

Loss functions

Fonctions de coût

MSE : L=(ŷ-y)²/2. Cross-entropy binaire : -[y log(ŷ)+(1-y)log(1-ŷ)]. Cross-entropy catégorielle : -Σyₖ log(ŷₖ). MAE, Huber Loss (robuste). Focal Loss (class imbalance). Contrastive Loss (siamese nets). ELBO (VAE). Dice Loss (segmentation).

⚡
03

Fonctions d'activation

ActivationFormuleAvantagesInconvénients
Sigmoidσ(z) = 1/(1+e⁻ᶻ)Sortie [0,1], probabilitéVanishing gradient, non-centré en 0
Tanhtanh(z) = (eᶻ-e⁻ᶻ)/(eᶻ+e⁻ᶻ)Centré en 0, [-1,1]Vanishing gradient
ReLUmax(0, z)Pas de vanishing, rapideDying ReLU (neurones morts)
Leaky ReLUmax(αz, z), α=0.01Pas de neurones mortsHyperparamètre α à choisir
ELUz si z≥0, α(eᶻ-1) sinonLisse, centré proche 0Plus coûteux que ReLU
GELUz·Φ(z)Standard Transformers (BERT, GPT)Approximation
Swish / SiLUz·σ(z)Self-gated, performantLégèrement plus cher
Softmaxeᶻᵢ/ΣeᶻⱼProbabilités (somme=1), outputNumériquement instable sans log
⟵
04

Rétropropagation du gradient

Règle de la chaîne (chain rule)
∂L/∂Wˡ = δˡ · (Aˡ⁻¹)ᵀ   ·   δˡ = (Wˡ⁺¹)ᵀδˡ⁺¹ ⊙ σ'(Zˡ)

Backpropagation (Rumelhart, Hinton & Williams, 1986) : application efficace de la règle de la chaîne pour calculer le gradient de la perte par rapport à tous les poids. Complexité proportionnelle au forward pass (2× environ). Différentiation automatique : PyTorch autograd, TensorFlow GradientTape.

Gradient descent

Descente de gradient stochastique

SGD : θ ← θ - α∇L(θ;xᵢ,yᵢ). Mini-batch : compromis bruit/stabilité. Momentum : accumule le gradient passé (μ=0.9). Adam : adaptive learning rates par paramètre (m₁, m₂ moments). AdamW : Adam + weight decay découplé (Loshchilov 2019).

Vanishing gradient

Problème du gradient qui disparaît

∂L/∂W¹ = (∏ Wˡσ'(Zˡ))·δᴸ. Si σ'<1 partout (sigmoid, tanh) et L profond → gradient → 0 exponentiellement. Solutions : ReLU, batch normalization, skip connections (ResNets), LSTM gates, initialisation appropriée, gradient clipping.

Gradient explosion

Exploding gradient

∏ Wˡ peut diverger si les poids sont grands. Gradient clipping : g̃ = g · min(1, θ_max/‖g‖). Problème aigu dans les RNN. Solutions : initialisation Glorot/He, batch norm, gradient clipping. Monitoring : ‖∇L‖ au cours de l'entraînement.

🏗️
05

Architectures spécialisées

CNN

Réseaux convolutifs

Convolution : partage de poids, invariance en translation. Opération : (f*g)[n] = Σf[m]g[n-m]. Couche conv : K filtres × H × W. Pooling : Max ou Average, réduction spatiale. Architecture : [Conv→BN→ReLU]×N → Pool. Évolution : LeNet→AlexNet→VGG→ResNet→EfficientNet→ConvNext.

ResNet

Skip Connections (He et al., 2016)

F(x) + x au lieu de juste F(x). Le réseau apprend la résiduelle plutôt que le mapping complet. Permet des réseaux très profonds (152 couches) sans dégradation. Les gradients coulent directement via les skip connections. Base de la plupart des architectures modernes.

LSTM

Long Short-Term Memory

Cellule de mémoire c avec portes : oubli f=σ(Wf[h,x]+bf), entrée i=σ(...), candidat g̃=tanh(...), sortie o. Rétention d'information à long terme. GRU : version simplifiée (2 portes). Base des modèles de séquences avant les Transformers. Encore utilisé : audio, séries temporelles.

Transformer

Self-Attention (Vaswani et al., 2017)

Q=XWq, K=XWk, V=XWv. Attention = softmax(QKᵀ/√dₖ)V. Parallélisable contrairement aux RNN. Multi-head : diversité d'attention. Positional encoding. Encoder-Decoder ou Decoder-only (GPT). Vision Transformer (ViT) : patches d'image comme tokens.

GAN

Generative Adversarial Networks

Générateur G(z) → images fausses. Discriminateur D(x) → probabilité d'être réel. min_G max_D V = E[logD(x)] + E[log(1-D(G(z)))]. Mode collapse, training instability. Améliorations : WGAN, WGAN-GP, StyleGAN2/3, BigGAN. Remplacés par les modèles de diffusion.

VAE

Variational Autoencoder

Encodeur : x → μ, σ (espace latent gaussien). Reparametrization trick : z = μ + σ·ε. Décodeur : z → x'. Loss : reconstruction + KL divergence. Espace latent continu et sémantique. Interpolation dans l'espace latent. Base de la génération contrôlée.

⚖️
06

Régularisation & Normalisation

Dropout

Dropout (Srivastava et al., 2014)

Désactive aléatoirement p% des neurones à chaque forward pass d'entraînement. Équivalent à entraîner un ensemble de 2ⁿ réseaux partagés. Pas de dropout à l'inférence (× (1-p) scaling). p=0.1–0.5. Spatial Dropout pour CNN. Variante : DropPath (Stochastic Depth).

Batch Norm

Batch Normalization (Ioffe & Szegedy, 2015)

Normalise les activations : μ̂ = (x - E[x])/√(Var[x]+ε). Puis : y = γx̂ + β (apprenables). Réduit le covariate shift interne. Permet des LR élevés, moins sensible à l'initialisation. Layer Norm (Transformers), Group Norm, Instance Norm.

Weight Decay

L1, L2 & Early Stopping

L2 (Ridge) : L' = L + λΣw². Pénalise les grands poids, régularise implicitement. L1 (Lasso) : sparsité des poids. AdamW : weight decay découplé du gradient. Early stopping : arrête quand validation loss ne diminue plus (patience). Data augmentation : version implicite de régularisation.

🚀
07

Avancées récentes

Diffusion

Modèles de diffusion (DDPM, 2020)

Processus de débruitage en T étapes : q(xₜ|xₜ₋₁) = N(√(1-βₜ)xₜ₋₁, βₜI). Entraînement : prédire le bruit ε ajouté. Score matching. DDIM (inférence rapide). Latent Diffusion (Stable Diffusion). État de l'art : génération image (DALL-E 3), vidéo (Sora), audio (AudioLDM2).

LoRA

Parameter-Efficient Fine-Tuning

LoRA : décompose ΔW = A·B (rang r faible). Fine-tune uniquement A et B, gèle W₀. 10 000× moins de paramètres que full fine-tuning. QLoRA : quantification 4-bit + LoRA. Prefix tuning, Prompt tuning, Adapter layers. Base des LLMs personnalisés localement.

MoE

Mixture of Experts

N experts (sous-réseaux), routeur sélectionne top-k pour chaque token. Paramètres actifs fraction des paramètres totaux. Gemini 1.5 Pro, Mixtral 8×7B, GPT-4 (supposé). Sparse computation : capacité accrue sans coût FLOPs proportionnel. Load balancing.

State Space

Mamba & State Space Models

Alternative aux Transformers pour les longues séquences. Sélective SSM : O(n) complexité vs O(n²) attention. Architecture Mamba (Gu & Dao, 2023). Performances comparables aux Transformers sur LM, 5× plus rapide en inférence. Jamba (Mixture Mamba + Attention).

💻
08

Implémentation PyTorch

Python · PyTorch — MLP complet + entraînement
import torch, torch.nn as nn
from torch.optim import AdamW

# ── Architecture ──────────────────────────────
class MLP(nn.Module):
    def __init__(self, in_dim, hidden, out_dim, dropout=0.2):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(in_dim, hidden), nn.BatchNorm1d(hidden), nn.GELU(),
            nn.Dropout(dropout),
            nn.Linear(hidden, hidden//2), nn.GELU(),
            nn.Dropout(dropout//2),
            nn.Linear(hidden//2, out_dim)
        )
    def forward(self, x): return self.net(x)

# ── Entraînement ──────────────────────────────
model = MLP(128, 512, 10).cuda()
opt   = AdamW(model.parameters(), lr=3e-4, weight_decay=0.01)
sched = torch.optim.lr_scheduler.CosineAnnealingLR(opt, T_max=50)
loss_fn = nn.CrossEntropyLoss()

for epoch in range(50):
    for X, y in train_loader:
        X, y = X.cuda(), y.cuda()
        opt.zero_grad()
        loss = loss_fn(model(X), y)
        loss.backward()             # backprop
        nn.utils.clip_grad_norm_(model.parameters(), 1.0)
        opt.step(); sched.step()
    print(f"Epoch {epoch+1}: loss={loss.item():.4f}")

Frameworks & Outils

PyTorch 2.xTensorFlow / KerasJAX / Flax HuggingFace TransformersLightningWeights & Biases Netron (visualisation)TensorBoard