• Projets00
  • AI Academy13
  • Veille07 entrées ces 7 derniers jours
  • Outils00
Profil
Déposer un projet
ProjetsAI AcademyVeilleOutilsProfilDéposer
Le cours
36/59
Lecture5 minAccès libre

Le cadre du cours

Ce que le chapitre règle : comment obtenir le gradient sans le calculer composante par composante.

Une image traverse le réseau, dix nombres en sortent, et l'étiquette dit lequel des dix aurait dû l'emporter. Il faut maintenant corriger les coefficients du réseau pour que ce soit le cas la prochaine fois, et il y en a plus de cent mille. Par où commence-t-on ?

À gauche, une grille carrée de vingt-huit sur vingt-huit pixels portant un deux manuscrit en encre sombre. Une flèche mène à trois colonnes de ronds vides, alignées de gauche à droite. La première montre trois ronds, trois points de suspension et un quatrième rond, et porte dessous le nombre sept cent quatre-vingt-quatre et la mention un par pixel. La deuxième est bâtie de même et porte dessous cent vingt-huit et la mention un choix. La troisième montre ses dix ronds, et porte dessous le nombre dix et la mention un par chiffre. Chaque rond d'une colonne est relié par un filet gris pâle à tous les ronds de la colonne suivante. Au-dessus des colonnes, une flèche grise va de gauche à droite et porte la mention l'aller, chapitre deux. En dessous, une flèche de brique va de droite à gauche et porte la mention le retour, ce chapitre.
Le calcul va de l'image vers la réponse ; la correction fait le chemin inverse.

La colonne de gauche porte un rond par pixel de l'image, soit 784784784, celle de droite en porte dix, un par chiffre possible, et celle du milieu en porte 128128128, la largeur que le chapitre 3 a justifiée par la mesure.

La flèche grise est le calcul du chapitre 2, qui part de l'image et rend dix nombres. La flèche de brique va dans l'autre sens.

Le chapitre 3 a établi ce qu'on cherche, une valeur de θ\boldsymbol{\theta}θ qui minimise CDC_{\mathcal{D}}CD​, et par quel procédé on la cherche : faire un pas dans la direction − gradθ CD-\,\mathrm{grad}_{\boldsymbol{\theta}}\,C_{\mathcal{D}}−gradθ​CD​, puis recommencer. Il n'a obtenu ce vecteur que par différences finies centrées, à un coût qui interdit d'entraîner.

Prérequis

  1. 01

    Le softmax et la perte d'un exemple, définis au chapitre 2, page 6, avec l'encodage y=onehot(c)\mathbf{y}=\mathrm{onehot}(c)y=onehot(c) ; le nom d'entropie croisée est posé au chapitre 3, page 5.

  2. 02

    La dérivée partielle et le gradient, définis au chapitre 3, page 8, avec leurs types : un scalaire pour la première, un vecteur colonne de Rp\mathbb{R}^{p}Rp pour le second.

  3. 03

    Les différences finies centrées [C(θ+ε)−C(θ−ε)]/(2ε)\big[C(\theta+\varepsilon)-C(\theta-\varepsilon)\big]/(2\varepsilon)[C(θ+ε)−C(θ−ε)]/(2ε), employées au chapitre 3 comme procédé de contrôle, et leur coût.

  4. 04

    Le produit matriciel et sa règle de dimensions : (m×n)(n×q)→m×q(m\times n)(n\times q)\rightarrow m\times q(m×n)(n×q)→m×q, le nombre de colonnes du premier facteur devant égaler le nombre de lignes du second.

  5. 05

    L'architecture 784→128→10784\rightarrow 128\rightarrow 10784→128→10 du chapitre 2 : z[l]=W[l]a[l−1]+b[l]\mathbf{z}^{[l]}=W^{[l]}\mathbf{a}^{[l-1]}+\mathbf{b}^{[l]}z[l]=W[l]a[l−1]+b[l], ReLU\mathrm{ReLU}ReLU sur la couche cachée, softmax\mathrm{softmax}softmax en sortie.

Objectifs

  1. 01

    Lire sur les dix nombres que le réseau vient de rendre dans quel sens chacun doit bouger, et sur quelle quantité cette lecture porte.

  2. 02

    Démontrer qu'un seul des dix doit monter, et que sa correction pèse autant que celles des neuf autres réunies.

  3. 03

    Démontrer que la dérivée de la perte par rapport à un biais de la dernière couche ne dépend d'aucune activation.

  4. 04

    Démontrer que la dérivée par rapport à un poids est exactement proportionnelle à l'activation d'où ce poids part, et écrire les 1 2801\,2801280 dérivées d'un coup.

  5. 05

    Lire sur le signe d'un poids le sens dans lequel l'activation d'avant doit varier.

  6. 06

    Démontrer que les dix termes portés sur une même activation cachée s'additionnent, et que cette somme s'écrit avec la matrice transposée.

  7. 07

    Écrire le passage d'une couche à l'autre, et dire ce que ReLU\mathrm{ReLU}ReLU laisse passer au retour.

  8. 08

    Démontrer que la moyenne des corrections d'exemples est le gradient du coût, sans facteur ni approximation.

  9. 09

    Vérifier l'algorithme entier par différences finies, et chiffrer ce qu'il économise.

Plan

  1. 01

    Poser ce qu'on cherche, et le chiffre qui interdit de l'obtenir par différences finies

  2. 02

    Lire, sur un seul exemple, dans quel sens chacune des dix sorties doit bouger

  3. 03

    Suivre la première voie : le biais

  4. 04

    Suivre la deuxième voie : les poids

  5. 05

    Rapprocher la mise à jour de la théorie de Hebb, et dire où l'analogie casse

  6. 06

    Suivre la troisième voie : les activations de la couche d'avant

  7. 07

    Additionner les dix termes portés sur une même activation cachée

  8. 08

    Descendre d'une couche, et traverser ReLU\mathrm{ReLU}ReLU

  9. 09

    Passer d'un exemple à tous les exemples

  10. 10

    Écrire l'algorithme, et le vérifier

  11. 11

    Synthèse, formulaire, tableau des objets, erreurs fréquentes

Ce que ce chapitre règle

Le chapitre 3 se termine sur un chiffre, et c'est la question qu'il laisse à celui-ci.

Dette ouverte au chapitre 3Réglée pageComment

Un gradient par différences finies centrées coûte 203 540203\,540203540 propagations avant, et il en faut un à chaque pas

3 à 11

Par l'algorithme construit aux pages 3 à 9, puis chronométré page 11 : 2 3842\,3842384 µs contre 42,942{,}942,9 s sur la même machine

Ce que ce chapitre laisse ouvert

DetteD'où elle vientChapitre qui la rembourse

La preuve de la règle de la chaîne, dans ses deux formes

Page 3 : les deux énoncés sont admis et vérifiés numériquement, non démontrés

Bloc de mathématiques : l'approximation au premier ordre

La dérivée de la perte d'entropie croisée composée avec le softmax, gradz[2] ℓ=a[2]−y\mathrm{grad}_{\mathbf{z}^{[2]}}\,\ell=\mathbf{a}^{[2]}-\mathbf{y}gradz[2]​ℓ=a[2]−y

Page 3 : le chapitre 2 pose le softmax et la perte, mais n'y dérive aucun gradient

Bloc de mathématiques, avec la règle de la chaîne dont elle est un cas

La forme générale à LLL couches, et le traitement d'une fonction d'activation quelconque

Page 9 : le passage d'une couche à l'autre est écrit une fois, pour ReLU\mathrm{ReLU}ReLU et pour deux couches

Chapitre 5 : la règle de la chaîne multivariée sous forme jacobienne

D'où vient l'ordre de ce chapitre

L'ordre des notions suit celui du chapitre sur la rétropropagation de la série de Grant Sanderson sur les réseaux de neurones, publiée sous le nom 3Blue1Brown. Le texte, les définitions, les sept propositions, les huit mesures et les animations sont propres à ce cours. Quatre écarts délibérés y sont pris, et chacun est signalé au lecteur à l'endroit où il se produit.

Le protocole des mesures

Réseau 784→128→10784\rightarrow 128\rightarrow 10784→128→10, ReLU\mathrm{ReLU}ReLU, softmax\mathrm{softmax}softmax, entropie croisée, poids tirés selon une loi normale centrée d'écart-type 2/dl−1\sqrt{2/d_{l-1}}2/dl−1​​, biais nuls, graine 000, soit le protocole des chapitres 2 et 3. Le réseau est non entraîné, sauf à la mesure 4. Tous les nombres cités sortent de cours/lecon4/mesures.py.

Leçon suivante
PrécédenteSynthèse, formulaire et erreurs fréquentesSuivanteCe qu'on cherche, et ce qu'on ne sait pas encore calculer