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

Dix demandes, une somme

Dix neurones demandent des choses contraires à la même activation : on additionne, on n'arbitre pas.

Une activation cachée alimente les dix neurones de sortie à la fois, et les dix n'ont pas le même avis sur le sens dans lequel elle doit bouger. Que fait-on de dix demandes qui se contredisent ?

Un tableau de dix lignes, une par neurone de sortie. Chacune donne le signal d'erreur de ce neurone, le poids qui le relie au quatre-vingt-douzième neurone caché, le produit des deux, et le sens que ce produit demande. Une barre horizontale accompagne chaque ligne, tracée à droite d'un axe vertical pour les produits positifs, à gauche pour les négatifs. Six lignes demandent de monter, quatre de descendre, et les magnitudes sont comparables : la plus forte, plus zéro virgule zéro vingt-deux mille trois cent soixante-douze, vient du neurone de sortie un. En pied, la somme des dix demandes vaut plus zéro virgule zéro zéro six mille quatre cent deux, elle est la quatre-vingt-douzième composante du produit de la transposée de la seconde matrice de poids par le signal d'erreur de sortie, et elle est plus petite que la plus forte des dix.
Dix demandes contradictoires, et une seule somme les départage.

Six neurones de sortie demandent que a92a_{92}a92​ monte, quatre qu'elle descende, et aucune des dix demandes n'est nulle. La plus forte ne vient pas du neurone de la vraie classe mais du neurone 111, parce que le poids qui relie la vraie classe à a92a_{92}a92​ est faible.

La somme, +0,006402+0{,}006402+0,006402, est plus petite que la plus grande des dix, et c'est pourtant elle, et elle seule, qui est la dérivée.

Dix demandes sur une même activation

Les dix demandes portées sur $a_{92}^{[1]}$ · cours/lecon4/mesures.py, mesure 3

  -- La troisième voie : les dix demandes sur l'activation a^[1]_92 --------
  a^[1]_92 = 1.5903, neurone ALLUMÉ (z^[1]_92 = +1.5903)

      k     delta_k       W^[2]_kj      delta_k W_kj    sens demandé
      0     +0.1366       +0.0609       +0.008315      descendre
      1     +0.1098       +0.2038       +0.022372      descendre
      2     -0.7555       +0.0116       -0.008780      monter
      3     +0.0911       -0.1292       -0.011776      monter
      4     +0.0796       -0.0107       -0.000851      monter
      5     +0.1308       +0.0918       +0.012011      descendre
      6     +0.0478       -0.1832       -0.008751      monter
      7     +0.0574       -0.0884       -0.005073      monter
      8     +0.0563       +0.1288       +0.007246      descendre
      9     +0.0462       -0.1800       -0.008311      monter

  somme des dix contributions                   +0.006402
  composante 92 de (W^[2])^T delta^[2]            +0.006402
  écart entre les deux                          1.735e-18

Lecture

  • ·

    Le neurone 222, dont le signal d'erreur est pourtant sept fois plus grand que les autres, ne pèse que −0,008780-0{,}008780−0,008780, parce que le poids qui le relie à a92a_{92}a92​ vaut W2,92=+0,0116W_{2,92}=+0{,}0116W2,92​=+0,0116.

  • ·

    La somme est plus petite que la plus grande des dix parce que les demandes s'annulent en partie, ce qui est normal : ce ne sont pas des votes, ce sont des contributions signées.

La transposée à l'œuvre : dix demandes convergent sur le neurone caché 929292 et s'y additionnent.

Le réseau pâlit et rend ses cotes. Un rond isolé, plus grand que ceux du réseau et rempli d'encre presque noire, se pose à gauche du centre : c'est un neurone de la couche cachée, et son rang s'inscrit à côté de lui. Dix traits partent alors des dix ronds de la colonne de sortie et convergent tous vers lui. Ils sont d'abord de la même finesse, puis chacun prend l'épaisseur de la demande qu'il porte : deux sont nettement plus larges que les autres, aucun n'est nul. Les traits s'effacent, et dix barres signées poussent depuis une ligne horizontale, une par neurone de sortie : quatre montent, six descendent. Les dix barres se soulèvent alors l'une après l'autre, sans quitter leur place : chacune va se poser au bout de la précédente, et l'ensemble dessine un escalier. Il monte deux fois, jusqu'à une hauteur bien supérieure à la plus grande des dix barres, puis redescend marche après marche et s'arrête juste au-dessus de la ligne de départ. Un trait de brique marque le bout de la dernière marche, et sa valeur s'inscrit dessous : plus zéro virgule zéro zéro six quatre zéro deux.

0:00 / 0:15

La demande totale

DérivationLa demande totale portée sur les activations cachées vaut (W[2])Tδ[2](W^{[2]})^{\mathsf{T}}\boldsymbol{\delta}^{[2]}(W[2])Tδ[2] (proposition 6)
1

Hypothèses

  • ·

    zk[2]=∑jWkj[2]aj[1]+bk[2]z_{k}^{[2]}=\sum_{j}W_{kj}^{[2]}a_{j}^{[1]}+b_{k}^{[2]}zk[2]​=∑j​Wkj[2]​aj[1]​+bk[2]​ pour k∈[ ⁣[0,9] ⁣]k\in[\![0,9]\!]k∈[[0,9]].

  • ·

    aj[1]a_{j}^{[1]}aj[1]​ influence ℓ\ellℓ à travers les dix composantes de z[2]\mathbf{z}^{[2]}z[2], et seulement à travers elles.

  • ·

    δ[2]=gradz[2] ℓ∈R10\boldsymbol{\delta}^{[2]}=\mathrm{grad}_{\mathbf{z}^{[2]}}\,\ell\in\mathbb{R}^{10}δ[2]=gradz[2]​ℓ∈R10.

2

Chaîne de dépendances

a_j^{[1]} → (z_0^{[2]}, …, z_9^{[2]}) → a^{[2]} → ℓ

3

Propriétés utilisées

  • ·

    Règle de la chaîne à plusieurs chemins, formule (4.4), avec m=10m=10m=10 chemins

  • ·

    Proposition 5 pour chacun des dix termes

  • ·

    (AT)jk=Akj(A^{\mathsf{T}})_{jk}=A_{kj}(AT)jk​=Akj​

4

Étapes

  1. On somme sur les dix chemins. Contrairement aux propositions 3 et 4, aucun terme ne s'annule, puisque aja_{j}aj​ apparaît dans les dix lignes de la somme pondérée.

  2. ∂ℓ∂aj[1]=∑k=09∂ℓ∂zk[2] ∂zk[2]∂aj[1]=∑k=09δk[2] Wkj[2]\frac{\partial\ell}{\partial a_{j}^{[1]}}=\sum_{k=0}^{9}\frac{\partial\ell}{\partial z_{k}^{[2]}}\,\frac{\partial z_{k}^{[2]}}{\partial a_{j}^{[1]}}=\sum_{k=0}^{9}\delta_{k}^{[2]}\,W_{kj}^{[2]}∂aj[1]​∂ℓ​=k=0∑9​∂zk[2]​∂ℓ​∂aj[1]​∂zk[2]​​=k=0∑9​δk[2]​Wkj[2]​

    Proposition 5, appliquée aux dix valeurs de kkk.

  3. On reconnaît un produit matriciel. Cette somme porte sur l'indice de ligne kkk, à colonne jjj fixée, donc ce n'est pas la jjj-ième composante de W[2]δ[2]W^{[2]}\boldsymbol{\delta}^{[2]}W[2]δ[2], un produit qui n'a d'ailleurs pas de sens puisque (10×128)(10×1)(10\times 128)(10\times 1)(10×128)(10×1) ne se compose pas. En écrivant Wkj=(WT)jkW_{kj}=(W^{\mathsf{T}})_{jk}Wkj​=(WT)jk​, la somme devient ∑k(WT)jkδk\sum_{k}(W^{\mathsf{T}})_{jk}\delta_{k}∑k​(WT)jk​δk​, qui est la jjj-ième composante de (W[2])Tδ[2](W^{[2]})^{\mathsf{T}}\boldsymbol{\delta}^{[2]}(W[2])Tδ[2].

  4. grada[1] ℓ=(W[2])Tδ[2],(128×10)(10×1)=128×1\mathrm{grad}_{\mathbf{a}^{[1]}}\,\ell=\big(W^{[2]}\big)^{\mathsf{T}}\boldsymbol{\delta}^{[2]},\qquad (128\times 10)(10\times 1)=128\times 1grada[1]​ℓ=(W[2])Tδ[2],(128×10)(10×1)=128×1

    Les dimensions s'accordent, et le résultat a bien la forme de a[1]\mathbf{a}^{[1]}a[1].

5

Résultat

grada[1] ℓ=(W[2])Tδ[2] ∈R128\mathrm{grad}_{\mathbf{a}^{[1]}}\,\ell=\big(W^{[2]}\big)^{\mathsf{T}}\boldsymbol{\delta}^{[2]}\ \in\mathbb{R}^{128}grada[1]​ℓ=(W[2])Tδ[2] ∈R128
6

Interprétation

À l'aller, la ligne kkk de W[2]W^{[2]}W[2] collecte les 128128128 activations et les rassemble en un seul nombre, zkz_{k}zk​, et au retour la colonne jjj, c'est-à-dire la ligne jjj de la transposée, redistribue les dix corrections vers l'activation jjj. C'est le même tableau de nombres, lu dans l'autre sens, et la transposée n'est donc ni une astuce de notation ni un ajustement de dimensions : c'est ce que « additionner les demandes » veut dire, une fois écrit.

Ce que ce résultat ne dit pas

  • ·

    Le résultat porte sur a[1]\mathbf{a}^{[1]}a[1] et non sur z[1]\mathbf{z}^{[1]}z[1], et le passage de l'un à l'autre traverse la fonction d'activation.

  • ·

    L'écriture vaut pour deux couches, et sa forme générale à LLL couches est renvoyée au chapitre 5.

Pourquoi on somme, et non pourquoi on choisit

Dix demandes contradictoires portent sur la même activation, et il serait tentant d'y voir un conflit à arbitrer en retenant la plus forte, ou celle du neurone de la vraie classe. Il n'y a pas de conflit et rien à arbitrer : la règle de la chaîne à plusieurs chemins, formule (4.4), donne la somme, et la somme est la dérivée. Un arbitrage donnerait un autre nombre, qui ne serait la dérivée de rien.

ProcédéSur a92[1]a_{92}^{[1]}a92[1]​Est-ce ∂ℓ/∂a92\partial\ell/\partial a_{92}∂ℓ/∂a92​ ?

Retenir la plus grande demande

+0,022372+0{,}022372+0,022372

Non

Retenir celle de la vraie classe

−0,008780-0{,}008780−0,008780

Non

Additionner les dix

+0,006402+0{,}006402+0,006402

Oui, et la mesure 2 le confirme

Un contrôle qui vaut d'être fait

La mesure 3 additionne les dix contributions à la main et compare le résultat à la composante 929292 de (W[2])Tδ[2](W^{[2]})^{\mathsf{T}}\boldsymbol{\delta}^{[2]}(W[2])Tδ[2] calculée par le produit matriciel : +0,006402+0{,}006402+0,006402 des deux côtés, pour un écart de 1,7⋅10−181{,}7\cdot 10^{-18}1,7⋅10−18. C'est le contrôle que le passage à l'écriture matricielle n'a rien changé, ni transposé de travers, ni sommé sur le mauvais indice.

Vérification rapide n° 43

Les dix demandes portées sur a92[1]a_{92}^{[1]}a92[1]​ figurent dans la mesure 3 ; leur somme vaut +0,006402+0{,}006402+0,006402, et la plus grande +0,022372+0{,}022372+0,022372.

  1. a

    Pourquoi additionne-t-on les dix demandes plutôt que de retenir la plus forte ? Répondre par la formule (4.4), non par le bon sens.

  2. b

    Que vaudrait ∂ℓ/∂a92\partial\ell/\partial a_{92}∂ℓ/∂a92​ si les dix poids Wk,92W_{k,92}Wk,92​ étaient tous nuls ? Et si les dix étaient égaux à 111 ?

Aucune réponse à cliquer : il y a un calcul à faire.

Vérification rapide n° 44

W[2]∈M10,128(R)W^{[2]}\in\mathcal{M}_{10,128}(\mathbb{R})W[2]∈M10,128​(R) et δ[2]∈R10\boldsymbol{\delta}^{[2]}\in\mathbb{R}^{10}δ[2]∈R10.

  1. a

    Écrire les dimensions de (W[2])Tδ[2](W^{[2]})^{\mathsf{T}}\boldsymbol{\delta}^{[2]}(W[2])Tδ[2] et vérifier qu'elles sont celles de a[1]\mathbf{a}^{[1]}a[1].

  2. b

    Que donnerait W[2]δ[2]W^{[2]}\boldsymbol{\delta}^{[2]}W[2]δ[2], sans transposition ? Répondre par la règle de composition des dimensions.

Aucune réponse à cliquer : il y a un calcul à faire.

Leçon suivante
PrécédenteLa troisième voie : les activationsSuivanteRemonter d'une couche