Les réseaux de neurones
Une fonction de ℝⁿ dans ℝᵐ apprise par correction d'erreur. De la boîte noire au perceptron, de la sigmoïde à la rétropropagation.
Le prof d'IA a annoncé que le partiel ne porte que sur CM2 Convnet · CM3 RNN · CM4 Renforcement · CM5 NLP. Ce chapitre est conservé comme base théorique mais peut être passé en révision — focus sur les 4 CMs au programme.
📄 Ressources du cours
🎥 Vidéos recommandées
-
🇫🇷
Intelligence Artificielle [12.13] : Apprentissage automatique - exemple de réseau de neurones
Hugo Larochelle · 12:59 · 120k vues — AboutPressCopyrightContact usCreatorsAdvertiseDevelopersTermsPrivacyPolicy & SafetyHow YouTube worksTest new featuresNFL Sunday Ticket · © 2024 Google LLC
-
🇫🇷
RÉSEAU DE NEURONES (2 COUCHES) - DEEP LEARNING 7
Machine Learnia · 24:29 · 86k vues — Pour développer un réseau de neurone artificiel à 2 couches, il suffit de créer plusieurs modelés de neurones artificiels, en les organisant en couches, et e...
-
🇬🇧
What is backpropagation really doing? | Deep learning, chapter 3
3Blue1Brown · 13:54 · 2,0M vues — What's actually happening to a neural network as it learns? Next video: https://youtu.be/tIeHLnjs5U8 Brought to you by you: http://3b1b.co/nn3-thanks And by
1. Qu'est-ce qu'un RN ?
Notations : entrées $(x_1, \ldots, x_n)$ et sorties $(\hat{y}_1, \ldots, \hat{y}_m)$.
Étant donné une instance $X = (x_1, \ldots, x_n)$, le RN calcule une valeur $f(X) \in \mathbb{R}^m$.
→ $n$ entrées, $m$ sorties dont la signification est immédiate.
Étant donné $X$, le RN détermine sa classe dans $\{C_1, \ldots, C_m\}$.
→ $n$ entrées, nombre de sorties dépend de $m$.
Un RN est utilisé en apprentissage supervisé, aussi bien en classification qu'en régression.
2. Architecture interne
Un RN se compose d'une suite de couches :
- Couche d'entrée — introduit les données dans le réseau
- Couches cachées — reçoivent les entrées de la précédente, font des calculs, transmettent à la suivante
- Couche de sortie — fait les derniers calculs et transmet les résultats à l'extérieur
Un RN feedforward totalement connecté à 4 couches.
• Sens unique de circulation → réseau qualifié de feedforward.
• Chaque neurone de la couche $l+1$ est connecté à chaque neurone de la couche $l$ → totalement connecté (fully connected).
3. Zoom sur le neurone
Un neurone est une unité de calcul. Voici son fonctionnement :
- Il reçoit en entrée $n_1$ valeurs $x_1, \ldots, x_{n_1}$ issues d'autres neurones.
- Il a $n_1$ poids $w_i$ et un biais $b$ qui lui sont propres.
- Il calcule la valeur $z = \sum_i w_i \cdot x_i + b$.
- Il calcule sa sortie $y = g(z)$ où $g$ est la fonction d'activation.
Notations formelles à mémoriser
| Symbole | Signification |
|---|---|
| $L$ | Nombre de couches (1 = entrée, $L$ = sortie) |
| $n_l$ | Nombre de neurones de la couche $l$ |
| $(l, j)$ | Position d'un neurone : couche $l$, indice $j$ |
| $w_{jk}^l$ | Poids de la connexion entre $(l-1, k)$ et $(l, j)$ |
| $b_j^l$ | Biais du neurone $(l, j)$ |
| $x_j^{(l)}$ | Sortie du neurone $(l, j)$ — pour $l = L$ : $x_j^{(L)} = \hat{y}_j$ |
| $z_j^{(l)}$ | Somme pondérée du neurone $(l, j)$ (weighted input) |
Formule fondamentale
$$z_j^{(l)} = \sum_k w_{jk}^{(l)} \cdot x_k^{(l-1)} \qquad x_j^{(l)} = g_l(z_j^{(l)})$$4. Premiers exemples · OR, AND, XOR
Le RN pour le OU logique
Entrée : 2 valeurs binaires $x_1, x_2$. Sortie : $y = x_1 \vee x_2$. 2 neurones d'entrée, 1 neurone de sortie, sans couche cachée.
Sortie : $h(w_1 x_1 + w_2 x_2 + b)$ avec $h$ = fonction de Heaviside :
Il existe une infinité de droites qui séparent les points $y=0$ des points $y=1$.
Perceptron · séparabilité linéaire
Une fonction $f : \mathbb{R}^n \to \{0,1\}$ peut être représentée par un perceptron si et seulement si elle est linéairement séparable.
Le XOR — pourquoi il faut une couche cachée
La fonction XOR n'est pas linéairement séparable. Solution : un RN avec une couche cachée à 2 neurones.
Les ⬤ verts = sortie 1, les ⬤ rouges = sortie 0. Sur la dernière case, aucune droite ne peut séparer les verts des rouges — XOR exige une couche cachée.
La couche cachée transforme $(x_1, x_2)$ en $(y_1, y_2)$ : c'est une nouvelle représentation où les points deviennent linéairement séparables. Choix possible : $y_1 = x_1 \vee x_2$, $y_2 = x_1 \wedge x_2$.
5. Paramètres vs hyperparamètres
Le nombre de neurones en entrée et en sortie n'est pas un vrai hyperparamètre :
- Couche d'entrée = nombre de variables indépendantes.
- Couche de sortie = se déduit du nombre de variables dépendantes.
Couches de sortie — règles
| Problème | Nb neurones sortie | Interprétation |
|---|---|---|
| Régression (1 ou plusieurs sorties) | $m$ = nb variables à prédire | Valeurs réelles |
| Classification binaire | 1 | Probabilité d'une classe de référence |
| Multi-classes / multi-étiquettes | $m$ = nb de classes | Probabilité de chaque classe |
6. Fonctions d'activation
Sortie binaire. Inconvénients : ne peut exprimer une probabilité, non continue en 0 (donc non dérivable).
Version « lissée » de Heaviside.
Continue + dérivable + valeurs entre 0 et 1 → interprétables comme probabilités.
Utilisée en couche de sortie en classif binaire et dans les couches cachées.
Simple, usage limité. Typiquement couche de sortie en régression.
Mêmes propriétés que sigmoïde, mais valeurs entre $-1$ et $1$, centrée sur 0.
Utilisée dans les couches cachées.
Cas particulier · couche Softmax
Utilisée comme fonction d'activation de la couche de sortie en multi-classification à $m$ classes. Pour chaque neurone $j$ :
Particularité : chaque neurone a accès aux $z_i$ des autres → on parle de couche Softmax plutôt que de simple fonction d'activation.
7. Apprentissage par correction d'erreur
On dispose de $D = \{(X_k, Y_k), k=1,\ldots,K\}$. But : trouver poids et biais permettant, pour l'entrée $X_k$, de produire une sortie aussi proche que possible de $Y_k$.
Schéma général
- Initialiser les poids et biais de manière aléatoire.
-
Tant que le critère d'arrêt n'est pas atteint :
- Pour chaque exemple $(X, Y) \in D$ :
- Calculer la sortie $\hat{y}$
- Calculer l'erreur en comparant $Y$ et $\hat{y}$
- Ajuster les poids et biais pour réduire l'erreur
- Pour chaque exemple $(X, Y) \in D$ :
Trois choix à faire pour passer du schéma à un algorithme :
- Comment calculer l'erreur ? → fonctions de perte (loss)
- Comment ajuster les poids et biais ? → algorithme d'optimisation
- Quel critère d'arrêt ? → lié à la convergence de l'optimiseur
Règle du Delta — cas simple
Cadre : RN sans couches cachées, fonction d'activation linéaire.
Erreur sur l'exemple $k$ · erreur globale
$$E_k = \tfrac{1}{2} \sum_j (y_{kj} - \hat{y}_{kj})^2 = \tfrac{1}{2}\, \|Y_k - \hat{y}_k\|^2 \qquad E = \sum_k E_k$$$E$ est une fonction quadratique des poids et biais → on la minimise par descente de gradient :
Convergence assurée car la fonction à minimiser est quadratique → minimum unique.
Critères d'arrêt possibles : $E < E_{\max}$ · valeurs successives quasi-identiques (paramètre $\varepsilon$) · idem pour l'erreur · nombre d'itérations max. Combinables.
Rétropropagation — cas général
Généralisation sur 3 axes :
- nombre de couches quelconque
- fonction d'activation quelconque
- fonction de perte quelconque
Fonctions de perte (loss functions)
| Nom | Formule | Usage |
|---|---|---|
| Erreur quadratique (moindres carrés) | $\tfrac{1}{2} \sum_j (y_j - \hat{y}_j)^2$ | Régression |
| BCE (binary cross-entropy) | $-(y \log \hat{y} + (1-y) \log(1-\hat{y}))$ | Classification binaire |
| CCE (categorical cross-entropy) | $-\sum_j y_j \log \hat{y}_j$ | Multi-classification (Y one-hot) |
Algorithme de rétropropagation
Le principe reste celui de la descente de gradient. L'application se fait couche par couche, de droite à gauche → d'où le nom « rétropropagation ».
- Initialiser $W$ et $B$ aléatoirement.
-
Tant que le critère d'arrêt n'est pas atteint :
- Pour $k = 1, \ldots, n$ :
- Mettre $X_k$ à l'entrée du RN
- Feedforward · Pour $l = 2 \to L$ : calculer les sorties de la couche $l$
- La sortie de la couche $L$ est $\hat{y}_k$ ; calculer l'erreur $E$ avec $Y_k$ et $\hat{y}_k$
- Rétropropagation · Pour $l = L \to 1$ :
- Calculer $\delta_j^l$ (dépend des $\delta_i^{l+1}$)
- Calculer $\partial E / \partial w_{jk}^l$ et $\partial E / \partial b_j^l$
- Mettre à jour $w_{jk}^l$ et $b_j^l$
- Pour $k = 1, \ldots, n$ :
3 versions selon le moment de mise à jour
À chaque itération, calcul d'une erreur globale sur tous les exemples avant mise à jour.
À chaque itération, un exemple est choisi aléatoirement, calculs + mise à jour effectués.
Compromis : mise à jour tous les $mb$ exemples ($mb$ = taille du mini-batch).
★ Réviser le chapitre
Pour vérifier ta compréhension
Pourquoi le XOR n'est-il pas représentable par un perceptron simple ?
Parce qu'il n'est pas linéairement séparable. Un perceptron est, par définition, un RN sans couche cachée à un seul neurone Heaviside : il ne peut représenter que les fonctions $f : \mathbb{R}^n \to \{0,1\}$ telles qu'un hyperplan sépare les points $f = 1$ des points $f = 0$. Or, dans le plan $(x_1, x_2)$, les points $(0,0)$ et $(1,1)$ (sortie 0) et les points $(0,1)$ et $(1,0)$ (sortie 1) ne peuvent être séparés par une seule droite.
Quelle fonction d'activation choisir pour la couche de sortie en multi-classification ?
La couche Softmax. Elle donne des sorties entre 0 et 1 dont la somme vaut 1 — interprétables comme probabilités. Particularité : chaque neurone a accès aux $z_i$ des autres neurones.
Différence entre paramètres et hyperparamètres ?
Les paramètres sont les poids et biais : appris par l'algorithme. Les hyperparamètres sont fixés par le concepteur (nb de couches, nb de neurones par couche, fonctions d'activation, taux d'apprentissage…). On n'a pas la main sur les premiers, on doit faire des choix pour les seconds.
Pourquoi la règle du Delta converge-t-elle toujours, et pas la rétropropagation ?
La règle du Delta s'applique au cas RN sans couche cachée + activation linéaire. Dans ce cas, l'erreur $E$ est quadratique en les poids → minimum unique, descente de gradient converge. Pour un RN profond avec activations non linéaires, $E$ peut avoir plusieurs minima locaux et la rétropropagation peut s'y bloquer.
Que signifie « totalement connecté » et « feedforward » ?
Totalement connecté : chaque neurone de la couche $l+1$ est connecté à chaque neurone de la couche $l$. Feedforward : sens de circulation unique des données (couche d'entrée → couche de sortie, jamais de retour). Ce sont les deux propriétés fondamentales du RN standard.
🃏 Flashcards éclair
Clique pour retourner.
Définition mathématique
Qu'est-ce qu'un RN au sens math ?
tourne →Calcul d'un neurone
Sortie en fonction de $x$, $w$, $b$, $g$ ?
tourne →z = Σ_i w_i · x_i + b
y = g(z)Heaviside
Définition de la fonction.
tourne →Inconvénient : non dérivable en 0.
Perceptron — définition
3 propriétés.
tourne →② Couche de sortie à 1 seul neurone
③ Activation = Heaviside
Théorème central
Quand peut-on représenter $f$ par un perceptron ?
tourne →Sigmoïde
Formule + propriétés.
tourne →Continue, dérivable, valeurs ∈ [0,1] → probabilités.
Tanh
Formule + usage.
tourne →Valeurs ∈ [-1, 1], centrée sur 0. Couches cachées.
Softmax
Formule sortie $\hat{y}_j$.
tourne →ŷ_j = exp(z_j) / Σ_i exp(z_i)Couche sortie classif binaire
Combien de neurones ? Activation ?
tourne →BCE
Formule pour 1 exemple.
tourne →BCE = -(y · log(ŷ)
+ (1-y) · log(1-ŷ))CCE
Formule pour 1 exemple, Y one-hot.
tourne →CCE = -Σ_j y_j · log(ŷ_j)Descente de gradient
Formule de mise à jour.
tourne →W_{t+1} = W_t - η · ∇E(W_t)3 versions de la rétropropagation
Différence ?
tourne →Stochastique : un exemple aléatoire
Mini-batch : tous les $mb$ exemples
Pourquoi le delta de la règle du Delta converge ?
Raison mathématique.
tourne →✎ Quiz éclair
📌 À retenir
- RN = fonction de ℝⁿ dans ℝᵐ, apprentissage supervisé
- Architecture : entrée → cachées → sortie ; feedforward + totalement connecté
- Neurone : $z = \Sigma w_i x_i + b$, $y = g(z)$
- Notations : $w_{jk}^l$, $b_j^l$, $z_j^{(l)}$, $x_j^{(l)}$
- Perceptron = sans couche cachée + 1 sortie + Heaviside
- Perceptron représente $f$ ⇔ $f$ linéairement séparable
- XOR non linéairement séparable → couche cachée obligatoire
- Activations : Heaviside, Sigmoïde $\sigma$, Linéaire, Tanh, Softmax
- Classif binaire : 1 neurone sigmoïde · Multi : $m$ softmax · Régression : $m$ linéaires
- Hyperparamètres = choix du concepteur, paramètres = poids/biais appris
- Loss : MSE (régression), BCE (binaire), CCE (multi)
- Descente de gradient : $W_{t+1} = W_t - \eta \nabla E$
- Règle du Delta : $\delta_j = (y_j - \hat{y}_j)$ — converge car $E$ quadratique
- Rétropropagation : couche par couche, de droite à gauche
- 3 versions SGD : batch · stochastique · mini-batch