LYCÉE → PRÉPA · L31

Module L31 · Partie K · Ingénierie de l’IA

Les familles de réseaux : ce qui les distingue vraiment.

MLP, CNN, RNN/LSTM, transformers, GNN, autoencodeurs, GAN, modèles de diffusion, modèles à état (SSM), mixtures d’experts : chaque famille est un biais inductif — une hypothèse sur la structure des données codée dans l’architecture — avec un coût, une façon de s’entraîner et un domaine où elle gagne. Ce chapitre les met côte à côte, mathématiquement (invariances, équivariances, complexité, objectifs) et pratiquement (quand choisir laquelle), avec des implémentations minimales et les articles fondateurs.

Durée : 3 séances · Prérequis : L14, L15, L25. Objectifs : formuler le biais inductif de chaque famille ; connaître leurs complexités et leurs objectifs d’entraînement ; implémenter une convolution, une cellule GRU, une couche de graphe, une étape de diffusion ; choisir une architecture pour un problème donné ; lire les articles fondateurs.

Ce que vous saurez faire à la fin
  • Expliquer équivariance par translation (CNN), permutation (GNN, attention), et ce que cela implique en données.
  • Comparer RNN, transformer et SSM en coût par token et en portée de la mémoire.
  • Décrire les objectifs : supervision, reconstruction (AE), adversarial (GAN), débruitage (diffusion), contraste (CLIP).
  • Choisir, avec arguments, entre un CNN et un ViT, un LSTM et un transformer, un modèle discriminatif et génératif.

Fiche de cours · Définitions

Définitions

Définition (biais inductif). Ensemble d’hypothèses qu’un modèle fait sur la fonction à apprendre, indépendamment des données : localité et invariance par translation (CNN), traitement séquentiel avec état (RNN), interactions tout-à-tout sans ordre (attention), structure de graphe (GNN). Un bon biais réduit les données nécessaires ; un mauvais plafonne la performance.
Définition (invariance, équivariance). f est invariante par une transformation g si f(g·x) = f(x) (classification : l’étiquette ne change pas si l’image est translatée) ; équivariante si f(g·x) = g·f(x) (segmentation : la carte de sortie se translate avec l’entrée). Une convolution est équivariante par translation ; un pooling global rend invariant.
Définition (familles). MLP : couches denses. CNN : convolutions + pooling (images, signaux 1D, séries). RNN/LSTM/GRU : état ht = f(ht−1, xt) (séquences, streaming). Transformer : attention (séquences, ensembles, images en patchs). GNN : passage de messages entre nœuds voisins. Autoencodeur (VAE) : compresser puis reconstruire ; latent probabiliste. GAN : générateur contre discriminateur. Diffusion : apprendre à débruiter, générer en inversant le bruit. SSM (Mamba) : récurrence linéaire à paramètres dépendant de l’entrée, calculable en parallèle. MoE : plusieurs sous-réseaux experts, un routeur en active quelques-uns par token.
Définition (discriminatif, génératif). Discriminatif : modélise p(y | x) (classifier, régresser). Génératif : modélise p(x) ou p(x | y) et peut échantillonner (images, texte, audio). Un LLM est génératif ; un classifieur d’images est discriminatif ; un VAE est les deux (encodeur discriminatif, décodeur génératif).
Définition (champ réceptif). Ensemble des entrées qui influencent une sortie. CNN : croît linéairement avec la profondeur (k par couche) ; RNN : tout le passé (en théorie) ; attention : tout le contexte en une couche.
Définition (apprentissage auto-supervisé, contrastif). Créer des étiquettes à partir des données elles-mêmes : prédire le token masqué (BERT), le suivant (GPT), reconstruire des patchs (MAE), rapprocher deux vues d’une même image et éloigner les autres (SimCLR, CLIP pour image-texte).

Fiche de cours · Formules

Le tableau comparatif à connaître

FamilleOpération cléCoût par couche (n éléments, d dims)Biais inductifMémoire / portéeParallélisme
MLPh = φ(Wx + b)O(d²)AucunTotal
CNN(x ∗ K)(i) = Σu x(i+u)K(u)O(n·k·Cin·Cout)Localité, équivariance translation, partage de poidsChamp réceptif ∝ profondeurTotal
RNN (GRU/LSTM)ht = f(ht−1, xt)O(n·d²)Ordre, causalité, état bornéThéoriquement infinie, pratiquement ~100 pasSéquentiel en t
Transformersoftmax(QKᵀ/√d)VO(n²·d + n·d²)Aucun sur l’ordre (ajouté) ; tout-à-toutContexte entier, exactTotal (entraînement)
GNN (message passing)hv ← φ(hv, ⊕u∈N(v) ψ(hu, euv))O(|A|·d + |S|·d²)Équivariance par permutation, localité de graphek sauts après k couchesPar couche
SSM (Mamba)ht = Atht−1 + Btxt, yt = CthtO(n·d·N)Récurrence linéaire sélectiveÉtat compressé de taille NScan parallèle
MoEy = Σi∈top-k gi(x)·Ei(x)k experts actifs sur ESpécialisationTotal ; routage
Convolution 2D : (I ∗ K)(i, j) = Σu,v I(i+u, j+v)·K(u, v) ; paramètres k²CinCout ; champ réceptif après L couches k×k : 1 + L(k − 1)
GRU : z = σ(Wz[h, x]), r = σ(Wr[h, x]), h̃ = tanh(W[r⊙h, x]), h′ = (1 − z)⊙h + z⊙h̃
VAE : L = Eq(z|x)[log p(x|z)] − KL(q(z|x) ‖ p(z)) (ELBO) ; reparamétrisation z = μ + σ⊙ε
GAN : minG maxD Ex[log D(x)] + Ez[log(1 − D(G(z)))]
Diffusion (DDPM) : xt = √ᾱt x₀ + √(1 − ᾱt) ε ; perte E‖ε − εθ(xt, t)‖² ; échantillonnage en inversant pas à pas
Contrastif (InfoNCE / CLIP) : L = −log [es(x,y⁺)/τ / Σj es(x,yj)/τ] symétrisé image↔texte

Fiche de cours · Théorèmes et démonstrations

Démonstrations à savoir refaire

Théorème 1 (équivariance de la convolution). Pour une translation Ta(x)(i) = x(i − a), on a (Tax) ∗ K = Ta(x ∗ K). Réciproquement, toute application linéaire équivariante par translation (sur ℤ, avec bord périodique) est une convolution.
((Tax) ∗ K)(i) = Σu x(i + u − a)K(u) = (x ∗ K)(i − a) = Ta(x ∗ K)(i). Réciproque : soit L linéaire équivariante, δ l’impulsion en 0 ; posons K = L(δ). Tout x s’écrit x = Σj x(j)Tjδ, donc L(x) = Σj x(j)L(Tjδ) = Σj x(j)TjK : c’est une convolution par K. Ainsi, imposer l’équivariance par translation force l’architecture convolutive — le CNN n’est pas un choix arbitraire mais la seule couche linéaire compatible avec l’hypothèse « la même détection partout ». Le partage des poids divise les paramètres par la taille de l’image et rend l’apprentissage possible avec peu de données (L14, exercice CNN vs MLP).
Théorème 2 (le gradient d’un RNN s’évanouit ou explose exponentiellement). Pour ht = tanh(Wht−1 + Uxt), ‖∂ht/∂h0‖ ≤ (‖W‖·max|tanh′|)t ≤ ‖W‖t ; les dépendances longues sont inapprenables si ‖W‖ < 1, instables si > 1.
Règle de la chaîne : ∂ht/∂h0 = Πs=1t diag(tanh′(zs))·W, produit de t jacobiens ; la norme d’un produit est ≤ produit des normes, chacune ≤ ‖W‖ (tanh′ ≤ 1). Contrairement au MLP profond (L14, Théorème 3), on ne peut pas choisir des W différents par pas : la même matrice est appliquée t fois — d’où le comportement exponentiel systématique. LSTM/GRU ajoutent un chemin additif (cellule ct = ft⊙ct−1 + it⊙c̃t) dont le jacobien est diag(ft) ≈ I quand la porte d’oubli est ouverte : le gradient traverse sans se multiplier par W (même idée que les connexions résiduelles). Le transformer contourne le problème en reliant directement toute paire de positions (chemin de longueur 1). Les SSM utilisent une récurrence linéaire avec des valeurs propres contrôlées (proches de 1, stables) : le produit reste borné par construction.
Théorème 3 (les GNN par passage de messages sont bornés par le test de Weisfeiler-Lehman). Deux graphes que le test WL 1-dimensionnel ne distingue pas reçoivent les mêmes représentations par tout GNN à agrégation de voisinage ; un GNN avec agrégation injective (GIN) atteint cette borne.
(Idée, Xu et al. 2019.) Le test WL raffine itérativement l’étiquette de chaque nœud par le multi-ensemble des étiquettes de ses voisins ; un GNN fait exactement cela avec des fonctions continues à la place des hachages. Par récurrence sur les couches, si deux nœuds ont la même étiquette WL après k itérations, ils ont la même représentation après k couches (les fonctions sont déterministes et appliquées aux mêmes multi-ensembles). Réciproquement, avec une agrégation injective sur les multi-ensembles (somme de MLP), le GNN sépare tout ce que WL sépare. Conséquence : un GNN ne distingue pas deux hexagones d’un cycle de 12 (mêmes degrés partout) ; remèdes : traits structurels (comptage de cycles), sous-graphes, ou positional encodings de graphe.
Théorème 4 (la perte de diffusion est une borne variationnelle). Apprendre εθ(xt, t) à prédire le bruit ajouté revient (à pondération près) à maximiser une borne inférieure de log pθ(x₀), comme le VAE.
(Idée, Ho et al. 2020.) Le processus avant q(xt | xt−1) ajoute du bruit gaussien ; le modèle apprend le processus inverse pθ(xt−1 | xt). L’ELBO se décompose en somme de KL entre q(xt−1 | xt, x₀) (gaussienne calculable en fermé, de moyenne fonction de xt et ε) et pθ(xt−1 | xt) (gaussienne de moyenne μθ). La KL entre gaussiennes de même variance est proportionnelle à ‖μq − μθ‖², et en paramétrant μθ par une prédiction de ε, chaque terme devient ct‖ε − εθ(xt, t)‖². Ignorer les poids ct (perte « simple ») marche mieux en pratique. Chaque pas est une régression stable — contrairement au GAN dont le jeu min-max n’a pas de fonction objectif monotone à suivre, d’où la domination de la diffusion en génération d’images depuis 2021.

01 / Implémenter

Convolution, GRU, couche de graphe : trois biais inductifs en quelques lignes

01 / Implémenter

Génératif en 1D : VAE, GAN, diffusion sur la même loi — pour voir ce qui change

02 / Choisir

Quelle famille pour quel problème : la grille de décision

DonnéesTâchePremier choixAlternativePourquoi
Tableau (colonnes hétérogènes)Classification / régressionGradient boosting (XGBoost, LightGBM)MLP avec embeddings de catégoriesSans structure spatiale, les arbres gagnent jusqu’à ~10⁵ lignes (Grinsztajn 2022)
ImagesClassification, détection, segmentationCNN pré-entraîné (ResNet, ConvNeXt) affinéViT/DINOv2 si beaucoup de données ou pré-entraînement fortÉquivariance = efficacité en données ; ViT dépasse avec ≥ 10⁶ images ou auto-supervision
Séries temporelles (capteurs)Prévision, détection d’anomalieCNN 1D / GRU ; modèles linéaires (DLinear) souvent compétitifsTransformer temporel (PatchTST) si longues séquencesPeu de données par série ; les transformers sur-apprennent
TexteClassification, extractionEncodeur transformer affiné (BERT-like)LLM zero/few-shot si peu de donnéesPré-entraînement massif disponible
TexteGénération, dialogueLLM décodeur (L27)
AudioASR, classificationWhisper / wav2vec 2.0 (L30)CNN sur log-mel pour des tâches fermées
Graphes (molécules, réseaux, scènes)Propriétés de nœuds/graphesGNN (GIN, GAT)Transformer de grapheÉquivariance par permutation
Images/audioGénérationDiffusion (latente)GAN pour la vitesse, VAE pour la compressionStabilité et qualité ; coût d’échantillonnage
Séquences très longues (10⁵–10⁶)ToutSSM / hybridesTransformer avec attention creuseCoût linéaire
Robotique : perception + commandePolitiqueCNN/ViT + MLP ; diffusion policyTransformer de trajectoiresL16, L21 ; les politiques par diffusion gèrent la multimodalité des actions

Règle d’ingénierie : commencer par le modèle le plus simple qui incorpore le bon biais (linéaire → arbres → CNN/pré-entraîné), mesurer, et n’augmenter la complexité que si la courbe d’apprentissage (L13) le justifie.

03 / Articles

Les articles fondateurs, par famille

FamilleArticleÀ retenir
CNNLeCun et al., Gradient-based learning applied to document recognition, Proc. IEEE 1998 ; Krizhevsky et al., AlexNet, NeurIPS 2012 ; He et al., ResNet, CVPR 2016 — 1512.03385Convolution + partage de poids ; GPU + données ; connexions résiduelles pour la profondeur
RNNHochreiter & Schmidhuber, LSTM, Neural Computation 1997 ; Cho et al., GRU, 2014 — 1406.1078Portes = chemin additif pour le gradient (Théorème 2)
TransformerVaswani 2017 (L25) ; Dosovitskiy, ViT, 2021 — 2010.11929Sans biais spatial : exige des données ou un pré-entraînement
GNNKipf & Welling, GCN, ICLR 2017 — 1609.02907 ; Xu et al., How Powerful are GNNs? (GIN), ICLR 2019 — 1810.00826Théorème 3 (borne WL)
VAEKingma & Welling, Auto-Encoding Variational Bayes, ICLR 2014 — 1312.6114ELBO + reparamétrisation
GANGoodfellow et al., Generative Adversarial Nets, NeurIPS 2014 — 1406.2661 ; Karras et al., StyleGAN, 2019Jeu min-max ; instabilité et effondrement des modes
DiffusionHo et al., DDPM, NeurIPS 2020 — 2006.11239 ; Rombach et al., Latent Diffusion (Stable Diffusion), CVPR 2022 — 2112.10752Théorème 4 ; diffuser dans un espace latent compressé
ContrastifChen et al., SimCLR, ICML 2020 — 2002.05709 ; Radford et al., CLIP, 2021 — 2103.00020Représentations sans étiquettes ; alignement image-texte
SSMGu et al., S4, ICLR 2022 — 2111.00396 ; Gu & Dao, Mamba, 2023 — 2312.00752Récurrence linéaire stable + sélectivité
MoEShazeer et al., Outrageously Large Neural Networks, ICLR 2017 — 1701.06538 ; Fedus et al., Switch Transformer, 2021 — 2101.03961Paramètres ≫ calcul par token ; équilibrage du routage
TableauxGrinsztajn et al., Why do tree-based models still outperform deep learning on tabular data?, NeurIPS 2022 — 2207.08815Le biais inductif des arbres convient aux données hétérogènes

TP guidé

TP — Même tâche, quatre familles (5 h)

Exercices

Exercices auto-corrigés

Exercice 1 — Champ réceptif et paramètres

Écrivez champ_receptif(couches) pour une liste de (noyau k, stride s) : taille du champ réceptif de la dernière sortie (formule r = rℓ−1 + (k − 1)·Πi<ℓ si), et parametres_cnn(canaux, k) pour une pile de convolutions k×k avec la liste des canaux (biais inclus).

Correction
def champ_receptif(couches):
    r, saut = 1, 1
    for k, s in couches: r += (k - 1) * saut; saut *= s
    return r
def parametres_cnn(canaux, k): return sum(k * k * ci * co + co for ci, co in zip(canaux, canaux[1:]))

Exercice 2 — Cellule GRU et mémoire

Implémentez gru_pas(h, x, P) (formules de la fiche, P = dict de matrices Wz, Wr, W agissant sur [h, x]) et vérifiez : avec z forcée près de 0 (biais très négatif sur Wz), l’état est conservé sur 100 pas ; avec z ≈ 1, l’état est réécrit à chaque pas.

Correction
def gru_pas(h, x, P):
    sig = lambda v: 1 / (1 + np.exp(-v)); hx = np.concatenate([h, x, [1.0]])
    z = sig(P["Wz"] @ hx); r = sig(P["Wr"] @ hx)
    h_tilde = np.tanh(P["W"] @ np.concatenate([r * h, x, [1.0]]))
    return (1 - z) * h + z * h_tilde

Exercices

Exercices auto-corrigés (suite)

Exercice 3 — Test de Weisfeiler-Lehman

Implémentez wl_couleurs(adj, k) : k raffinements des couleurs des nœuds (couleur initiale = degré ; nouvelle couleur = hachage de (couleur, multi-ensemble trié des couleurs des voisins)), renvoyant l’histogramme final des couleurs. Vérifiez que deux hexagones disjoints et un cycle de 12 sont indistinguables (même histogramme) alors qu’un cycle de 6 et un chemin de 6 le sont.

Correction
def wl_couleurs(adj, k=3):
    col = {v: ("d", len(adj[v])) for v in adj}
    for _ in range(k):
        col = {v: (col[v], tuple(sorted(col[u] for u in adj[v]))) for v in adj}
    return Counter(col.values())

Exercice 4 — Bruitage de diffusion

Écrivez abar(betas) (produit cumulé des 1 − βt) et bruiter(x0, t, betas, eps) = √ᾱt x₀ + √(1 − ᾱt) ε ; vérifiez que la variance de xt pour x₀ de variance 1 reste 1 (conservation) et que le rapport signal/bruit décroît vers 0.

Correction
def abar(betas): return np.cumprod(1 - betas)
def bruiter(x0, t, betas, eps): a = abar(betas)[t]; return np.sqrt(a) * x0 + np.sqrt(1 - a) * eps

Fiche de cours · Exercices corrigés

Exercices corrigés (rédaction)

Exercice 1. Pour classer 2 000 photos de pièces mécaniques en 5 classes, un stagiaire propose un ViT entraîné from scratch. Argumenter.
Correction. Un ViT n’a aucun biais spatial (Théorème 1 en négatif) : il doit apprendre la localité et l’invariance par translation à partir des données, ce qui demande ~10⁶ images (Dosovitskiy 2021) ; avec 2 000 images, il sur-apprendra. Options par ordre de préférence : (1) CNN pré-entraîné (ResNet-50, ConvNeXt) affiné avec augmentation — le biais convolutif + le pré-entraînement ImageNet donnent typiquement 90 %+ avec 400 images par classe ; (2) plongements d’un modèle auto-supervisé (DINOv2, un ViT pré-entraîné) + régression logistique — souvent aussi bon et 10× plus rapide à entraîner ; (3) ViT pré-entraîné affiné si (1) plafonne. « From scratch » est exclu par la courbe d’apprentissage attendue (L13) ; le prouver en 30 minutes : entraîner (1) et le ViT from scratch sur 10 %, 50 %, 100 % des données.
Exercice 2. Un flux de capteurs à 1 kHz doit être analysé en continu sur un microcontrôleur pour détecter une anomalie, avec une mémoire de 100 Ko. Transformer, GRU ou CNN 1D ?
Correction. Contraintes : streaming (une décision par échantillon ou par bloc), mémoire minuscule, calcul borné (L18). Transformer : coût O(n²) et cache KV croissant avec la fenêtre — inadapté. GRU : état de taille d fixe (quelques Ko), O(d²) par pas, causal par construction, latence nulle — le candidat naturel ; risque : mémoire pratique ~100 pas, suffisante pour des anomalies courtes. CNN 1D causal (dilaté, type WaveNet/TCN) : champ réceptif fixe (exercice 1), calcul parallèle sur un bloc, poids partagés (peu de paramètres), quantifiable en int8 — très bon aussi, et souvent plus stable à entraîner. Choix : TCN causal léger si les motifs ont une durée bornée connue ; GRU si la dépendance est de longueur variable. Dans les deux cas : quantification int8, virgule fixe, et validation du WCET.
Exercice 3. Pourquoi les modèles de diffusion ont-ils supplanté les GAN pour la génération d’images malgré un coût d’échantillonnage 10–50× supérieur ?
Correction. Le GAN optimise un jeu min-max sans objectif scalaire monotone : instabilités, effondrement des modes (le générateur ne couvre qu’une partie de la distribution), réglages fragiles ; la diffusion optimise une régression (Théorème 4), stable, avec une perte qui suit l’entraînement et couvre tous les modes (elle maximise une borne de la vraisemblance). Elle est aussi facilement conditionnable (texte, via attention croisée) et modulaire (guidance sans classifieur). Le coût d’échantillonnage a été réduit par la diffusion latente (Stable Diffusion : diffuser en 64×64×4 au lieu de 512×512×3), les solveurs à peu de pas (DDIM, DPM-Solver : 20 pas), la distillation (1–4 pas) — jusqu’à rejoindre le GAN en vitesse. Le GAN garde une niche : génération en un passage, très basse latence (super-résolution temps réel).

Vérification

Pourquoi un CNN apprend-il des images avec 100× moins de données qu’un MLP ?

Deux questions supplémentaires

1. Que borne le test WL pour les GNN ? Le pouvoir de distinction : deux graphes WL-équivalents ont les mêmes représentations quel que soit le GNN par passage de messages.

2. Pourquoi les LSTM ont-ils des portes ? Pour créer un chemin additif où le gradient n’est pas multiplié par W à chaque pas (Théorème 2).

Référence

Les mots à retenir

MotDéfinition
Biais inductifHypothèse structurelle codée dans l’architecture ; économise des données.
Équivariancef(g·x) = g·f(x) ; convolution ↔ translation, GNN ↔ permutation.
Champ réceptifPortée des entrées influençant une sortie.
Portes (LSTM/GRU)Chemin additif contre l’évanouissement du gradient.
Passage de messagesAgrégation des voisins ; borné par Weisfeiler-Lehman.
ELBOBorne variationnelle ; VAE et diffusion.
DiffusionApprendre à débruiter ; régression stable ; génération par inversion.
SSM / MoERécurrence linéaire sélective / experts routés.

Suite

Tout modèle se juge. Le chapitre le plus long de la partie : les métriques.

Classification, régression, classement, génération de texte, RAG, prompts, agents, calibration, robustesse, équité, coût : comment mesurer, comment se tromper, comment lire un classement public.

← L30SommaireL32 : métriques →