Fiche d’exercices 10

Fiche d’exercices de la séance 10 d’Introduction au Machine Learning.
Auteurs

Dr. El Hadji Bassirou TOURÉ · DMI/FST/UCAD

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\).

  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)=\)

  1. Même question pour \(\mathbf x = (1;\ 4;\ 0)\).

Espace de calcul :

\(z=\) \(\sigma(z)=\) ReLU\((z)=\)

  1. 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}.\]

  1. Quelles sont les dimensions de \(W\), \(\mathbf x\), \(\mathbf b\) et \(\mathbf z\) ?

  2. 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 =\)

  1. 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\).

  1. Calculer \(\mathbf z^{[1]}\) et \(\mathbf a^{[1]}\).

Espace de calcul :

\(\mathbf z^{[1]}=\) \(\mathbf a^{[1]}=\)

  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

  1. 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
  1. 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)\).

  1. Calculer \(\hat y\) en passant par les deux couches.

Espace de calcul :

  1. Calculer \(W_{\text{eq}} = W^{[2]}W^{[1]}\) puis \(W_{\text{eq}}\mathbf x\). Conclure.

Espace de calcul :

  1. 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\).

  1. Calculer la perte \(L = -\ln\hat y\) et l’erreur de sortie \(\delta^{[2]} = \hat y - y\).

Espace de calcul :

\(L=\) \(\delta^{[2]}=\)

  1. 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]}=\)

  1. 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]}=\)

  1. En déduire \(\partial L/\partial W^{[1]} = \boldsymbol\delta^{[1]}\mathbf x^{\top}\) (matrice \(2\times 2\)).

Espace de calcul :

  1. 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
  1. Quel modèle retenir ? Justifier.

  1. Dans quelles situations un réseau de neurones prendrait-il l’avantage ?

  1. 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

Retour au sommet