Rétropropagation et problème du neurone mort

On étudie, sur un exemple simple, le calcul de la propagation avant et de la rétropropagation du gradient dans un réseau de neurones de régression.

Le réseau possède :

  • une seule variable d’entrée ;

  • une couche cachée de \(2\) neurones avec fonction d’activation ReLU ;

  • une seule sortie réelle.

On adopte la convention suivante : les exemples sont rangés par lignes et les poids sont multipliés à droite. Ainsi, pour un lot de données \(X\), on a \[Z^{[1]} = XW^{[1]} + b^{[1]}, \qquad A^{[1]} = \mathrm{ReLU}(Z^{[1]}), \qquad \hat y = A^{[1]}W^{[2]} + b^{[2]}.\]

Dans cet exercice, on considère un seul exemple, donc \[X=\begin{bmatrix} 1 \end{bmatrix}, \qquad y=\begin{bmatrix} 0 \end{bmatrix}.\]

Les paramètres du réseau sont \[W^{[1]} = \begin{bmatrix} 1 & -2 \end{bmatrix}, \quad b^{[1]} = \begin{bmatrix} 0 & 0 \end{bmatrix}, \quad W^{[2]} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}, \quad b^{[2]} = \begin{bmatrix} 0 \end{bmatrix}.\]

On utilise la fonction de coût \[J=\frac12(\hat y-y)^2.\]

Dans la suite, le symbole \(\odot\) désigne le produit terme à terme, et \[\mathrm{ReLU}'(z)= \begin{cases} 1 & \text{si } z>0,\\ 0 & \text{si } z<0. \end{cases}\]

1

Calculer \(Z^{[1]}\), puis \(A^{[1]}\). En déduire la prédiction \(\hat y\).

2

Calculer le coût \(J\).

3

Calculer \[\delta^{[2]} = \hat y-y, \qquad dW^{[2]} = (A^{[1]})^\top \delta^{[2]}, \qquad db^{[2]}=\delta^{[2]}.\]

4

Calculer \[dA^{[1]} = \delta^{[2]}(W^{[2]})^\top, \qquad \delta^{[1]} = dA^{[1]} \odot \mathrm{ReLU}'(Z^{[1]}).\] Que remarque-t-on pour le deuxième neurone caché ?

5

En déduire \[dW^{[1]} = X^\top \delta^{[1]}, \qquad db^{[1]}=\delta^{[1]}.\]

6

Quels paramètres seront modifiés lors d’une étape de descente de gradient ?

Exercice gkVL

Signaler une erreur

  1. Problème
  2. Précisions
  3. Envoi
Quel est le problème ?