Fiche d’exercices 10
Fiche d’exercices — Séance 10 : les réseaux de neurones
Introduction au ML – Dr. El Hadji Bassirou TOURÉ – DMI \(\cdot\) FST \(\cdot\) UCAD \(\bullet\) Travail à la main, sans machine
Cette fiche reprend, exercice par exercice, les calculs de la Séance 10 : le neurone et la couche sous forme matricielle, la propagation avant, le décompte des paramètres, la nécessité d’une activation non linéaire, un pas complet de rétropropagation, puis le verdict face aux ensembles. Répondre directement sur la fiche.
Aides numériques (valables pour toute la fiche). Sigmoïde : \(\sigma(z)=1/(1+e^{-z})\) ; \(\sigma(-4{,}5)=0{,}011\) ; \(\sigma(-1)=0{,}269\) ; \(\sigma(-0{,}85)=0{,}30\) ; \(\sigma(0)=0{,}5\) ; \(\sigma(1)=0{,}731\) ; \(\sigma(1{,}5)=0{,}818\) ; \(\sigma(4{,}5)=0{,}989\). ReLU : \(\max(0,z)\). Dérivées : \(\sigma'(z)=a(1-a)\) avec \(a=\sigma(z)\) ; \(\text{ReLU}'(z)=1\) si \(z>0\), \(0\) sinon. \(\ln 0{,}731=-0{,}313\) ; \(\ln 0{,}3=-1{,}204\). Rétropropagation (sortie sigmoïde, entropie croisée) : \(\delta^{[L]}=\hat y-y\) ; \(\ \boldsymbol\delta^{[\ell]}=(W^{[\ell+1]})^{\top}\boldsymbol\delta^{[\ell+1]}\odot f'(\mathbf z^{[\ell]})\) ; \(\ \partial L/\partial W^{[\ell]}=\boldsymbol\delta^{[\ell]}(\mathbf a^{[\ell-1]})^{\top}\) ; \(\ \partial L/\partial \mathbf b^{[\ell]}=\boldsymbol\delta^{[\ell]}\) ; mise à jour \(w\leftarrow w-\eta\,\partial L/\partial w\).
Exercice 1 – Le neurone à la main
Un neurone à trois entrées a les poids \(\mathbf w = (0{,}5;\ -1;\ 1)\) et le biais \(b = -1\).
- Pour \(\mathbf x = (3;\ 1;\ 2)\), calculer \(z = \mathbf w^{\top}\mathbf x + b\) terme à terme, puis la sortie avec la sigmoïde et avec ReLU.
Espace de calcul :
\(z=\) \(\sigma(z)=\) ReLU\((z)=\)
- Même question pour \(\mathbf x = (1;\ 4;\ 0)\).
Espace de calcul :
\(z=\) \(\sigma(z)=\) ReLU\((z)=\)
- Un neurone à sortie sigmoïde, sans couche cachée : à quel modèle déjà vu est-il identique ?
Exercice 2 – Une couche, sous forme matricielle
Une couche de deux neurones reçoit trois entrées. Chaque ligne de \(W\) contient les poids d’un neurone : \[W = \begin{pmatrix} 1 & -1 & 0{,}5\\ 0 & 2 & -1\end{pmatrix},\qquad \mathbf b = \begin{pmatrix} 0\\ -1\end{pmatrix},\qquad \mathbf x = \begin{pmatrix} 2\\ 1\\ 4\end{pmatrix}.\]
Quelles sont les dimensions de \(W\), \(\mathbf x\), \(\mathbf b\) et \(\mathbf z\) ?
Calculer \(\mathbf z = W\mathbf x + \mathbf b\) ligne par ligne, puis \(\mathbf a = \text{ReLU}(\mathbf z)\).
Espace de calcul :
\(\mathbf z =\) \(\mathbf a =\)
- On veut ajouter un troisième neurone à la couche. Que faut-il ajouter à \(W\) et à \(\mathbf b\) ?
Exercice 3 – La propagation avant d’un réseau 2–2–1
Couche cachée (ReLU) : \(W^{[1]} = \begin{pmatrix} 1 & 0{,}5\\ -1 & 1\end{pmatrix}\), \(\mathbf b^{[1]} = (0;\ 0{,}5)\). Couche de sortie (sigmoïde) : \(W^{[2]} = (1;\ -2)\), \(b^{[2]} = -1\). Entrée \(\mathbf x = (2;\ 2)\), cible \(y = 1\).
- Calculer \(\mathbf z^{[1]}\) et \(\mathbf a^{[1]}\).
Espace de calcul :
\(\mathbf z^{[1]}=\) \(\mathbf a^{[1]}=\)
- Calculer \(z^{[2]}\), la prédiction \(\hat y\) et la perte \(L = -\ln\hat y\).
Espace de calcul :
\(z^{[2]}=\) \(\hat y=\) \(L=\)
Exercice 4 – Compter les paramètres
- Un réseau a \(8\) entrées, une première couche cachée de \(16\) neurones, une seconde de \(8\), et \(1\) sortie. Donner la taille de chaque matrice de poids et compter les paramètres.
| couche | taille de \(W\) | nombre de poids | nombre de biais | total |
|---|---|---|---|---|
| \(1\) | ||||
| \(2\) | ||||
| \(3\) (sortie) | ||||
| total du réseau |
- Un réseau \(5\)–\(6\)–\(1\) et une régression logistique sur les mêmes \(5\) variables : combien de paramètres chacun ? Qu’en conclure sur le risque de sur-apprentissage ?
Espace de calcul :
réseau : logistique :
Exercice 5 – Pourquoi une activation non linéaire ?
Deux couches sans activation : \(\mathbf a^{[1]} = W^{[1]}\mathbf x\) puis \(\hat y = W^{[2]}\mathbf a^{[1]}\), avec \(W^{[1]} = \begin{pmatrix} 1 & 0\\ 2 & 1\end{pmatrix}\), \(W^{[2]} = (3;\ -1)\), \(\mathbf x = (2;\ 3)\).
- Calculer \(\hat y\) en passant par les deux couches.
Espace de calcul :
- Calculer \(W_{\text{eq}} = W^{[2]}W^{[1]}\) puis \(W_{\text{eq}}\mathbf x\). Conclure.
Espace de calcul :
- Calculer \(\sigma'\) pour \(a = 0{,}5\) et pour \(a = 0{,}9\), et \(\text{ReLU}'\) pour \(z = 2\) et \(z = -1\). Pourquoi empiler des sigmoïdes ralentit-il l’apprentissage des premières couches ?
Espace de calcul :
Exercice 6 – Une étape de rétropropagation
Un réseau à une couche cachée de deux neurones (sigmoïde) et une sortie sigmoïde. Pour l’entrée \(\mathbf x = (1;\ 2)\), la propagation avant a donné : activations cachées \(\mathbf a^{[1]} = (0{,}4;\ 0{,}9)\), poids de sortie \(W^{[2]} = (0{,}5;\ -0{,}2)\), biais \(b^{[2]} = -0{,}87\), d’où \(z^{[2]} = 0{,}2 - 0{,}18 - 0{,}87 = -0{,}85\) et \(\hat y = \sigma(-0{,}85) = 0{,}30\). La cible est \(y = 1\), taux d’apprentissage \(\eta = 0{,}5\).
- Calculer la perte \(L = -\ln\hat y\) et l’erreur de sortie \(\delta^{[2]} = \hat y - y\).
Espace de calcul :
\(L=\) \(\delta^{[2]}=\)
- Calculer \(\partial L/\partial W^{[2]}\) et \(\partial L/\partial b^{[2]}\), puis les nouveaux \(W^{[2]}\) et \(b^{[2]}\).
Espace de calcul :
\(\partial L/\partial W^{[2]}=\) nouveau \(W^{[2]}=\) nouveau \(b^{[2]}=\)
- Rétropropager : calculer \(\sigma'(\mathbf z^{[1]}) = \mathbf a^{[1]}\odot(1-\mathbf a^{[1]})\), puis \(\boldsymbol\delta^{[1]} = (W^{[2]})^{\top}\delta^{[2]}\odot\sigma'(\mathbf z^{[1]})\) avec les anciens poids.
Espace de calcul :
\(\sigma'(\mathbf z^{[1]})=\) \(\boldsymbol\delta^{[1]}=\)
- En déduire \(\partial L/\partial W^{[1]} = \boldsymbol\delta^{[1]}\mathbf x^{\top}\) (matrice \(2\times 2\)).
Espace de calcul :
- Le premier poids de sortie augmente. Pourquoi est-ce le bon sens, vu la cible ?
Exercice 7 – Réseau ou ensemble ? Le verdict
Sur un registre tabulaire de \(8\,000\) patients (cinq variables), on mesure en validation croisée :
| modèle | AUC CV | temps de réglage |
|---|---|---|
| régression logistique | \(0{,}70 \pm 0{,}02\) | quelques secondes |
| gradient boosting | \(0{,}71 \pm 0{,}02\) | quelques minutes |
| réseau \(5\)–\(32\)–\(16\)–\(1\) | \(0{,}70 \pm 0{,}03\) | une heure |
- Quel modèle retenir ? Justifier.
- Dans quelles situations un réseau de neurones prendrait-il l’avantage ?
- Citer deux réglages qui décident souvent de la réussite d’un réseau, et une raison pour laquelle standardiser les entrées est indispensable.
Pour cette séance
Le cours
À lire en ligne