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

Synthèse de la série, formulaire et ressources

Les cinq chapitres bout à bout, le formulaire, et les erreurs fréquentes.

Qu'est-ce qu'un réseau, au juste, une fois les cinq chapitres derrière soi ?

Une couche, vue deux fois. En haut, l'aller se lit de gauche à droite, en encre : l'activation de la couche précédente, puis la somme pondérée z exposant l, puis l'activation a exposant l. En bas, le retour se lit de droite à gauche, en brique : le signal d'erreur de la couche suivante, puis le signal d'erreur delta exposant l, puis le gradient par rapport à l'activation précédente. Deux traits descendent de la rangée du haut vers celle du bas : l'un part de la somme pondérée, l'autre part de l'activation de la couche précédente. En pied, trois formules : le signal d'erreur d'une couche, le gradient par rapport à la matrice de poids, et le gradient par rapport au biais.
L'aller garde exactement ce que le retour consomme : la somme pondérée pour traverser l'activation, et l'activation de la couche précédente pour le gradient du poids.

Un modèle est une fonction à paramètres, et apprendre consiste à choisir ces paramètres à partir d'exemples. Un réseau de neurones enchaîne des couches dont chacune applique une matrice puis une fonction composante par composante : c'est la multiplication matricielle qui porte la propagation. Le coût transforme « le réseau se trompe » en un nombre dérivable, et minimiser ce nombre, c'est descendre la direction − gradθ CD-\,\mathrm{grad}_{\boldsymbol{\theta}}\,C_{\mathcal{D}}−gradθ​CD​. La rétropropagation est ce qui rend ce gradient calculable : elle décompose un réseau d'influences en une chaîne de dépendances, et la règle de la chaîne en donne chaque terme.

Ce que chaque chapitre ajoute

ChapitreCe qu'il établitL'objet qu'il ajoute

1 · Panorama

Ce qu'est un modèle, une perte, un jeu de données

θ\boldsymbol{\theta}θ, ℓ\ellℓ, D\mathcal{D}D

2 · Le réseau

Ce qu'un réseau calcule, et ce que ses poids valent

W[l]W^{[l]}W[l], b[l]\mathbf{b}^{[l]}b[l], softmax\mathrm{softmax}softmax

3 · L'optimisation

Pourquoi cette direction, ce pas, cette initialisation

gradθ CD\mathrm{grad}_{\boldsymbol{\theta}}\,C_{\mathcal{D}}gradθ​CD​, η\etaη, la différence finie

4 · La rétropropagation

Ce que fait l'algorithme, sur deux couches

δ[l]\boldsymbol{\delta}^{[l]}δ[l], ⊙\odot⊙, le produit extérieur

5 · Le calcul

Sa forme générale, démontrée par récurrence

φ\varphiφ quelconque, JfJ_{f}Jf​, diag\mathrm{diag}diag

Formulaire

z[l]=W[l]a[l−1]+b[l],a[l]=φ(z[l])δ[L]=a[L]−y,δ[l]=[(W[l+1])Tδ[l+1]]⊙φ′(z[l])gradW[l] ℓ=δ[l](a[l−1])T,gradb[l] ℓ=δ[l]∂ℓ∂aj[l−1]=∑i=1dlδi[l]Wij[l],Ja[l](z[l])=diag(φ′(z[l]))\begin{aligned}\mathbf{z}^{[l]}&=W^{[l]}\mathbf{a}^{[l-1]}+\mathbf{b}^{[l]}, & \mathbf{a}^{[l]}&=\varphi\big(\mathbf{z}^{[l]}\big)\\ \boldsymbol{\delta}^{[L]}&=\mathbf{a}^{[L]}-\mathbf{y}, & \boldsymbol{\delta}^{[l]}&=\big[\big(W^{[l+1]}\big)^{\mathsf{T}}\boldsymbol{\delta}^{[l+1]}\big]\odot\varphi'\big(\mathbf{z}^{[l]}\big)\\ \mathrm{grad}_{W^{[l]}}\,\ell&=\boldsymbol{\delta}^{[l]}\big(\mathbf{a}^{[l-1]}\big)^{\mathsf{T}}, & \mathrm{grad}_{\mathbf{b}^{[l]}}\,\ell&=\boldsymbol{\delta}^{[l]}\\ \frac{\partial\ell}{\partial a^{[l-1]}_{j}}&=\sum_{i=1}^{d_{l}}\delta^{[l]}_{i}W^{[l]}_{ij}, & J_{\mathbf{a}^{[l]}}\big(\mathbf{z}^{[l]}\big)&=\mathrm{diag}\big(\varphi'(\mathbf{z}^{[l]})\big)\end{aligned}z[l]δ[L]gradW[l]​ℓ∂aj[l−1]​∂ℓ​​=W[l]a[l−1]+b[l],=a[L]−y,=δ[l](a[l−1])T,=i=1∑dl​​δi[l]​Wij[l]​,​a[l]δ[l]gradb[l]​ℓJa[l]​(z[l])​=φ(z[l])=[(W[l+1])Tδ[l+1]]⊙φ′(z[l])=δ[l]=diag(φ′(z[l]))​
(5.13)
Ce qui est établiDémontré page

Ce dont dépend la perte, décomposé en trois rapports

4

Les trois dérivées constitutives, chacune sous son équation

5

Le poids et le biais de la dernière couche

6

L'activation de la couche précédente

7

Le signal d'erreur se transporte d'une couche à la précédente

8

Le poids, quand la couche a plusieurs neurones

9

L'activation, quand plusieurs chemins y mènent

9

Le retour, écrit sans indices

10

Ce que coûtent une passe avant et une passe retour

11

Le tableau des objets

ObjetTypeDéfini où

LLL, d0,…,dLd_{0},\dots,d_{L}d0​,…,dL​

Entiers

Page 9

W[l]W^{[l]}W[l]

Mdl,dl−1(R)\mathcal{M}_{d_{l},d_{l-1}}(\mathbb{R})Mdl​,dl−1​​(R)

Page 9

b[l]\mathbf{b}^{[l]}b[l], z[l]\mathbf{z}^{[l]}z[l], a[l]\mathbf{a}^{[l]}a[l], δ[l]\boldsymbol{\delta}^{[l]}δ[l]

Rdl\mathbb{R}^{d_{l}}Rdl​

Pages 9 et 8

φ\varphiφ, φ′\varphi'φ′

R→R\mathbb{R}\rightarrow\mathbb{R}R→R, appliquées composante par composante

Page 5

Jf(u)J_{f}(\mathbf{u})Jf​(u)

Mm,n(R)\mathcal{M}_{m,n}(\mathbb{R})Mm,n​(R)

Page 10

diag(u)\mathrm{diag}(\mathbf{u})diag(u)

Mn,n(R)\mathcal{M}_{n,n}(\mathbb{R})Mn,n​(R), nulle hors diagonale

Page 10

⊙\odot⊙

Produit composante par composante

Chapitre 4

ppp

Entier, formule (5.8)

Page 9

L'algorithme complet

TexteGradient de la perte d'un exemple, réseau à L couches
1entree   theta = (W[1], b[1], ..., W[L], b[L]),  x,  y2sortie   grad W[1], grad b[1], ..., grad W[L], grad b[L]3 4  a[0] <- x5  pour l de 1 a L :                     # passe avant6      z[l] <- W[l] a[l-1] + b[l]7      si l < L : a[l] <- phi(z[l])8      sinon    : a[l] <- softmax(z[l])9 10  delta <- a[L] - y                     # passe arriere11  pour l de L a 1 :12      grad W[l] <- delta (a[l-1])^T13      grad b[l] <- delta14      si l > 1 :15          delta <- ((W[l])^T delta) ⊙ phi'(z[l-1])

Erreurs fréquentes

  1. 01

    Appliquer la forme simple de la règle de la chaîne là où il y a un embranchement. Dès que la couche a plusieurs neurones, ∂ℓ/∂aj[l−1]\partial\ell/\partial a^{[l-1]}_{j}∂ℓ/∂aj[l−1]​ est une somme, pas un produit.

  2. 02

    Lire ∂ℓ/∂w\partial\ell/\partial w∂ℓ/∂w comme un quotient. C'est une limite ; le quotient dépend de hhh, sa limite non.

  3. 03

    Oublier que φ′\varphi'φ′ s'évalue en z[l]\mathbf{z}^{[l]}z[l], et non en a[l]\mathbf{a}^{[l]}a[l] ni en z[l+1]\mathbf{z}^{[l+1]}z[l+1].

  4. 04

    Garder le facteur φ′\varphi'φ′ à la dernière couche. Avec une perte appariée à l'activation de sortie, définie page 6, il a déjà disparu dans δ[L]=a[L]−y\boldsymbol{\delta}^{[L]}=\mathbf{a}^{[L]}-\mathbf{y}δ[L]=a[L]−y ; le remettre le compte deux fois.

  5. 05

    Traîner un facteur 222. Il vient du coût quadratique, que ce parcours n'emploie pas.

  6. 06

    Oublier la transposée dans la remontée. W[l+1]δ[l+1]W^{[l+1]}\boldsymbol{\delta}^{[l+1]}W[l+1]δ[l+1] n'a même pas les bonnes dimensions ; le contrôle est immédiat.

  7. 07

    Confondre jacobienne et gradient. Le gradient d'une fonction à valeurs réelles est la transposée de sa jacobienne, qui a alors une seule ligne.

  8. 08

    Croire que le produit de Hadamard est une commodité d'écriture. Il vient de ce que Ja[l](z[l])J_{\mathbf{a}^{[l]}}(\mathbf{z}^{[l]})Ja[l]​(z[l]) est diagonale, et elle l'est parce que φ\varphiφ agit composante par composante.

  9. 09

    Traverser le softmax composante par composante. Sa jacobienne n'est pas diagonale : 909090 coefficients hors diagonale non nuls, mesure 7.

  10. 10

    Écrire Wij[l]W^{[l]}_{ij}Wij[l]​ pour le poids allant du neurone iii vers le neurone jjj. L'ordre est l'inverse, et il est celui de la matrice.

  11. 11

    Conclure d'une vérification numérique qu'une identité est démontrée. Une différence finie contrôle un cas, pas un énoncé.

  12. 12

    Lire un écart relatif là où la dérivée est plus petite que le plancher d'arrondi. Il ne mesure alors plus rien, mesure 4.

ExerciceQuestion de vérification du chapitre12 min

Sur un réseau   3→4→4→2  \;3\rightarrow 4\rightarrow 4\rightarrow 2\;3→4→4→2 avec φ=ReLU\varphi=\mathrm{ReLU}φ=ReLU sur les couches cachées et softmax\mathrm{softmax}softmax en sortie, écrire les dimensions de W[1],W[2],W[3]W^{[1]},W^{[2]},W^{[3]}W[1],W[2],W[3], de δ[1],δ[2],δ[3]\boldsymbol{\delta}^{[1]},\boldsymbol{\delta}^{[2]},\boldsymbol{\delta}^{[3]}δ[1],δ[2],δ[3] et de gradW[2] ℓ\mathrm{grad}_{W^{[2]}}\,\ellgradW[2]​ℓ ; puis compter ppp par la formule (5.8), et majorer le coût du gradient en propagations avant.

Attendu · Sept dimensions, la valeur de $p$, et un majorant du coût.

    Pour aller plus loin

    RessourceAuteurCe qu'on y trouve

    Neural Networks and Deep Learning

    Michael Nielsen

    Un livre en ligne qui démontre les quatre équations de la rétropropagation et les met en œuvre en Python.

    Calculus on Computational Graphs: Backpropagation

    Christopher Olah

    Un billet qui traite la rétropropagation comme un parcours de graphe, et la rapproche de la différentiation en mode direct.

    Distill

    Revue collective

    Des articles d'apprentissage automatique dont les figures sont interactives.

    Deep Learning

    Ian Goodfellow, Yoshua Bengio, Aaron Courville

    Un ouvrage de référence dont le chapitre 6 couvre la différentiation automatique sur des graphes quelconques.

    La règle de la chaîne, dont chaque dérivation se sert, se démontre dans le bloc de mathématiques du parcours.

    L'ordre des notions suit celui du dernier chapitre 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 démonstrations, les sept mesures et les vingt-huit animations sont propres à ce cours, et les écarts pris à la source sont signalés à la page où ils se produisent.

    Retour au sommaire
    PrécédenteCe que la profondeur coûte, ce que l'algorithme économiseFin du cours