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}\]
Calculer \(Z^{[1]}\), puis \(A^{[1]}\). En déduire la prédiction \(\hat y\).
Calculer le coût \(J\).
Calculer \[\delta^{[2]} = \hat y-y, \qquad dW^{[2]} = (A^{[1]})^\top \delta^{[2]}, \qquad db^{[2]}=\delta^{[2]}.\]
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é ?
En déduire \[dW^{[1]} = X^\top \delta^{[1]}, \qquad db^{[1]}=\delta^{[1]}.\]
Quels paramètres seront modifiés lors d’une étape de descente de gradient ?