Remonter d'une couche
Le dernier pas en arrière : la porte ReLU, et les gradients de la première couche.
La demande est arrivée sur les activations cachées, et ce ne sont toujours pas des réglages. Sur cette image, soixante et onze des cent vingt-huit neurones cachés sont éteints : que devient la part de demande qui leur revient ?
Les deux lignes du bas comparent un neurone allumé et un neurone éteint qui reçoivent tous les deux une demande non nulle. Le premier la transmet sans qu'un seul chiffre change, le second ne transmet rien.
La page démontre cette différence, et en tire le compte des zéros de la première matrice.
De l'activation à la somme pondérée
Il reste à passer de à , et ce pas est le plus simple de tous parce que ne dépend que de : il n'y a qu'un seul chemin, et la règle de la chaîne à plusieurs chemins se réduit à sa forme simple.
- Produit de HadamardHadamard product, element-wise product
Pour , le vecteur . Il ne change pas la dimension et ne fait aucune somme : c'est le produit ordinaire de , appliqué fois en parallèle.
Ce que la porte fait
est un vecteur de et de , et c'est ce vecteur qu'on appellera la porte : le produit de Hadamard laisse passer certaines composantes sans les modifier et annule les autres. Sur l'exemple de travail, passent et sont annulées.
Un neurone allumé, un neurone éteint · cours/lecon4/mesures.py, mesure 3
a^[1]_92 = 1.5903, neurone ALLUMÉ (z^[1]_92 = +1.5903)
composante 92 de (W^[2])^T delta^[2] +0.006402
composante 92 de delta^[1], après la porte ReLU +0.006402
pour comparaison, le neurone ÉTEINT j = 0 (z^[1]_0 = -0.2455)
demande reçue, (W^[2])^T delta^[2] en 0 -0.009335
composante 0 de delta^[1] -0.000000Lecture
Le neurone est allumé, sa demande traverse la porte sans changer d'un chiffre, et la porte ne rééchelonne donc rien : elle laisse passer, ou elle coupe.
Le neurone est éteint et reçoit pourtant une demande non nulle, , que la porte annule : les dix neurones de sortie lui adressent bien quelque chose.
Un neurone éteint ne transmet rien parce qu'il n'a rien envoyé. Son activation valait à l'aller, il n'a donc contribué à aucune des dix sommes pondérées, et changer un peu sa somme pondérée ne changerait toujours rien puisqu'elle resterait négative. La perte n'en dépend pas, et sa dérivée est nulle.
Le réseau pâlit et rend ses cotes. Une ligne horizontale se trace au milieu du cadre, et cent vingt-huit barres très fines y poussent, une par neurone caché : un peigne serré, moitié au-dessus de la ligne, moitié en dessous, d'inégales longueurs, et pas une seule n'est nulle. Une cote de brique donne leur nombre : cent vingt-huit. Les barres des neurones allumés passent alors au brique, les autres restent à l'encre. Toutes les barres d'encre s'écrasent d'un coup sur la ligne et disparaissent, pendant que les barres de brique ne bougent pas : aucune ne se raccourcit, aucune ne change de sens. Le peigne est devenu clairsemé. Deux cotes s'inscrivent de part et d'autre de la ligne : cinquante-sept pour ce qui passe, soixante et onze pour ce qui est coupé.
Les gradients de la première couche
Les propositions 3 et 4 n'ont rien de particulier à la couche de sortie, puisqu'elles dérivent , ce qui est vrai de toute couche. On les applique donc telles quelles une couche plus bas, avec à la place de , l'entrée jouant le rôle d'activation de la couche précédente.
Combien des coefficients sont nuls ?
La formule (4.10) permet de prédire ce compte avant de le faire, car le coefficient de vaut et il est nul dès que l'un des deux facteurs l'est. Or pour les neurones éteints, et pour les pixels du fond, ceux que l'encre n'a pas touchés, dont la mesure 1 dit qu'il y en a .
Le compte des non nuls demande en outre qu'aucun des produits restants ne s'annule par accident, ce que la prédiction suppose et que la mesure constate.
Les zéros de $\mathrm{grad}_{W^{[1]}}\,\ell$ · cours/lecon4/mesures.py, mesure 8
-- La mesure -------------------------------------------------------------
coefficients exactement nuls 89636
écart à la prédiction 0
nuls parce que le pixel d'entrée est nul 596 x 128 = 76288
nuls parce que le neurone caché est éteint 71 x 188 = 13348
somme des deux causes 89636
lignes de grad_W1 entièrement nulles 71 sur 128
colonnes de grad_W1 entièrement nulles 596 sur 784
part de coefficients nuls 89.32 %Lecture
La prédiction tombe juste, écart zéro, et c'est le contrôle le plus économique du chapitre puisqu'il ne demande aucun calcul de dérivée, seulement la structure de la formule (4.10).
Les deux causes se partagent les , et ce partage est un choix : compte les coefficients des colonnes entièrement nulles, puis ceux des lignes nulles parmi les colonnes qui restent. Compté dans l'autre ordre, puis , le total est le même.
du gradient de la première couche est exactement nul sur cet exemple, et le procédé par différences finies aurait dépensé deux propagations avant pour chacun de ces zéros.
Pour l'image de travail, neurones cachés sur sont allumés, et l'image compte pixels non nuls sur .
- a
Combien de lignes de sont entièrement nulles, et combien de colonnes ? Justifier par la formule (4.10).
- b
Le même compte pour : combien de ses coefficients sont nuls, et pour quelle raison ?
Aucune réponse à cliquer : il y a un calcul à faire.