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

Pourquoi on n'utilise pas tout le jeu

Pourquoi chaque pas se calcule sur un petit paquet d'images plutôt que sur les soixante mille.

Faire un pas demande le gradient, et le gradient demande les soixante mille images. Faut-il vraiment les regarder toutes pour avancer une fois ?

Cinq éventails côte à côte, un par taille de lot, portant dessous les mentions B égale un, huit, soixante-quatre, cinq cent douze et quatre mille quatre-vingt-seize. Dans chacun, un trait gris vertical donne la direction du gradient complet, et trente ronds gris marquent chacun la direction d'un tirage, placés à l'angle mesuré. Un trait brique donne l'angle moyen. L'éventail est très ouvert à gauche et se referme progressivement jusqu'à n'être presque plus qu'un trait à droite, et l'angle moyen est porté sous chaque éventail.
Trente tirages par taille, tous au même point de l'espace des paramètres. Seule la direction compte ici, jamais la longueur.

La règle (8.4)(8.4)(8.4) demande grad CD\mathrm{grad}\,C_{\mathcal{D}}gradCD​, donc une passe sur le jeu entier à chaque pas, et un entraînement de 28 14028\,14028140 pas en demanderait 28 14028\,14028140.

Un pas de la règle (8.4)(8.4)(8.4) demande gradθ CD\mathrm{grad}_{\boldsymbol{\theta}}\,C_{\mathcal{D}}gradθ​CD​, et CDC_{\mathcal{D}}CD​ est une moyenne sur 60 00060\,00060000 exemples : chaque pas coûte donc une passe complète sur le jeu. Trente époques de descente à jeu complet feraient trente pas. Le chapitre 2 en a fait 28 14028\,14028140 dans le même temps, en évaluant à chaque fois sur 646464 images seulement, et il ne l'a jamais justifié.

Le lot, et ce qu'on en attend

Mini-lotmini-batch

Une partie B⊆[ ⁣[1,N] ⁣]\mathcal{B}\subseteq[\![1,N]\!]B⊆[[1,N]] de cardinal BBB, tirée uniformément au hasard sans remise. Le coût sur ce lot est CB(θ)=1B∑n∈Bℓ(fθ(x(n)),c(n))C_{\mathcal{B}}(\boldsymbol{\theta})=\frac{1}{B}\sum_{n\in\mathcal{B}}\ell\big(f_{\boldsymbol{\theta}}(\mathbf{x}^{(n)}),c^{(n)}\big)CB​(θ)=B1​∑n∈B​ℓ(fθ​(x(n)),c(n)), de Rp\mathbb{R}^{p}Rp dans R≥0\mathbb{R}_{\geq 0}R≥0​, la même forme que CDC_{\mathcal{D}}CD​ sur moins d'exemples.

Quatre notions de probabilité suffisent ici, et elles sont posées au strict nécessaire. La probabilité P(A)\mathbb{P}(A)P(A) d'un événement est la part des tirages où il se produit. L'espérance E[⋅]\mathbb{E}[\cdot]E[⋅] d'un vecteur aléatoire est le vecteur des espérances de ses coordonnées, et elle est linéaire. La variance d'un vecteur aléatoire VVV autour de sa moyenne est E∥V−EV∥2\mathbb{E}\|V-\mathbb{E}V\|^{2}E∥V−EV∥2, un scalaire positif ; un vecteur aléatoire est dit centré quand son espérance est nulle. Le cadre général, espace probabilisé, indépendance, existence des moments, appartient au chapitre de probabilités, et la proposition 5 emprunte à ce cadre une propriété que ce chapitre ne démontre pas : la variance d'une moyenne de BBB vecteurs indépendants de même variance σ2\sigma^{2}σ2 vaut σ2/B\sigma^{2}/Bσ2/B.

cos⁡(u,v)=⟨u,v⟩∥u∥ ∥v∥ ∈[−1,1],u,v∈Rp∖{0}\cos(\mathbf{u},\mathbf{v})=\frac{\langle\mathbf{u},\mathbf{v}\rangle}{\|\mathbf{u}\|\,\|\mathbf{v}\|}\ \in[-1,1],\qquad \mathbf{u},\mathbf{v}\in\mathbb{R}^{p}\setminus\{\mathbf{0}\}cos(u,v)=∥u∥∥v∥⟨u,v⟩​ ∈[−1,1],u,v∈Rp∖{0}
(9.1)
Il vaut 111 pour deux vecteurs de même direction et de même sens, 000 pour deux vecteurs orthogonaux. Il ne dépend pas des longueurs, et c'est ce qui en fait la bonne mesure ici, puisque seule la direction du pas nous intéresse.

Un lot se trompe, mais il ne triche pas

Soixante-quatre images ne donnent évidemment pas le gradient des soixante mille. La question n'est pas de savoir si le lot se trompe, c'est de savoir s'il se trompe toujours du même côté. Un écart qui se répète s'accumule sur des milliers de pas ; un écart qui change de sens à chaque tirage se compense.

Une quantité tirée au hasard est dite sans biais pour une cible quand sa moyenne sur tous les tirages possibles vaut exactement cette cible. Le mot n'a rien à voir avec les biais b[l]\mathbf{b}^{[l]}b[l] du réseau : il dit seulement qu'un tirage se trompe sans pencher.

DérivationProposition 4 · Le gradient d'un lot est sans biais
1

Hypothèses

  • ·

    B\mathcal{B}B est de cardinal BBB, tiré uniformément sans remise dans [ ⁣[1,N] ⁣][\![1,N]\!][[1,N]].

  • ·

    gn=gradθ ℓ(fθ(x(n)),c(n))∈Rp\mathbf{g}_{n}=\mathrm{grad}_{\boldsymbol{\theta}}\,\ell\big(f_{\boldsymbol{\theta}}(\mathbf{x}^{(n)}),c^{(n)}\big)\in\mathbb{R}^{p}gn​=gradθ​ℓ(fθ​(x(n)),c(n))∈Rp est le gradient de la perte du seul exemple nnn.

  • ·

    θ\boldsymbol{\theta}θ est fixé : l'aléa ne porte que sur le tirage du lot.

2

Propriétés utilisées

  • ·

    Linéarité de l'espérance

  • ·

    Symétrie du tirage uniforme : chaque indice a la même probabilité B/NB/NB/N d'appartenir à B\mathcal{B}B

3

Étapes

  1. Le gradient est linéaire en la fonction qu'il dérive, et CBC_{\mathcal{B}}CB​ est une moyenne. Donc :

  2. gradθ CB(θ)=1B∑n∈Bgn=1B∑n=1N1{n∈B} gn\mathrm{grad}_{\boldsymbol{\theta}}\,C_{\mathcal{B}}(\boldsymbol{\theta})=\frac{1}{B}\sum_{n\in\mathcal{B}}\mathbf{g}_{n}=\frac{1}{B}\sum_{n=1}^{N}\mathbb{1}\{n\in\mathcal{B}\}\,\mathbf{g}_{n}gradθ​CB​(θ)=B1​n∈B∑​gn​=B1​n=1∑N​1{n∈B}gn​

    La seconde écriture fait porter tout l'aléa sur les indicatrices, et les gn\mathbf{g}_{n}gn​ deviennent des constantes.

  3. E[1{n∈B}]=P(n∈B)=BNpour tout n∈[ ⁣[1,N] ⁣]\mathbb{E}\big[\mathbb{1}\{n\in\mathcal{B}\}\big]=\mathbb{P}(n\in\mathcal{B})=\frac{B}{N}\qquad\text{pour tout } n\in[\![1,N]\!]E[1{n∈B}]=P(n∈B)=NB​pour tout n∈[[1,N]]

    Le tirage est uniforme sans remise : les (NB)\binom{N}{B}(BN​) parties de cardinal BBB sont équiprobables, et (N−1B−1)/(NB)=B/N\binom{N-1}{B-1}/\binom{N}{B}=B/N(B−1N−1​)/(BN​)=B/N d'entre elles contiennent un indice donné.

  4. E[gradθ CB]=1B∑n=1NBN gn=1N∑n=1Ngn=gradθ CD(θ)\mathbb{E}\big[\mathrm{grad}_{\boldsymbol{\theta}}\,C_{\mathcal{B}}\big]=\frac{1}{B}\sum_{n=1}^{N}\frac{B}{N}\,\mathbf{g}_{n}=\frac{1}{N}\sum_{n=1}^{N}\mathbf{g}_{n}=\mathrm{grad}_{\boldsymbol{\theta}}\,C_{\mathcal{D}}(\boldsymbol{\theta})E[gradθ​CB​]=B1​n=1∑N​NB​gn​=N1​n=1∑N​gn​=gradθ​CD​(θ)

    Linéarité de l'espérance, puis simplification de BBB, puis reconnaissance de la moyenne des gn\mathbf{g}_{n}gn​.

4

Résultat

E[gradθ CB(θ)]=gradθ CD(θ)\mathbb{E}\big[\mathrm{grad}_{\boldsymbol{\theta}}\,C_{\mathcal{B}}(\boldsymbol{\theta})\big]=\mathrm{grad}_{\boldsymbol{\theta}}\,C_{\mathcal{D}}(\boldsymbol{\theta})E[gradθ​CB​(θ)]=gradθ​CD​(θ)
5

Interprétation

Un lot ne donne pas le bon gradient, il en donne un autre, et la page le mesure. Mais il ne se trompe pas systématiquement : en moyenne sur les tirages, il vise juste. C'est cela qui autorise à l'employer, puisque les erreurs de direction se compensent d'un pas au suivant au lieu de s'accumuler.

Ce que ce résultat ne dit pas

  • ·

    La proposition ne dit rien de l'écart d'un tirage au gradient complet. C'est l'objet de la proposition 5.

  • ·

    Elle suppose θ\boldsymbol{\theta}θ fixé. Au cours d'un entraînement, θ\boldsymbol{\theta}θ change à chaque pas et dépend des lots précédents : l'énoncé s'applique à chaque pas pris isolément, pas à la trajectoire entière.

Ce qu'un lot deux fois plus grand achète

Viser juste en moyenne ne dit pas de combien on se trompe à chaque tirage, et c'est pourtant ce qui décide de la taille du lot. Il reste donc à relier l'écart typique à BBB.

DérivationProposition 5 · La qualité d'un lot croît comme la racine de sa taille
1

Hypothèses

  • ·

    g=gradθ CD(θ)\mathbf{g}=\mathrm{grad}_{\boldsymbol{\theta}}\,C_{\mathcal{D}}(\boldsymbol{\theta})g=gradθ​CD​(θ), et gB\mathbf{g}_{\mathcal{B}}gB​ le gradient d'un lot de taille BBB.

  • ·

    Hypothèse de travail : les gn\mathbf{g}_{n}gn​ du lot sont tirés indépendamment, de variance finie σ2=E∥gn−g∥2\sigma^{2}=\mathbb{E}\|\mathbf{g}_{n}-\mathbf{g}\|^{2}σ2=E∥gn​−g∥2.

  • ·

    κ=σ2/∥g∥2\kappa=\sigma^{2}/\|\mathbf{g}\|^{2}κ=σ2/∥g∥2, un nombre sans dimension qui ne dépend que du point θ\boldsymbol{\theta}θ et du jeu.

2

Propriétés utilisées

  • ·

    La variance d'une moyenne de BBB variables indépendantes de même variance σ2\sigma^{2}σ2 vaut σ2/B\sigma^{2}/Bσ2/B

  • ·

    Décomposition orthogonale : gB=g+(gB−g)\mathbf{g}_{\mathcal{B}}=\mathbf{g}+(\mathbf{g}_{\mathcal{B}}-\mathbf{g})gB​=g+(gB​−g), dont le second terme est centré

3

Étapes

  1. E∥gB−g∥2=σ2B\mathbb{E}\big\|\mathbf{g}_{\mathcal{B}}-\mathbf{g}\big\|^{2}=\frac{\sigma^{2}}{B}E​gB​−g​2=Bσ2​

    gB\mathbf{g}_{\mathcal{B}}gB​ est la moyenne de BBB termes indépendants d'espérance g\mathbf{g}g, par la proposition 4.

  2. Écrivons gB=g+r\mathbf{g}_{\mathcal{B}}=\mathbf{g}+\mathbf{r}gB​=g+r, où r=gB−g\mathbf{r}=\mathbf{g}_{\mathcal{B}}-\mathbf{g}r=gB​−g est le bruit du tirage. Par la proposition 4 il est centré, donc E⟨g,r⟩=⟨g,Er⟩=0\mathbb{E}\langle\mathbf{g},\mathbf{r}\rangle=\langle\mathbf{g},\mathbb{E}\mathbf{r}\rangle=0E⟨g,r⟩=⟨g,Er⟩=0 : en moyenne le bruit est orthogonal au signal. Il vient alors deux identités en espérance :

  3. E⟨gB,g⟩=∥g∥2,E∥gB∥2=∥g∥2+E∥r∥2=∥g∥2+σ2B\mathbb{E}\langle\mathbf{g}_{\mathcal{B}},\mathbf{g}\rangle=\|\mathbf{g}\|^{2},\qquad \mathbb{E}\|\mathbf{g}_{\mathcal{B}}\|^{2}=\|\mathbf{g}\|^{2}+\mathbb{E}\|\mathbf{r}\|^{2}=\|\mathbf{g}\|^{2}+\frac{\sigma^{2}}{B}E⟨gB​,g⟩=∥g∥2,E∥gB​∥2=∥g∥2+E∥r∥2=∥g∥2+Bσ2​

    La première vient de la linéarité et de Er=0\mathbb{E}\mathbf{r}=\mathbf{0}Er=0 ; la seconde développe ∥g+r∥2=∥g∥2+2⟨g,r⟩+∥r∥2\|\mathbf{g}+\mathbf{r}\|^{2}=\|\mathbf{g}\|^{2}+2\langle\mathbf{g},\mathbf{r}\rangle+\|\mathbf{r}\|^{2}∥g+r∥2=∥g∥2+2⟨g,r⟩+∥r∥2 et prend l'espérance, le terme croisé s'annulant.

  4. E[cos⁡2(gB,g)] ≈ ∥g∥2∥g∥2+σ2/B=11+κ/B\mathbb{E}\big[\cos^{2}(\mathbf{g}_{\mathcal{B}},\mathbf{g})\big]\ \approx\ \frac{\|\mathbf{g}\|^{2}}{\|\mathbf{g}\|^{2}+\sigma^{2}/B}=\frac{1}{1+\kappa/B}E[cos2(gB​,g)] ≈ ∥g∥2+σ2/B∥g∥2​=1+κ/B1​

    C'est ici qu'est l'approximation, et c'est la seule. cos⁡2\cos^{2}cos2 est le quotient ⟨gB,g⟩2/(∥gB∥2∥g∥2)\langle\mathbf{g}_{\mathcal{B}},\mathbf{g}\rangle^{2}/(\|\mathbf{g}_{\mathcal{B}}\|^{2}\|\mathbf{g}\|^{2})⟨gB​,g⟩2/(∥gB​∥2∥g∥2), et l'on remplace l'espérance de ce quotient par le quotient des espérances calculées ci-dessus. Les deux ne sont égales que si la dispersion est petite, et la mesure de B=1B=1B=1 montrera ce qu'il advient quand elle ne l'est pas.

  5. 1E[cos⁡2]−1=κB⟺B(1E[cos⁡2]−1)=κ\frac{1}{\mathbb{E}[\cos^{2}]}-1=\frac{\kappa}{B}\qquad\Longleftrightarrow\qquad B\left(\frac{1}{\mathbb{E}[\cos^{2}]}-1\right)=\kappaE[cos2]1​−1=Bκ​⟺B(E[cos2]1​−1)=κ

    Inversion de la relation précédente. Le membre de gauche porte E[cos⁡2]\mathbb{E}[\cos^{2}]E[cos2] et non cos⁡2\cos^{2}cos2 : la table de mesure substituera le carré du cosinus moyen, et dira ce que cette substitution coûte.

4

Résultat

B(1cos⁡2(gB,g)−1)  ne deˊpend pas de BB\left(\frac{1}{\cos^{2}(\mathbf{g}_{\mathcal{B}},\mathbf{g})}-1\right)\ \text{ ne dépend pas de }BB(cos2(gB​,g)1​−1)  ne deˊpend pas de B
5

Interprétation

Pour BBB grand, cos⁡≈1−κ/(2B)\cos\approx 1-\kappa/(2B)cos≈1−κ/(2B) : l'écart au bon gradient décroît comme 1/B1/B1/B, donc l'angle comme 1/B1/\sqrt{B}1/B​. Multiplier la taille du lot par quatre divise l'angle par deux, et c'est un rendement décroissant, puisque le passage de 888 à 646464 gagne bien plus que celui de 512512512 à 4 0964\,0964096. C'est cet arbitrage qui décide de la taille employée.

Ce que ce résultat ne dit pas

  • ·

    L'hypothèse d'indépendance est fausse pour un tirage sans remise ; elle est acceptable ici parce que B≪NB\ll NB≪N.

  • ·

    L'approximation de l'espérance du quotient est nommée et non justifiée : elle appartient au chapitre de probabilités.

  • ·

    La proposition parle du cosinus moyen. Elle ne dit rien de sa dispersion, et la mesure ci-dessous montre que cette dispersion décide de la validité de la lecture.

Une courbe décroissante joint cinq ronds, un par taille de lot. L'axe horizontal porte les tailles un, huit, soixante-quatre, cinq cent douze et quatre mille quatre-vingt-seize, espacées régulièrement, sous la mention images par pas. Au-dessus de chaque rond est inscrit l'angle mesuré en degrés, du plus grand à gauche au plus petit à droite. La courbe tombe vite entre les deux premières tailles puis s'aplatit.
Chaque cran de l'axe horizontal multiplie le calcul par huit. Le gain, lui, ne suit pas.

Cinq tailles de lot, 30 tirages chacune · cours/lecon3/mesures.py, mesure 5

    gradient complet sur les 60000 exemples, norme 1.355255

         B    cos moyen   écart-type   B(1/cos²-1)
         1      0.0898       0.1992          123.1
         8      0.3699       0.1434           50.5
        64      0.7587       0.0594           47.2
       512      0.9580       0.0067           45.9
      4096      0.9949       0.0012           42.0

         B    angle (degrés)
         1       84.9
         8       68.3
        64       40.6
       512       16.7
      4096        5.8

Lecture

  • ·

    La dernière colonne est celle que la proposition 5 prédit constante, à une substitution près qu'il faut dire. La proposition porte sur E[cos⁡2]\mathbb{E}[\cos^{2}]E[cos2] ; le programme, lui, calcule B(1/cos⁡‾2−1)B\big(1/\overline{\cos}^{2}-1\big)B(1/cos2−1) à partir du cosinus moyen. Les deux coïncident quand la dispersion est petite devant la moyenne, et se séparent sinon.

  • ·

    De B=8B=8B=8 à B=4 096B=4\,096B=4096 la colonne vaut entre 42,042{,}042,0 et 50,550{,}550,5, soit une variation de 20 %20\,\%20% pendant que BBB est multiplié par 512512512 : la loi tient là où la substitution est légitime.

  • ·

    À B=1B=1B=1 elle vaut 123,1123{,}1123,1, et c'est la substitution qui casse, pas la loi. L'écart-type, 0,19920{,}19920,1992, dépasse le double de la moyenne, 0,08980{,}08980,0898 ; or E[cos⁡2]\mathbb{E}[\cos^{2}]E[cos2] vaut la moyenne au carré plus la variance, soit 0,08982+0,19922=0,04770{,}0898^{2}+0{,}1992^{2}=0{,}04770,08982+0,19922=0,0477, et la colonne recalculée sur cette valeur donne 19,919{,}919,9 au lieu de 123,1123{,}1123,1. À B=1B=1B=1, la direction d'un tirage n'a plus de valeur typique, et aucune des deux quantités ne renseigne.

  • ·

    Un lot de 646464 pointe à cos⁡=0,7587\cos=0{,}7587cos=0,7587 du bon gradient, soit un angle de 40,640{,}640,6 degrés. Chaque pas de l'entraînement du chapitre 2 partait donc franchement de travers, et le réseau a atteint 98,14 %98{,}14\,\%98,14%. C'est le fait à retenir de cette page.

  • ·

    Le rendement décroît vite : passer de 888 à 646464 fait tomber l'angle de 686868 à 414141 degrés pour huit fois plus de calcul, et passer de 512512512 à 4 0964\,0964096 le fait tomber de 171717 à 666 degrés pour huit fois plus encore. La règle « quatre fois plus d'images, deux fois moins d'angle » ne se lit d'ailleurs proprement qu'en bas de table, là où les angles sont petits : de 512512512 à 4 0964\,0964096 l'angle est divisé par 2,92{,}92,9 pour un facteur 888, ce qu'annonce 1/B1/\sqrt{B}1/B​, alors que de 888 à 646464 il ne l'est que par 1,71{,}71,7.

Le gradient complet, et autour de lui l'éventail des gradients de lot : chacun vise à côté, et l'éventail se resserre à mesure que le lot grandit.

Un vecteur d'encre part du bas de l'écran et monte vers la droite en pente raide, occupant presque toute la hauteur du cadre ; son nom s'inscrit à sa pointe : gradient complet. C'est la direction calculée sur la totalité des images, et il ne bougera plus de toute la scène. Un second vecteur, de brique et de même longueur, part du même point, mais dans une direction tout autre : il file vers la gauche en montant à peine, à peu près perpendiculaire au premier. Un arc mince relie les deux flèches près de leur origine, et deux mentions s'inscrivent à droite : lot de un, et quatre-vingt-quatre virgule neuf degrés. La mention change alors pour lot de huit, et le vecteur de brique pivote vers celui d'encre, l'arc se referme : soixante-huit virgule trois degrés. Le mouvement se répète trois fois. Lot de soixante-quatre : quarante virgule six degrés, le vecteur de brique s'est redressé et monte maintenant du même côté que celui d'encre. Lot de cinq cent douze : seize virgule sept degrés, l'arc n'est plus qu'un fragment. Lot de quatre mille quatre-vingt-seize : cinq virgule huit degrés, et les deux vecteurs sont presque confondus, l'arc réduit à un trait. Le vecteur de brique n'a jamais rejoint exactement celui d'encre.

0:00 / 0:14

Dette du chapitre 2 réglée : les mini-lots de 64

Le chapitre 2 tirait des lots de 646464 sans dire pourquoi 646464, ni pourquoi des lots. Les deux réponses sont ici. Pourquoi des lots : la proposition 4, puisque en moyenne un lot vise juste et que les erreurs de direction se compensent au lieu de s'accumuler. Pourquoi 646464 : la proposition 5 et la table, puisque c'est le palier où l'angle est déjà tombé sous 454545 degrés, et au-delà duquel chaque division de l'angle par deux coûte quatre fois plus de calcul. Ce n'est pas une valeur optimale, c'est un arbitrage, et il se lit dans la table.

Vérification rapide n° 29

Un lot de 646464 pointe à cos⁡=0,7587\cos=0{,}7587cos=0,7587 du gradient complet.

  1. a

    À quel angle cela correspond-il ?

  2. b

    Pourquoi la descente fonctionne-t-elle malgré un écart pareil à chaque pas ?

  3. c

    Que se passerait-il si l'écart était systématiquement du même côté au lieu d'être tiré au hasard ? Répondre en citant la proposition 4.

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

Vérification rapide n° 30

La proposition 5 se vérifie en interpolant une valeur qui n'a pas été mesurée.

  1. a

    D'après la proposition 5 et la valeur de κ\kappaκ lue dans la table, quel cosinus attendrait-on pour un lot de 256256256 ?

  2. b

    Comparer à la valeur mesurée pour 512512512 et dire si l'ordre de grandeur est cohérent.

  3. c

    À quelle taille de lot faudrait-il aller pour descendre sous 111 degré ? Le calcul est-il raisonnable ?

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

Leçon suivante
PrécédenteDescendre, en dimension quelconqueSuivanteCe que le gradient encode