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

Les gradients évanescents

Ce qui arrive au gradient quand il traverse plusieurs couches de sigmoïdes.

DérivationLa dérivée de la sigmoïde ne dépasse jamais un quart
1

Hypothèses

  • ·

    σ\sigmaσ est la sigmoïde logistique, et zzz est réel

2

Point de départ

σ′(z)=σ(z)(1−σ(z))\sigma'(z)=\sigma(z)\big(1-\sigma(z)\big)σ′(z)=σ(z)(1−σ(z))
3

Étapes

  1. Posons a=σ(z)a=\sigma(z)a=σ(z), qui parcourt l'intervalle ouvert de zéro à un, et étudions la fonction φ(a)=a(1−a)\varphi(a)=a(1-a)φ(a)=a(1−a).

    φ(a)=a−a2,φ′(a)=1−2a\varphi(a)=a-a^{2}, \qquad \varphi'(a)=1-2aφ(a)=a−a2,φ′(a)=1−2a

    changement de variable

  2. La dérivée s'annule en a=12a=\tfrac12a=21​, est positive avant et négative après : c'est un maximum.

    φ ⁣(12)=12⋅12=14\varphi\!\left(\tfrac12\right)=\tfrac12\cdot\tfrac12=\tfrac14φ(21​)=21​⋅21​=41​

    étude du signe de la dérivée

  3. Comme σ\sigmaσ est une bijection croissante de R\mathbb{R}R sur l'intervalle ouvert de zéro à un, avec σ(0)=12\sigma(0)=\tfrac12σ(0)=21​, l'égalité a lieu exactement en z=0z=0z=0.

    bijectivité de la sigmoïde

4

Résultat

∀z∈R,σ′(z)≤14,avec eˊgaliteˊ si et seulement si z=0\forall z\in\mathbb{R},\quad \sigma'(z)\le\frac14, \quad \text{avec égalité si et seulement si } z=0∀z∈R,σ′(z)≤41​,avec eˊgaliteˊ si et seulement si z=0
5

Interprétation

Le maximum lui-même est inférieur à un. C'est cela qui va tout gouverner : chaque couche traversée multiplie le gradient par un facteur au plus égal à un quart.

La dérivée de la sigmoïde, en quelques points

zzzσ(z)\sigma(z)σ(z)σ′(z)\sigma'(z)σ′(z)

0,0

0,500000

0,250000

1,0

0,731059

0,196612

2,0

0,880797

0,104994

4,0

0,982014

0,017663

6,0

0,997527

0,002467

La décroissance est brutale : à z = 4, la dérivée vaut déjà 70 fois moins qu'en zéro.

La conséquence sur L couches

En prenant les normes dans la relation de rétropropagation, avec ∥u⊙v∥≤∥u∥∞∥v∥\|u\odot v\|\le\|u\|_{\infty}\|v\|∥u⊙v∥≤∥u∥∞​∥v∥ et la norme d'opérateur, puis en itérant de la dernière couche jusqu'à la couche lll :

∥δ[l]∥ ≤ (14)L−l ∏m=l+1L∥W[m]∥2 ⋅ ∥δ[L]∥\|\delta^{[l]}\|\ \le\ \left(\frac{1}{4}\right)^{L-l}\ \prod_{m=l+1}^{L}\big\|W^{[m]}\big\|_{2}\ \cdot\ \|\delta^{[L]}\|∥δ[l]∥ ≤ (41​)L−l m=l+1∏L​​W[m]​2​ ⋅ ∥δ[L]∥
(4)
Si l'initialisation maintient les normes des matrices de l'ordre de un, ce que Xavier fait par construction, le facteur dominant est un quart puissance le nombre de couches traversées. Pour quatre couches d'écart, la borne vaut 256.

python cours/lecon3/experiences2.py E8 · réseau 784-64-64-64-64-10

      activation       couche 1     couche 2     couche 3     couche 4     couche 5   rapport 5/1
      sigmoide        3.641e-03    7.416e-03    3.050e-02    1.502e-01    6.926e-01         190.2
      relu            9.120e-01    2.869e-01    2.691e-01    2.726e-01    3.040e-01           0.3

Lecture

  • ·

    Avec la sigmoïde, la norme du gradient est multipliée par environ 4 à chaque couche en remontant. Rapport total : 190,2.

  • ·

    La borne théorique prédisait au plus 44=2564^{4}=25644=256. Le mesuré (190) et la borne (256) sont du même ordre, la borne n'étant pas atteinte parce que la dérivée vaut un quart seulement en zéro, et un peu moins ailleurs.

  • ·

    Avec la ReLU, le rapport est 0,30{,}30,3 : il n'y a pas d'atténuation multiplicative, parce que la dérivée vaut zéro ou un, jamais un facteur d'amortissement intermédiaire.

  • ·

    Conséquence pratique : avec un pas identique pour toutes les couches, la couche 1 du réseau sigmoïde reçoit des mises à jour 190 fois plus petites que la couche 5. Elle apprend 190 fois plus lentement, alors que c'est elle qui voit les pixels.

Ce que la ReLU coûte

Elle n'est pas dérivable en zéro : on choisit zéro par convention, et la preuve de la page 2 ne s'applique donc pas en ce point. Un neurone dont la préactivation est négative pour tous les exemples a un gradient exactement nul et ne se réveille jamais : c'est le neurone mort. Enfin elle demande l'initialisation de He, pas Xavier.

Vérification rapide n° 13

On mesure un rapport de 190 entre la couche 5 et la couche 1 sur un réseau à cinq couches sigmoïdes.

  1. a

    Quel rapport prédirait la borne pour un réseau à dix couches sigmoïdes, en supposant les normes des matrices proches de un ? Donne l'ordre de grandeur.

  2. b

    Si la couche 10 reçoit un gradient de norme 1, quelle est la norme reçue par la couche 1 ? Compare à la précision d'un flottant 64 bits, environ 2⋅10−162\cdot10^{-16}2⋅10−16, et conclus.

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

Leçon suivante
PrécédenteLa standardisation des entréesSuivanteSynthèse de l'optimisation, et formulaire