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

La deuxième voie : les poids

Corriger un poids : la correction est proportionnelle à l'activation qui l'alimente.

Un neurone de sortie reçoit cent vingt-huit traits, et chacun porte un nombre à corriger. Deux de ces traits partent de deux neurones cachés dont l'un est très actif et l'autre presque éteint : leurs deux poids reçoivent-ils la même correction ?

Un tableau de quatre lignes, une par neurone caché retenu, avec pour chacune son indice, son activation, la dérivée de la perte par rapport au poids qui en part, et le quotient des deux. Le neurone quatre-vingt-douze a une activation de un virgule cinq neuf zéro trois et une dérivée de moins un virgule deux cent un mille quatre cent neuf ; le treize, un virgule quatre neuf huit un et moins un virgule cent trente et un mille sept cent soixante ; le soixante et un, un virgule trois neuf cinq zéro et moins un virgule zéro cinquante-trois mille huit cent trente-sept ; le soixante-deux, zéro virgule zéro zéro sept zéro et moins zéro virgule zéro zéro cinq mille deux cent cinquante-cinq. Le quotient vaut moins zéro virgule sept cent cinquante-cinq mille quatre cent soixante et un sur les quatre lignes. Deux barres accompagnent chaque ligne, l'une pour la dérivée, l'autre pour l'activation, et les deux profils sont identiques. En pied, la valeur du signal d'erreur de la classe deux et l'identité qui donne la dérivée.
Le quotient de la correction par l'activation ne dépend pas du neurone.

Les quatre neurones sont désignés par un critère, les trois plus actifs et le moins actif parmi ceux qui sont allumés, et non choisis à la main. La colonne de droite est la même sur les quatre lignes, jusqu'à la sixième décimale.

Cette constance n'est pas un hasard de mesure : elle est forcée, et le calcul le montre.

Le produit extérieur

Produit extérieurouter product

Pour u∈Rm\mathbf{u}\in\mathbb{R}^{m}u∈Rm et v∈Rn\mathbf{v}\in\mathbb{R}^{n}v∈Rn, la matrice uvT∈Mm,n(R)\mathbf{u}\mathbf{v}^{\mathsf{T}}\in\mathcal{M}_{m,n}(\mathbb{R})uvT∈Mm,n​(R) de coefficient général (uvT)ij=uivj(\mathbf{u}\mathbf{v}^{\mathsf{T}})_{ij}=u_{i}v_{j}(uvT)ij​=ui​vj​. C'est le produit matriciel ordinaire d'une colonne par une ligne : (m×1)(1×n)→m×n(m\times 1)(1\times n)\rightarrow m\times n(m×1)(1×n)→m×n.

uvT=(u1v1⋯u1vn⋮⋮umv1⋯umvn)∈Mm,n(R),(uvT)ij=uivj\mathbf{u}\mathbf{v}^{\mathsf{T}}=\begin{pmatrix}u_{1}v_{1}&\cdots&u_{1}v_{n}\\ \vdots&&\vdots\\ u_{m}v_{1}&\cdots&u_{m}v_{n}\end{pmatrix}\in\mathcal{M}_{m,n}(\mathbb{R}),\qquad (\mathbf{u}\mathbf{v}^{\mathsf{T}})_{ij}=u_{i}v_{j}uvT=​u1​v1​⋮um​v1​​⋯⋯​u1​vn​⋮um​vn​​​∈Mm,n​(R),(uvT)ij​=ui​vj​
(4.6)
À ne pas confondre avec uTv\mathbf{u}^{\mathsf{T}}\mathbf{v}uTv, qui est un scalaire quand m=nm=nm=n : l'ordre des facteurs décide de la nature du résultat.

La dérivée par rapport à un poids de sortie

DérivationLa dérivée par rapport à un poids est le signal d'erreur multiplié par l'activation d'entrée (proposition 4)
1

Hypothèses

  • ·

    zm[2]=∑jWmj[2]aj[1]+bm[2]z_{m}^{[2]}=\sum_{j}W_{mj}^{[2]}a_{j}^{[1]}+b_{m}^{[2]}zm[2]​=∑j​Wmj[2]​aj[1]​+bm[2]​.

  • ·

    a[1]\mathbf{a}^{[1]}a[1] est fixé : il ne dépend pas de W[2]W^{[2]}W[2], puisqu'il est produit avant.

  • ·

    δ[2]=gradz[2] ℓ\boldsymbol{\delta}^{[2]}=\mathrm{grad}_{\mathbf{z}^{[2]}}\,\ellδ[2]=gradz[2]​ℓ.

2

Chaîne de dépendances

W_{kj}^{[2]} → z_k^{[2]} → a^{[2]} → ℓ

3

Propriétés utilisées

  • ·

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

  • ·

    Le poids Wkj[2]W_{kj}^{[2]}Wkj[2]​ n'apparaît que dans la ligne kkk de la somme pondérée

4

Étapes

  1. ∂zk[2]∂Wkj[2]=aj[1],∂zm[2]∂Wkj[2]=0  pour m≠k\frac{\partial z_{k}^{[2]}}{\partial W_{kj}^{[2]}}=a_{j}^{[1]},\qquad \frac{\partial z_{m}^{[2]}}{\partial W_{kj}^{[2]}}=0\ \ \text{pour}\ m\neq k∂Wkj[2]​∂zk[2]​​=aj[1]​,∂Wkj[2]​∂zm[2]​​=0  pour m=k

    Dans la somme ∑j′Wkj′aj′\sum_{j'}W_{kj'}a_{j'}∑j′​Wkj′​aj′​, un seul terme contient WkjW_{kj}Wkj​, et son facteur est aja_{j}aj​.

  2. ∂ℓ∂Wkj[2]=∑m=09∂ℓ∂zm[2] ∂zm[2]∂Wkj[2]=δk[2] aj[1]\frac{\partial\ell}{\partial W_{kj}^{[2]}}=\sum_{m=0}^{9}\frac{\partial\ell}{\partial z_{m}^{[2]}}\,\frac{\partial z_{m}^{[2]}}{\partial W_{kj}^{[2]}}=\delta_{k}^{[2]}\,a_{j}^{[1]}∂Wkj[2]​∂ℓ​=m=0∑9​∂zm[2]​∂ℓ​∂Wkj[2]​∂zm[2]​​=δk[2]​aj[1]​
  3. On rassemble les 10×12810\times 12810×128 égalités en une seule. Le coefficient (k,j)(k,j)(k,j) de la matrice recherchée est le produit de la kkk-ième composante de δ[2]\boldsymbol{\delta}^{[2]}δ[2] par la jjj-ième composante de a[1]\mathbf{a}^{[1]}a[1], ce qui est la définition du produit extérieur.

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

    Vérification des dimensions : le résultat a exactement la forme de W[2]W^{[2]}W[2], ce qui est nécessaire pour que W[2]−η gradW[2] ℓW^{[2]}-\eta\,\mathrm{grad}_{W^{[2]}}\,\ellW[2]−ηgradW[2]​ℓ ait un sens.

5

Résultat

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

Interprétation

À ligne kkk fixée, ∂ℓ/∂Wkj\partial\ell/\partial W_{kj}∂ℓ/∂Wkj​ est exactement proportionnel à aja_{j}aj​, de coefficient δk\delta_{k}δk​, et le rapport entre deux coefficients d'une même ligne vaut donc exactement le rapport des deux activations correspondantes. « Ajuster les poids proportionnellement aux activations » n'est pas une heuristique qu'on adopterait par analogie : c'est ce que dit l'identité, et la mesure 3 le vérifie à la sixième décimale.

Ce que ce résultat ne dit pas

  • ·

    La proportionnalité vaut à ligne fixée : entre deux lignes différentes le coefficient δk\delta_{k}δk​ change, et les tailles ne se comparent plus par les seules activations.

  • ·

    L'identité ne dit rien du meilleur rendement d'un ajustement, c'est-à-dire de la baisse de perte obtenue par unité de déplacement, une notion du chapitre 3, page 10, qui n'est pas redéveloppée ici.

La proportionnalité, sur les nombres

Quatre poids d'une même ligne · cours/lecon4/mesures.py, mesure 3

  -- Proportionnalité à l'activation, ligne k = 2 (delta_k < 0) ------------
      j       a_j        d l / d W_kj      quotient
      92      1.5903     -1.201409       -0.755461
      13      1.4981     -1.131760       -0.755461
      61      1.3950     -1.053837       -0.755461
      62      0.0070     -0.005255       -0.755461

  delta_2                                      -0.755461
  rapport de la plus grande à la plus petite    228.6

Lecture

  • ·

    Le quotient (∂ℓ/∂W2j)/aj\big(\partial\ell/\partial W_{2j}\big)/a_{j}(∂ℓ/∂W2j​)/aj​ vaut −0,755461-0{,}755461−0,755461 pour les quatre neurones, à la sixième décimale : c'est δ2\delta_{2}δ2​, et c'est la proposition 4 lue de droite à gauche.

  • ·

    Le poids qui part du neurone le plus actif reçoit une correction 228,6228{,}6228,6 fois plus grande que celui du neurone le moins actif, et ce rapport est celui de leurs deux activations, et rien d'autre.

Les traits qui arrivent sur le neurone de sortie 222 s'épaississent en proportion de l'activation d'où ils partent.

Le réseau pâlit. Quatre ronds apparaissent en colonne au centre droit du cadre, régulièrement espacés : ce sont quatre neurones cachés, tirés de la couche de cent vingt-huit. Les trois premiers sont remplis d'encre, de plus en plus pâle ; le quatrième est vide, son contour seul. À gauche de chacun s'inscrit son activation mesurée : un virgule cinq neuf zéro trois, un virgule quatre neuf huit un, un virgule trois neuf cinq zéro, et zéro virgule zéro zéro sept zéro. Le troisième rond de la colonne de sortie passe au trait de brique avec son étiquette. Quatre traits gris relient alors les quatre ronds à ce neurone, tous de la même finesse. Ils s'épaississent ensemble, chacun de la correction que son poids reçoit : le premier devient un ruban large, le deuxième et le troisième à peine moins, et le quatrième reste un cheveu qu'on distingue à peine du papier. Une valeur s'inscrit enfin à droite du neurone de sortie : moins zéro virgule sept cinq cinq quatre six un.

0:00 / 0:11

La même ligne, pour un neurone qui n'est pas celui de la classe · mesure 3

  -- Le même tableau pour une ligne k = 0 (delta_k > 0) --------------------
      j       a_j        d l / d W_kj      quotient
      92      1.5903     +0.217237       +0.136601
      13      1.4981     +0.204643       +0.136601
      61      1.3950     +0.190553       +0.136601
      62      0.0070     +0.000950       +0.136601

  delta_0                                      +0.136601

Lecture

  • ·

    Tous les signes sont inversés, et une seule quantité a changé : δ0=+0,1366\delta_{0}=+0{,}1366δ0​=+0,1366 au lieu de δ2=−0,7555\delta_{2}=-0{,}7555δ2​=−0,7555.

  • ·

    Le quotient reste constant sur les quatre lignes et vaut δ0\delta_{0}δ0​, donc la structure de la proposition 4 ne dépend pas du signe.

  • ·

    Les corrections de cette ligne sont cinq fois et demie plus petites que celles de la ligne 222, dans le rapport 0,1366/0,75550{,}1366/0{,}75550,1366/0,7555 : ce sont les mêmes activations, avec un autre signal d'erreur.

Un neurone caché éteint ne fait rien bouger

Corollaire immédiat de la proposition 4 : si aj[1]=0a_{j}^{[1]}=0aj[1]​=0, alors ∂ℓ/∂Wkj[2]=δk⋅0=0\partial\ell/\partial W_{kj}^{[2]}=\delta_{k}\cdot 0=0∂ℓ/∂Wkj[2]​=δk​⋅0=0 pour les dix valeurs de kkk. Un neurone caché éteint ne fait bouger aucun des dix poids qui partent de lui, quel que soit le signal d'erreur, et sur l'exemple de travail 717171 neurones sont dans ce cas, ce qui annule 710710710 des 1 2801\,2801280 coefficients de gradW[2] ℓ\mathrm{grad}_{W^{[2]}}\,\ellgradW[2]​ℓ.

Vérification rapide n° 38

Deux neurones cachés ont pour activations 2,02{,}02,0 et 0,250{,}250,25, et sont reliés au même neurone de sortie kkk.

  1. a

    Quel est le rapport des corrections apportées aux deux poids ? Justifier par la proposition 4, sans calculer les dérivées.

  2. b

    Ce rapport change-t-il si l'on remplace le neurone de sortie kkk par un autre ?

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

Vérification rapide n° 39

Un neurone caché jjj est éteint pour l'exemple courant : zj[1]≤0z_{j}^{[1]}\leq 0zj[1]​≤0, donc aj[1]=0a_{j}^{[1]}=0aj[1]​=0.

  1. a

    Que valent les dix dérivées ∂ℓ/∂Wkj[2]\partial\ell/\partial W_{kj}^{[2]}∂ℓ/∂Wkj[2]​, k∈[ ⁣[0,9] ⁣]k\in[\![0,9]\!]k∈[[0,9]], et pourquoi ?

  2. b

    Le corollaire dit que 710710710 coefficients de gradW[2] ℓ\mathrm{grad}_{W^{[2]}}\,\ellgradW[2]​ℓ sont nuls sur l'exemple de travail. Retrouver ce nombre à partir de la mesure 1.

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

Leçon suivante
PrécédenteLa première voie : le biaisSuivanteCe que Hebb dit, et ce qu'il ne dit pas