Fiche de révision : MLP, gradients et fonctions de perte

Plan du Cours

  1. Autograd et graphes de calcul
  2. MLP et fonctions d’activation
  3. Disparition des gradients
  4. Approximation universelle et limites
  5. Activations de sortie et pertes
  6. Softmax et entropie croisée
  7. Paramètres et profondeur des réseaux
  8. Modules PyTorch et entraînement

1. Autograd et graphes de calcul

Notions clés & Définitions

  • Autograd : Paszke et al., Automatic differentiation in pytorch, 2017 — Autograd construit dynamiquement le graphe des opérations tensorielles afin de calculer automatiquement les gradients par rapport aux tenseurs impliqués.

★ À maîtriser

📌 Un tenseur ne construit le graphe nécessaire aux gradients que si son champ requires_grad vaut True, et le résultat d’une opération possède ce champ à True dès qu’un de ses opérandes le possède.

  • Tensor.backward() calcule les gradients et les accumule dans le champ grad des tenseurs feuilles du graphe.

Compléments

📌 Seuls les tenseurs de type flottant peuvent demander le calcul de gradients dans PyTorch.

📌 La méthode detach() crée un tenseur partageant les données mais déconnecté du graphe courant, ce qui empêche la propagation des gradients au-delà de cette variable.

Astuce mémo

Opérations → graphe dynamique → gradients

2. MLP et fonctions d’activation

Notions clés & Définitions

  • Perceptron multicouche : Le perceptron multicouche est une cascade de transformations affines suivies de fonctions d’activation, produisant une sortie à partir de l’entrée et de paramètres de poids et de biais.

★ À maîtriser

📐 Formule — Dans un MLP, chaque couche calcule hk=σ(WkThk−1+bk)h_k = \sigma(W_k^T h_{k-1}+b_k).

📌 Une activation linéaire rend la composition de toutes les couches affine, même si le réseau comporte un nombre quelconque de couches cachées.

Compléments

  • Les fonctions d’activation classiques sont la tangente hyperbolique et la fonction logistique, tandis que la ReLU est définie par ReLU⁡(x)=max⁡(0,x)\operatorname{ReLU}(x)=\max(0,x).

Astuce mémo

Activation linéaire : affine ; activation non linéaire : expressivité

3. Disparition des gradients

Notions clés & Définitions

  • Disparition des gradients : La disparition des gradients est le phénomène par lequel les gradients des couches éloignées de la sortie deviennent très petits, ralentissant ou bloquant l’apprentissage par descente de gradient stochastique.

★ À maîtriser

📐 Formule — La dérivée de la fonction sigmoïde vérifie σ′(x)=σ(x)(1−σ(x))\sigma'(x)=\sigma(x)(1-\sigma(x)) et satisfait 0≤σ′(x)≤140\leq \sigma'(x)\leq \frac{1}{4}.

  • Dans un réseau profond à activation bornée, la règle de la chaîne multiplie plusieurs poids et dérivées bornées, de sorte que le gradient décroît exponentiellement avec le nombre de couches.

Compléments

📌 La ReLU a une dérivée égale à 0 si son entrée est négative et à 1 si son entrée est positive, tandis qu’une leaky ReLU conserve une petite pente positive pour les entrées négatives.

Astuce mémo

Petites dérivées répétées → gradient qui s’annule

4. Approximation universelle et limites

Notions clés & Définitions

  • Approximation universelle : Le théorème d’approximation universelle affirme qu’un réseau à une couche cachée peut approximer arbitrairement bien toute fonction continue sur un hypercube compact avec suffisamment de neurones et une activation continue, bornée et non constante.

★ À maîtriser

📐 Formule — Pour une fonction cible f, un réseau peut construire F(x)=∑i=1qviσ(wiTx+bi)F(x)=\sum_{i=1}^{q}v_i\sigma(w_i^Tx+b_i) tel que sup⁡x∈Id∣f(x)−F(x)∣<ϵ\sup_{x\in I^d}|f(x)-F(x)|<\epsilon.

📌 L’erreur d’un modèle profond se décompose en erreur d’approximation, erreur d’estimation et erreur d’optimisation.

Compléments

  • Le théorème se généralise aux activations non polynomiales, éventuellement non bornées, notamment la ReLU. — Leshno et al., 1993

Astuce mémo

Approximation théorique ≠ optimisation pratique

5. Activations de sortie et pertes

★ À maîtriser

  • Une régression linéaire utilise une activation de sortie linéaire, tandis qu’une régression logistique utilise une activation sigmoïde.

  • Pour une classification binaire, la sortie utilise une activation logistique, tandis que pour une classification multiclasses elle utilise une activation softmax.

  • La MSE et la MAE sont conceptuellement inadaptées à la classification, car elles traitent les indices de classes comme des valeurs numériques ordonnées.

Compléments

📐 Formule — La perte d’erreur quadratique moyenne est L(y,y^)=1m∑i=1m(yi−y^i)2L(y,\hat y)=\frac{1}{m}\sum_{i=1}^{m}(y_i-\hat y_i)^2 et la perte absolue moyenne est L(y,y^)=1m∑i=1m∣yi−y^i∣L(y,\hat y)=\frac{1}{m}\sum_{i=1}^{m}|y_i-\hat y_i|.

Astuce mémo

Régression : valeur ; classification : probabilité

6. Softmax et entropie croisée

★ À maîtriser

📐 Formule — La probabilité softmax de la classe i est P(y=i∣z)=ezi∑j=0C−1ezjP(y=i\mid z)=\frac{e^{z_i}}{\sum_{j=0}^{C-1}e^{z_j}}.

📌 Une prédiction soft-label est un vecteur de probabilités de taille C, tandis qu’un hard-label est l’indice de la classe ayant la probabilité maximale.

📐 Formule — L’entropie croisée de deux distributions p et q est L(p,q)=−∑kp(k)log⁡(q(k))L(p,q)=-\sum_k p(k)\log(q(k)) avec la convention 0log⁡(0)=00\log(0)=0.

Compléments

  • L’encodage one-hot transforme chaque étiquette de classe en un vecteur contenant 1 à la position de la classe et 0 à toutes les autres positions.

📌 Pour stabiliser numériquement la softmax, on soustrait le maximum des logits avant l’exponentiation, ce qui ne change pas les probabilités finales.

Astuce mémo

Logits → softmax → distribution de classes

7. Paramètres et profondeur des réseaux

★ À maîtriser

  • Pour une couche de K unités recevant K_prev entrées, le nombre de paramètres entraînables est K(Kprev+1)K(K_{prev}+1), biais compris.

📐 Formule — Pour l’exemple donné, avec 6 variables, 3, 5 et 4 unités cachées et 3 classes, le réseau possède 3(6+1)+5(3+1)+4(5+1)+3(4+1)=803(6+1)+5(3+1)+4(5+1)+3(4+1)=80 paramètres entraînables.

  • Les réseaux plus profonds et plus larges ont amélioré les performances dans de nombreuses applications, mais exigent un contrôle de l’amplitude et de l’homogénéité des gradients.

Compléments

  • Le phénomène de double descente décrit une baisse de l’erreur de test après le seuil d’interpolation lorsque le nombre de paramètres continue d’augmenter. — Belkin et al., Reconciling modern machine-learning practice and the classical bias-variance trade-off, 2019

Astuce mémo

Entrée → couches cachées → sortie

8. Modules PyTorch et entraînement

Notions clés & Définitions

  • torch.nn : torch.nn regroupe des fonctions de perte et des composants de réseaux qui encapsulent les paramètres à optimiser pendant l’entraînement.

★ À maîtriser

📌 nn.CrossEntropyLoss attend des logits bruts non normalisés en entrée et des indices entiers de classes comme cibles, car elle applique LogSoftmax en interne.

📌 Appliquer manuellement une softmax avant nn.CrossEntropyLoss est une erreur courante qui dégrade l’apprentissage du modèle.

Compléments

  • nn.MSELoss calcule la perte d’erreur quadratique moyenne, tandis que nn.CrossEntropyLoss calcule la perte d’entropie croisée pour la classification.

Astuce mémo

CrossEntropyLoss : logits bruts, pas probabilités

Tableaux de synthèse

Activations et usages

ActivationPropriétéUsage ou risque
LinéaireComposition affineRégression
Sigmoïde / tanhDérivée bornéeDisparition des gradients
ReLUDérivée 0 ou 1Réseaux profonds, unités mortes
SoftmaxDistribution de probabilitésClassification multiclasses

Teste tes connaissances

Teste tes connaissances sur MLP, gradients et fonctions de perte avec 11 questions à choix multiples et corrections détaillées.

1. Quel mécanisme décrit le mieux le fonctionnement d’Autograd lors du calcul des dérivées de tenseurs ?

2. Un tenseur xx intervient dans une opération avec un autre tenseur dont requires_grad=True\texttt{requires\_grad}=\texttt{True}. Quelle valeur prend le champ requires_grad\texttt{requires\_grad} du résultat de cette opération ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de MLP, gradients et fonctions de perte avec 11 flashcards interactives.

Qu'est-ce qu'Autograd selon Paszke et al., 2017 ?

Autograd construit dynamiquement le graphe des opérations tensorielles pour calculer automatiquement les gradients.

Que fait Tensor.backward() dans PyTorch ?

Il calcule les gradients et les accumule dans le champ grad des tenseurs feuilles.

Qu'est-ce qu'un perceptron multicouche ?

Une cascade de transformations affines suivies de fonctions d’activation.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches