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

L'initialisation

Pourquoi on ne part pas de zéro, et d'où vient l'échelle du tirage au hasard.

Le choix le plus naturel est de tout mettre à zéro : neutre, sans arbitraire, sans graine aléatoire. Prouvons qu'il est fatal.

DérivationL'initialisation à zéro fige tous les neurones cachés dans le même état
1

Hypothèses

  • ·

    W[1]=0W^{[1]}=0W[1]=0 et b[1]=0b^{[1]}=0b[1]=0

  • ·

    Toutes les colonnes de W[2]W^{[2]}W[2] sont initialisées à la même valeur

  • ·

    Le pas η\etaη et la suite des mini-lots sont quelconques

2

Point de départ

Reˊcurrence sur t: toutes les lignes de Wt[1] sont eˊgales\text{Récurrence sur } t : \ \text{toutes les lignes de } W^{[1]}_t \text{ sont égales}Reˊcurrence sur t: toutes les lignes de Wt[1]​ sont eˊgales
3

Chaîne de dépendances

x → z^[1] → a^[1] → z^[2] → a^[2] → ℓ

4

Propriétés utilisées

  • ·

    La rétropropagation du cours précédent : δ[1]=((W[2])⊤δ[2])⊙σ′(z[1])\delta^{[1]}=\big((W^{[2]})^{\top}\delta^{[2]}\big)\odot\sigma'(z^{[1]})δ[1]=((W[2])⊤δ[2])⊙σ′(z[1])

  • ·

    Le gradient d'une couche : grad⁡W[1]ℓ=δ[1]x⊤\operatorname{grad}_{W^{[1]}}\ell=\delta^{[1]}x^{\top}gradW[1]​ℓ=δ[1]x⊤

5

Étapes

  1. Initialisation. À t=0t=0t=0, toutes les lignes valent zéro : elles sont égales.

    hypothèse

  2. Hérédité. Supposons qu'à l'étape ttt toutes les lignes valent un même vecteur www, et tous les biais un même bbb. Alors pour tout exemple et tout neurone caché jjj :

    zj[1]=w⊤x+b (indeˊpendant de j)⟹aj[1]=σ(zj[1])=a (indeˊpendant de j)z^{[1]}_j=w^{\top}x+b \ \text{(indépendant de } j) \quad\Longrightarrow\quad a^{[1]}_j=\sigma(z^{[1]}_j)=a \ \text{(indépendant de } j)zj[1]​=w⊤x+b (indeˊpendant de j)⟹aj[1]​=σ(zj[1]​)=a (indeˊpendant de j)

    la couche cachée produit 128 fois la même valeur

  3. Remontons le gradient. Le second facteur ne dépend pas de jjj, on vient de le voir ; le premier non plus, puisque les colonnes de W[2]W^{[2]}W[2] sont identiques.

    δj[1]=(∑kWkj[2] δk[2]) σ′(zj[1])=δ (indeˊpendant de j)\delta^{[1]}_j=\Big(\sum_{k}W^{[2]}_{kj}\,\delta^{[2]}_k\Big)\,\sigma'(z^{[1]}_j)=\delta \ \text{(indépendant de } j)δj[1]​=(k∑​Wkj[2]​δk[2]​)σ′(zj[1]​)=δ (indeˊpendant de j)

    rétropropagation, et hypothèse sur les colonnes de la seconde couche

  4. Le gradient de la première couche a donc toutes ses lignes égales. Vérification des dimensions : (128×1)(1×784)=128×784(128\times1)(1\times784)=128\times784(128×1)(1×784)=128×784.

    grad⁡W[1]ℓ=δ[1]x⊤=δ 1 x⊤\operatorname{grad}_{W^{[1]}}\ell=\delta^{[1]}x^{\top} = \delta\,\mathbf{1}\,x^{\top}gradW[1]​ℓ=δ[1]x⊤=δ1x⊤

    produit extérieur d'un vecteur à composantes égales

  5. La mise à jour soustrait la même quantité à chaque ligne : les lignes restent égales à l'étape t+1t+1t+1.

    conclusion de la récurrence

6

Résultat

∀t, ∀(j,j′),Wt[1][j,:]  =  Wt[1][j′,:]\forall t,\ \forall (j,j'),\qquad W^{[1]}_{t}[j,:] \;=\; W^{[1]}_{t}[j',:]∀t, ∀(j,j′),Wt[1]​[j,:]=Wt[1]​[j′,:]
7

Interprétation

Le réseau a 128 neurones cachés mais un seul degré de liberté caché : il se comporte pour toujours comme un réseau à un neurone. Ce n'est pas une convergence lente, c'est une impossibilité structurelle, et aucun réglage du pas ne la lève.

Vérification, après 200 mises à jour depuis l'initialisation nulle

      lignes distinctes de W1 : 1 sur 128
      ecart maximal entre deux lignes : 0.00e+00
      perte test 1.9896   precision test 0.2532   (hasard = 0.1000)

Lecture

  • ·

    L'écart maximal entre deux lignes est exactement nul, au bit près. Pas « petit » : nul. La preuve est confirmée sans approximation.

  • ·

    Une note honnête sur 0,25320{,}25320,2532. Le réseau fait mieux que le hasard, ce qui peut surprendre. C'est normal : la couche de sortie, elle, n'est pas symétrique. Ses dix neurones voient le même unique signal caché, mais leurs biais peuvent diverger et apprendre les fréquences des classes, plus ce seul signal. Le réseau n'est pas mort ; il est réduit à une seule caractéristique apprise.

Second obstacle : tirer au hasard ne suffit pas

Puisqu'il faut casser la symétrie, tirons au hasard. Prenons la loi normale centrée réduite, le choix le plus évident. Mesurons les préactivations avant tout apprentissage.

python cours/lecon3/experiences2.py E6

      methode        Var(Z1)    |Z1| > 4   moy sigma prime  lignes W1 distinctes
      zero            0.0000       0.00%          0.250000                     1
      grand          91.9551      66.81%          0.041835                   128
      xavier          0.1173       0.00%          0.243062                   128

      sigma prime maximal possible = 0.25 (atteint en z = 0).

Lecture

  • ·

    Avec la loi normale centrée réduite, la variance de la préactivation vaut 91,9691{,}9691,96, soit un écart-type de 9,69{,}69,6.

  • ·

    66,81 %66{,}81\,\%66,81% des préactivations dépassent ∣z∣>4|z|>4∣z∣>4, où σ′(4)=0,0177\sigma'(4)=0{,}0177σ′(4)=0,0177. La dérivée moyenne tombe à 0,04180{,}04180,0418, soit six fois moins que le maximum 0,250{,}250,25.

  • ·

    Les deux tiers des neurones sont en zone morte dès l'initialisation : leur gradient est presque nul, ils n'apprendront que très lentement.

Le cahier des charges de l'initialisation

CritèrePourquoi

(D1)

Deux neurones d'une même couche doivent être distinguables

sinon la couche a un seul degré de liberté

(D2)

Les préactivations doivent rester dans la zone non saturée

la dérivée y est proche de son maximum

(D3)

Le critère précédent doit tenir couche après couche

sinon il se dégrade avec la profondeur

(D4)

Il ne doit pas dépendre d'un réglage à la main

sinon c'est un hyperparamètre de plus, par couche

(D1) impose un tirage aléatoire continu : la probabilité que deux lignes soient égales est alors nulle. Restent (D2) à (D4).
DérivationLa variance d'initialisation tombe du critère de conservation
1

Hypothèses

  • ·

    Les poids wiw_iwi​ sont indépendants, centrés, de variance s2s^{2}s2, et indépendants des entrées

  • ·

    Les entrées xix_ixi​ sont indépendantes, centrées, de variance vvv

  • ·

    Le biais est nul

2

Point de départ

z=∑i=1dinwixiz=\sum_{i=1}^{d_{\mathrm{in}}}w_i x_iz=i=1∑din​​wi​xi​
3

Propriétés utilisées

  • ·

    L'indépendance de wiw_iwi​ et xix_ixi​ : E[wixi]=E[wi]E[xi]\mathbb{E}[w_ix_i]=\mathbb{E}[w_i]\mathbb{E}[x_i]E[wi​xi​]=E[wi​]E[xi​]

  • ·

    L'additivité de la variance pour des variables indépendantes

4

Étapes

  1. Par indépendance et centrage, chaque terme est de moyenne nulle, donc zzz aussi.

    E[wixi]=E[wi] E[xi]=0⟹E[z]=0\mathbb{E}[w_ix_i]=\mathbb{E}[w_i]\,\mathbb{E}[x_i]=0 \quad\Longrightarrow\quad \mathbb{E}[z]=0E[wi​xi​]=E[wi​]E[xi​]=0⟹E[z]=0

    indépendance et centrage

  2. Les termes étant indépendants, les variances s'ajoutent :

    Var⁡(z)=∑i=1dinE[wi2] E[xi2]=din s2 v\operatorname{Var}(z)=\sum_{i=1}^{d_{\mathrm{in}}}\mathbb{E}[w_i^2]\,\mathbb{E}[x_i^2]=d_{\mathrm{in}}\,s^{2}\,vVar(z)=i=1∑din​​E[wi2​]E[xi2​]=din​s2v

    additivité de la variance, puis identité des lois

  3. Le critère (D3) s'écrit « la variance ne change pas d'une couche à l'autre », donc Var⁡(z)=v\operatorname{Var}(z)=vVar(z)=v :

    din s2 v=v⟹s2=1dind_{\mathrm{in}}\,s^{2}\,v=v \quad\Longrightarrow\quad s^{2}=\frac{1}{d_{\mathrm{in}}}din​s2v=v⟹s2=din​1​

    traduction du critère, puis division par v non nul

5

Résultat

s2=1dinc’est-aˋ-direwji∼N ⁣(0, 1din)s^{2}=\frac{1}{d_{\mathrm{in}}} \qquad\text{c'est-à-dire}\qquad w_{ji}\sim\mathcal{N}\!\left(0,\ \frac{1}{d_{\mathrm{in}}}\right)s2=din​1​c’est-aˋ-direwji​∼N(0, din​1​)
6

Interprétation

L'écart-type 1/din1/\sqrt{d_{\mathrm{in}}}1/din​​ tombe du cahier des charges ; on ne l'a pas choisi. Il ne dépend d'aucun réglage, seulement de la largeur de la couche d'entrée : le critère (D4) est satisfait. C'est l'initialisation dite de Xavier, dans sa version « avant ». Vérification : pour din=784d_{\mathrm{in}}=784din​=784 et des entrées de moment d'ordre deux 0,11200{,}11200,1120, la prédiction est 0,1120{,}1120,112, et l'on mesure 0,11730{,}11730,1173. L'écart de 5 % vient de ce que les pixels ne sont ni centrés ni indépendants : les hypothèses sont approchées, et le résultat tient quand même.

Ce que ce résultat ne dit pas

  • ·

    Pour la ReLU, la moitié des valeurs sont annulées : si zzz est symétrique, E[a2]=12E[z2]\mathbb{E}[a^2]=\tfrac12\mathbb{E}[z^2]E[a2]=21​E[z2], la variance est divisée par deux à chaque couche. Il faut compenser par s2=2/dins^2=2/d_{\mathrm{in}}s2=2/din​, l'initialisation de He, celle de la page 7.

Trois panneaux. À gauche, la dérivée de la sigmoïde, en cloche, avec son maximum de 0,25 en zéro et deux zones grisées au-delà de plus ou moins 4 où elle tombe sous 0,018. Au milieu, la distribution des préactivations pour deux initialisations : la loi normale centrée réduite déborde largement des zones mortes, Xavier tient dans le pic central. À droite, la norme du gradient par couche sur un réseau à cinq couches, en échelle logarithmique : la sigmoïde monte d'un facteur 190 de la couche 1 à la couche 5, la ReLU reste plate.
(a) La dérivée de la sigmoïde ne dépasse jamais un quart. (b) La loi normale centrée réduite envoie 66,8 % des neurones en zone morte. (c) Quatre couches sigmoïdes éteignent le gradient d'un facteur 190.

Verdict

Candidat(D1)(D2)(D3)(D4)PrécisionVerdict

Tout à zéro

✗✓

sans objet

✓

0,33840{,}33840,3384

rejeté

Loi normale centrée réduite

✓✗✗✓

0,88110{,}88110,8811

rejeté

Xavier

✓✓✓✓

0,92080{,}92080,9208

retenu

Note honnête : la loi normale centrée réduite atteint tout de même 0,8811. À deux couches, la saturation ralentit sans tuer. Le vrai argument contre elle est le critère (D3), pas ces trois points de précision, et son coût réel apparaît à la page 7.
Vérification rapide n° 12

La couche cachée de notre réseau a une largeur d'entrée de 784, la couche de sortie de 128.

  1. a

    Quels sont les deux écarts-types d'initialisation ? Donne les valeurs numériques.

  2. b

    Pourquoi la couche de sortie a-t-elle droit à des poids plus grands que la couche cachée ? Réponds en une phrase, en te servant de la dérivation.

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

Leçon suivante
PrécédenteLe pas d'apprentissageSuivanteLa standardisation des entrées