• Projets00
  • AI Academy13
  • Veille07 entrées ces 7 derniers jours
  • Outils00
Profil
Déposer un projet
ProjetsAI AcademyVeilleOutilsProfilDéposer
Le cours
54/59
Lecture3 min

La couche précédente

Le même calcul une couche plus bas, et la raison pour laquelle il se répète.

Peut-on demander à une couche de changer ce qu'elle reçoit de celle d'avant ?

Deux schémas de même forme, côte à côte, reliés par une flèche. Celui de gauche porte la couche trois : l'activation a exposant trois en haut, la somme pondérée z exposant trois en dessous, et sous elle ses trois entrées, le poids w exposant trois, l'activation a exposant deux et le biais b exposant trois. Celui de droite porte la couche deux et reprend la même disposition, avec a exposant deux, z exposant deux, w exposant deux, a exposant un et b exposant deux. Sous chaque schéma est écrit le signal d'erreur de sa couche, delta exposant trois à gauche et delta exposant deux à droite.
Le motif ne dépend pas de la couche : le calcul de la couche 3 se réécrit pour la couche 2 en changeant le seul exposant.

La dernière couche a livré la dérivée de la perte par rapport à son poids et à son biais, et il reste dans sa somme pondérée une troisième quantité dont la perte dépend, l'activation qu'elle reçoit de la couche d'avant. Cette dérivée-là s'obtient par le même produit de rapports, mais elle ne se lit pas comme les deux autres.

Dériver par rapport à une activation

DérivationL'activation de la couche précédente
1

Hypothèses

  • ·

    Réseau à un neurone par couche, équations (5.4).

  • ·

    a[L−1]a^{[L-1]}a[L−1] n'influence ℓ\ellℓ qu'à travers z[L]z^{[L]}z[L] : la chaîne est sans embranchement.

  • ·

    ∂ℓ/∂z[L]=a[L]−y\partial\ell/\partial z^{[L]}=a^{[L]}-y∂ℓ/∂z[L]=a[L]−y, page 5.

2

Chaîne de dépendances

a^{[L-1]} → z^{[L]} → a^{[L]} → ℓ

3

Propriétés utilisées

  • ·

    Règle de la chaîne, forme simple, formule (5.2)

  • ·

    Dérivation d'une fonction affine

4

Étapes

  1. On dérive la somme pondérée par rapport à l'activation. Dans z[L]=w[L]a[L−1]+b[L]z^{[L]}=w^{[L]}a^{[L-1]}+b^{[L]}z[L]=w[L]a[L−1]+b[L], le coefficient de a[L−1]a^{[L-1]}a[L−1] est w[L]w^{[L]}w[L].

  2. ∂z[L]∂a[L−1]=w[L]\frac{\partial z^{[L]}}{\partial a^{[L-1]}}=w^{[L]}∂a[L−1]∂z[L]​=w[L]
  3. On applique la forme simple de la règle de la chaîne.

  4. ∂ℓ∂a[L−1]=∂ℓ∂z[L]⋅∂z[L]∂a[L−1]=(a[L]−y) w[L]\frac{\partial\ell}{\partial a^{[L-1]}}=\frac{\partial\ell}{\partial z^{[L]}}\cdot\frac{\partial z^{[L]}}{\partial a^{[L-1]}}=\big(a^{[L]}-y\big)\,w^{[L]}∂a[L−1]∂ℓ​=∂z[L]∂ℓ​⋅∂a[L−1]∂z[L]​=(a[L]−y)w[L]
5

Résultat

∂ℓ∂a[L−1]=(a[L]−y) w[L]\frac{\partial\ell}{\partial a^{[L-1]}}=\big(a^{[L]}-y\big)\,w^{[L]}∂a[L−1]∂ℓ​=(a[L]−y)w[L]
6

Interprétation

L'effet d'une variation de l'activation précédente sur la perte est proportionnel au poids qui les relie : un poids nul coupe la transmission, un poids négatif l'inverse.

Ce que ce résultat ne dit pas

  • ·

    a[L−1]a^{[L-1]}a[L−1] n'est pas un paramètre : cette dérivée ne se lit pas comme une consigne de réglage.

Une activation n'est pas un paramètre

QuantitéModifiable directementDéterminée par

w[l]w^{[l]}w[l], b[l]b^{[l]}b[l]

Oui, ce sont les paramètres

Rien : on les choisit

a[l]a^{[l]}a[l]

Non

z[l]z^{[l]}z[l] seule, par a[l]=φ(z[l])a^{[l]}=\varphi(z^{[l]})a[l]=φ(z[l])

z[l]z^{[l]}z[l]

Non

w[l]w^{[l]}w[l], b[l]b^{[l]}b[l], a[l−1]a^{[l-1]}a[l−1]

On ne règle pas une activation, et ce que devient une demande portée sur une quantité qu'on ne contrôle pas est traité au chapitre 4, page 7. Ce qu'elle devient ici se lit dans les deux équations qui définissent cette activation : a[L−1]=φ(z[L−1])a^{[L-1]}=\varphi(z^{[L-1]})a[L−1]=φ(z[L−1]) et z[L−1]=w[L−1]a[L−2]+b[L−1]z^{[L-1]}=w^{[L-1]}a^{[L-2]}+b^{[L-1]}z[L−1]=w[L−1]a[L−2]+b[L−1], si bien que la demande adressée à a[L−1]a^{[L-1]}a[L−1] retombe sur les propres poids et biais de la couche L−1L-1L−1.

La passe arrière descend à la couche 2

Mesure 1 · la suite de la passe arrière

  dl/da2 = delta3 . w3       = -0.308931
  delta2 = dl/da2 . phi'(z2) = -0.308931
  dl/dw2 = delta2 . a1       = -0.308931
  dl/db2 = delta2            = -0.308931

Lecture

  • ·

    ∂ℓ/∂a[2]=−0,154465×2,0=−0,308931\partial\ell/\partial a^{[2]}=-0{,}154465\times 2{,}0=-0{,}308931∂ℓ/∂a[2]=−0,154465×2,0=−0,308931 : le poids w[3]=2,0w^{[3]}=2{,}0w[3]=2,0 double l'effet.

  • ·

    z[2]=1,1>0z^{[2]}=1{,}1>0z[2]=1,1>0, donc ReLU′(z[2])=1\mathrm{ReLU}'(z^{[2]})=1ReLU′(z[2])=1 et la valeur traverse sans changer.

  • ·

    a[1]=1,0a^{[1]}=1{,}0a[1]=1,0, donc ∂ℓ/∂w[2]\partial\ell/\partial w^{[2]}∂ℓ/∂w[2] vaut la même chose que ∂ℓ/∂b[2]\partial\ell/\partial b^{[2]}∂ℓ/∂b[2] sur cet exemple.

Le même calcul, un rang plus bas

Pour la couche 333Pour la couche 222

∂ℓ/∂z[3]\partial\ell/\partial z^{[3]}∂ℓ/∂z[3] est connu

∂ℓ/∂z[2]\partial\ell/\partial z^{[2]}∂ℓ/∂z[2] vient d'être obtenu

∂ℓ/∂w[3]=∂ℓ/∂z[3]⋅a[2]\partial\ell/\partial w^{[3]}=\partial\ell/\partial z^{[3]}\cdot a^{[2]}∂ℓ/∂w[3]=∂ℓ/∂z[3]⋅a[2]

∂ℓ/∂w[2]=∂ℓ/∂z[2]⋅a[1]\partial\ell/\partial w^{[2]}=\partial\ell/\partial z^{[2]}\cdot a^{[1]}∂ℓ/∂w[2]=∂ℓ/∂z[2]⋅a[1]

∂ℓ/∂b[3]=∂ℓ/∂z[3]\partial\ell/\partial b^{[3]}=\partial\ell/\partial z^{[3]}∂ℓ/∂b[3]=∂ℓ/∂z[3]

∂ℓ/∂b[2]=∂ℓ/∂z[2]\partial\ell/\partial b^{[2]}=\partial\ell/\partial z^{[2]}∂ℓ/∂b[2]=∂ℓ/∂z[2]

∂ℓ/∂a[2]=∂ℓ/∂z[3]⋅w[3]\partial\ell/\partial a^{[2]}=\partial\ell/\partial z^{[3]}\cdot w^{[3]}∂ℓ/∂a[2]=∂ℓ/∂z[3]⋅w[3]

∂ℓ/∂a[1]=∂ℓ/∂z[2]⋅w[2]\partial\ell/\partial a^{[1]}=\partial\ell/\partial z^{[2]}\cdot w^{[2]}∂ℓ/∂a[1]=∂ℓ/∂z[2]⋅w[2]

Rien, dans la colonne de droite, ne tient au rang de la couche.

Le calcul se transmet d'un rang au rang inférieur et son rang de départ est connu au sommet : c'est la forme d'une propriété qui se démontre par récurrence, et il reste à l'écrire pour obtenir une formule valable à toute profondeur.

Leçon suivante
PrécédenteL'assemblage, et le biaisSuivanteLa récurrence, et son corollaire