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

Descendre, en dimension un

Comment faire baisser une courbe quand on ne sait pas où se trouve son minimum.

Un marcheur dans le brouillard ne voit que la pente sous ses pieds. Cela suffit-il pour descendre ?

Une parabole en forme de cuvette, dont le fond touche un axe horizontal marqué zéro. Deux ronds brique sont posés sur la courbe, l'un à gauche du fond et l'autre à droite. Sur chacun, un court segment brique donne la pente en ce point. Sous le rond de gauche, une flèche pointe vers la droite, et la mention pente négative, on va à droite. Sous le rond de droite, une flèche pointe vers la gauche, et la mention pente positive, on va à gauche.
La pente en un point suffit à choisir un sens. Elle ne dit pas encore de combien avancer.

Il faut donc une règle qui dise, à partir de CDC_{\mathcal{D}}CD​ seule, lequel des 101 770101\,770101770 nombres changer, dans quel sens et de combien.

Personne ne se représente R101 770\mathbb{R}^{101\,770}R101770. Tout ce qui suit se voit en dimension 111, où CCC est une courbe et θ\thetaθ un point sur un axe, et rien de ce qui sera dit en dimension 111 ne devra être révisé : la page 8 remplacera un nombre par un vecteur, et c'est tout.

Pourquoi ne pas résoudre C′(θ)=0C'(\theta)=0C′(θ)=0 ?

C'est la méthode qu'on apprend d'abord, et elle marche quand elle marche : sur C(θ)=θ2−4θ+7C(\theta)=\theta^{2}-4\theta+7C(θ)=θ2−4θ+7 on écrit C′(θ)=2θ−4C'(\theta)=2\theta-4C′(θ)=2θ−4, on résout 2θ−4=02\theta-4=02θ−4=0, on trouve θ=2\theta=2θ=2, et comme C′′=2>0C''=2>0C′′=2>0 c'est bien un minimum, le tout en deux lignes et sans approximation.

Ici, la même méthode demanderait de résoudre un système de 101 770101\,770101770 équations à 101 770101\,770101770 inconnues, non linéaires puisque ReLU\mathrm{ReLU}ReLU et softmax\mathrm{softmax}softmax y sont, et couplées, chaque équation portant sur tous les paramètres à la fois. Aucune méthode générale ne résout un tel système, et il ne s'agit pas d'un problème de puissance de calcul : on ne sait pas l'écrire sous une forme qui se résolve.

Fonction convexeconvex function

Une fonction C:U→RC:U\rightarrow\mathbb{R}C:U→R, définie sur une partie convexe UUU, telle que pour tous θ1,θ2∈U\boldsymbol{\theta}_{1},\boldsymbol{\theta}_{2}\in Uθ1​,θ2​∈U et tout t∈[0,1]t\in[0,1]t∈[0,1], C((1−t)θ1+tθ2)≤(1−t)C(θ1)+tC(θ2)C\big((1-t)\boldsymbol{\theta}_{1}+t\boldsymbol{\theta}_{2}\big)\leq (1-t)C(\boldsymbol{\theta}_{1})+tC(\boldsymbol{\theta}_{2})C((1−t)θ1​+tθ2​)≤(1−t)C(θ1​)+tC(θ2​). Autrement dit, la corde reste au-dessus de la courbe.

Dette du chapitre 2 réglée : la perte n'est pas convexe en $\boldsymbol{\theta}$

Le chapitre 2 a signalé, sans le traiter, que ReLU\mathrm{ReLU}ReLU fait perdre à la perte sa convexité en θ\boldsymbol{\theta}θ. Voici ce que cela coûte. Pour une fonction convexe, un creux local, c'est-à-dire un point plus bas que tout son voisinage, est forcément le point le plus bas de toute la courbe, et l'ensemble des minimiseurs est convexe, donc un point ou un segment. Sans convexité, aucune de ces deux garanties ne tient : la descente peut s'arrêter dans un creux qui n'est pas le plus profond, et les minimiseurs peuvent être éparpillés. La page 11 le montre en construisant 128!128!128! jeux de paramètres de même coût, et elle en tire la conséquence pratique sur trois entraînements.

Pourquoi on ne minimise pas ce qu'on veut vraiment

Ce qu'on veut, c'est que le réseau se trompe rarement, autrement dit minimiser le taux d'erreur. Ce n'est pas ce qu'on minimise, et la raison n'est pas un renoncement pratique : c'est une impossibilité, et elle se démontre.

Deux graphes côte à côte, obtenus en faisant varier le même paramètre du réseau. Celui de gauche, intitulé le taux d'erreur, est un escalier : la courbe reste plate sur des intervalles puis saute d'un cran, et les crans sont bien visibles. Sous lui se lit un paramètre balayé, puis quarante et une valeurs. Celui de droite, intitulé le coût, est une courbe lisse et continûment penchée. Sous lui se lit le même paramètre, puis une infinité de valeurs.
Un seul paramètre balayé, les deux quantités relevées sur les quarante premières images du jeu. Quarante, et non les 60 00060\,00060000, pour que les marches se voient : sur le jeu entier elles font un soixante-millième de haut, et l'escalier se confond à l'œil avec une courbe lisse. La démonstration qui suit ne dépend pas de ce nombre.
DérivationProposition 1 · Le taux d'erreur ne peut pas servir de coût
1

Hypothèses

  • ·

    E(θ)=1N∑n=1N1{c^(fθ(x(n)))≠c(n)}E(\theta)=\frac{1}{N}\sum_{n=1}^{N}\mathbb{1}\big\{\widehat{c}\big(f_{\boldsymbol{\theta}}(\mathbf{x}^{(n)})\big)\neq c^{(n)}\big\}E(θ)=N1​∑n=1N​1{c(fθ​(x(n)))=c(n)} est le taux d'erreur sur D\mathcal{D}D : la proportion des NNN images que le réseau classe mal. c^\widehat{c}c est la règle de décision du chapitre 2, qui rend l'indice de la plus grande coordonnée.

  • ·

    N=60 000N=60\,000N=60000 est fixé, et un seul paramètre varie, noté θ\thetaθ. Les 101 769101\,769101769 autres sont gelés, si bien que EEE est une fonction d'une variable réelle.

2

Propriétés utilisées

  • ·

    Une somme de NNN indicatrices est un entier de [ ⁣[0,N] ⁣][\![0,N]\!][[0,N]]

  • ·

    Définition de la continuité en un point

  • ·

    Une fonction dérivable en un point y est continue

3

Étapes

  1. EEE ne prend qu'un nombre fini de valeurs. La somme des indicatrices est un entier k∈[ ⁣[0,N] ⁣]k\in[\![0,N]\!]k∈[[0,N]], donc E(θ)∈{k/N : k∈[ ⁣[0,N] ⁣]}E(\theta)\in\{k/N\ :\ k\in[\![0,N]\!]\}E(θ)∈{k/N : k∈[[0,N]]}, un ensemble à N+1=60 001N+1=60\,001N+1=60001 éléments. Deux valeurs distinctes y diffèrent d'au moins 1/N1/N1/N.

  2. Soit θ\thetaθ un point où EEE est continue, c'est-à-dire un point pris sur un palier de l'escalier. Prenons ε=1/(2N)\varepsilon=1/(2N)ε=1/(2N), deux fois plus petit que l'écart minimal entre deux valeurs possibles. Par continuité, il existe un intervalle VVV autour de θ\thetaθ sur lequel ∣E(θ′)−E(θ)∣<ε|E(\theta')-E(\theta)|<\varepsilon∣E(θ′)−E(θ)∣<ε, et comme un écart non nul vaudrait au moins 1/N>ε1/N>\varepsilon1/N>ε, cet écart est nul : EEE est constante sur VVV.

    Définition de la continuité, appliquée à un ε\varepsilonε choisi plus petit que le pas de la grille des valeurs. C'est le seul endroit où la finitude sert.

  3. E′(θ)=lim⁡s→0E(θ+s)−E(θ)s=lim⁡s→00s=0E'(\theta)=\lim_{s\to 0}\frac{E(\theta+s)-E(\theta)}{s}=\lim_{s\to 0}\frac{0}{s}=0E′(θ)=s→0lim​sE(θ+s)−E(θ)​=s→0lim​s0​=0

    Pour sss assez petit, θ+s\theta+sθ+s reste dans VVV, où EEE est constante : le numérateur est nul, donc le quotient aussi.

  4. Restent les sauts de l'escalier, c'est-à-dire les points où une image au moins bascule d'une classe à l'autre. En ces points, EEE n'est pas définie du tout : la bascule est le moment où deux coordonnées de la sortie sont ex æquo, et le chapitre 2 a laissé c^\widehat{c}c indéfinie sur les ex æquo. De part et d'autre, EEE prend deux valeurs distinctes, donc elle n'y est ni continue ni dérivable. Il n'y a donc aucun point où E′E'E′ soit à la fois définie et non nulle.

    c^\widehat{c}c n'est pas définie sur les ex æquo, chapitre 2. Ailleurs, la contraposée du fait que la dérivabilité entraîne la continuité suffit.

4

Résultat

E′(θ)=0partout ouˋ E′ est deˊfinieE'(\theta)=0\quad\text{partout où }E'\text{ est définie}E′(θ)=0partout ouˋ E′ est deˊfinie
5

Interprétation

La mise à jour θt+1=θt−η⋅0=θt\theta_{t+1}=\theta_{t}-\eta\cdot 0=\theta_{t}θt+1​=θt​−η⋅0=θt​ ne bouge jamais. Aucune descente ne peut minimiser un taux d'erreur, et l'argument ne doit rien à la dimension un : il vaudra coordonnée par coordonnée quand θ\boldsymbol{\theta}θ en aura 101 770101\,770101770, ce que la page 8 redira une fois l'objet qui les rassemble défini. On minimise donc CDC_{\mathcal{D}}CD​, qui n'est pas ce qu'on veut, en espérant que la faire baisser fasse baisser EEE, et la mesure de la page 8 montre que c'est bien ce qui se passe, sans que rien ne le garantisse.

Ce que ce résultat ne dit pas

  • ·

    C'est ici que se justifie une décision du chapitre 2. Un neurone dont l'activation serait binaire produirait une sortie à valeurs dans un ensemble fini, donc un coût à valeurs dans un ensemble fini, et la démonstration ci-dessus s'appliquerait à lui aussi : le procédé entier s'effondrerait. Les activations varient continûment pour que le coût soit lisse, et pour aucune autre raison.

  • ·

    La proposition ne dit pas que EEE est inutile : EEE reste la quantité qu'on rapporte. Elle dit qu'on ne peut pas la minimiser directement.

Vérification rapide n° 25

Le comptage précède la dérivation.

  1. a

    Montrer que le taux d'erreur d'un réseau sur 60 00060\,00060000 images ne peut prendre que 60 00160\,00160001 valeurs.

  2. b

    En déduire que sa dérivée est nulle là où elle existe.

  3. c

    Cette conclusion dépend-elle de NNN ? Que se passerait-il pour N=109N=10^{9}N=109 ?

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

La règle, et son signe moins

La figure du début donne le sens du déplacement, et il reste à écrire la règle qui s'en sert. Le chapitre 1 en avait nommé les deux ingrédients sans les assembler : le pas η\etaη, qu'il appelait la longueur d'un déplacement, et le compteur ttt, qu'il appelait le numéro d'itération de la descente.

θt+1=θt−η C′(θt),η>0\theta_{t+1}=\theta_{t}-\eta\,C'(\theta_{t}),\qquad \eta>0θt+1​=θt​−ηC′(θt​),η>0
(7.1)
On part d'un θ0\theta_{0}θ0​ quelconque et on applique cette ligne autant de fois qu'on veut. Deux choses y restent à justifier : le signe moins, qu'établit la proposition qui suit, et la valeur de η\etaη, que la page 8 cherche par mesure.
DérivationProposition 2 · Le signe moins fait décroître le coût, sous une condition sur η\etaη
1

Hypothèses

  • ·

    C:R→RC:\mathbb{R}\rightarrow\mathbb{R}C:R→R est dérivable, et sa dérivée est continue ; on dit qu'elle est de classe C1\mathcal{C}^{1}C1.

  • ·

    η>0\eta>0η>0, et θt+1=θt−η C′(θt)\theta_{t+1}=\theta_{t}-\eta\,C'(\theta_{t})θt+1​=θt​−ηC′(θt​), la règle (7.1)(7.1)(7.1).

  • ·

    C′(θt)≠0C'(\theta_{t})\neq 0C′(θt​)=0 : au point de départ, la pente n'est pas nulle.

2

Propriétés utilisées

  • ·

    Développement au premier ordre : C(θ+s)=C(θ)+sC′(θ)+o(s)C(\theta+s)=C(\theta)+sC'(\theta)+o(s)C(θ+s)=C(θ)+sC′(θ)+o(s)

  • ·

    Définition du sens de variation par le signe de la dérivée

3

Étapes

  1. L'analyse par cas d'abord, qui donne le sens du déplacement. Si C′(θt)>0C'(\theta_{t})>0C′(θt​)>0, alors −η C′(θt)<0-\eta\,C'(\theta_{t})<0−ηC′(θt​)<0 donc θt+1<θt\theta_{t+1}<\theta_{t}θt+1​<θt​ : on va vers la gauche, du côté où CCC décroît. Si C′(θt)<0C'(\theta_{t})<0C′(θt​)<0, alors θt+1>θt\theta_{t+1}>\theta_{t}θt+1​>θt​ : on va vers la droite, du côté où CCC décroît. Le cas C′(θt)=0C'(\theta_{t})=0C′(θt​)=0 est écarté par hypothèse, et la suite y serait de toute façon stationnaire.

  2. Le calcul donne ensuite l'ampleur. On pose s=−η C′(θt)s=-\eta\,C'(\theta_{t})s=−ηC′(θt​) et on développe :

  3. C(θt+1)−C(θt)=s C′(θt)+o(s)=−η C′(θt)2+o(η)C(\theta_{t+1})-C(\theta_{t})=s\,C'(\theta_{t})+o(s)=-\eta\,C'(\theta_{t})^{2}+o(\eta)C(θt+1​)−C(θt​)=sC′(θt​)+o(s)=−ηC′(θt​)2+o(η)

    Développement au premier ordre, puis substitution de sss. Le passage de o(s)o(s)o(s) à o(η)o(\eta)o(η) tient à ce que sss et η\etaη sont proportionnels : s=−η C′(θt)s=-\eta\,C'(\theta_{t})s=−ηC′(θt​) avec C′(θt)C'(\theta_{t})C′(θt​) fixé et non nul, donc une quantité négligeable devant sss l'est aussi devant η\etaη. Le terme dominant porte le carré de la dérivée, donc il est négatif quel que soit le signe de C′(θt)C'(\theta_{t})C′(θt​).

  4. Le seuil se construit alors. Notons r(η)r(\eta)r(η) le terme négligeable, de sorte que la différence vaut −η C′(θt)2+r(η)-\eta\,C'(\theta_{t})^{2}+r(\eta)−ηC′(θt​)2+r(η). Dire que r(η)=o(η)r(\eta)=o(\eta)r(η)=o(η), c'est dire que r(η)/ηr(\eta)/\etar(η)/η tend vers 000, donc qu'il existe η0>0\eta_{0}>0η0​>0 tel que ∣r(η)∣<η C′(θt)2/2|r(\eta)|<\eta\,C'(\theta_{t})^{2}/2∣r(η)∣<ηC′(θt​)2/2 pour tout η\etaη de ]0,η0[]0,\eta_{0}[]0,η0​[. La différence est alors majorée par −η C′(θt)2/2-\eta\,C'(\theta_{t})^{2}/2−ηC′(θt​)2/2, strictement négative.

    Définition de o(η)o(\eta)o(η), appliquée au seuil C′(θt)2/2C'(\theta_{t})^{2}/2C′(θt​)2/2, qui est un nombre strictement positif puisque C′(θt)≠0C'(\theta_{t})\neq 0C′(θt​)=0.

4

Résultat

C′(θt)≠0 ⟹ ∃ η0>0, ∀η∈ ]0,η0[,C(θt+1)<C(θt)C'(\theta_{t})\neq 0\ \Longrightarrow\ \exists\,\eta_{0}>0,\ \forall\eta\in\,]0,\eta_{0}[,\quad C(\theta_{t+1})<C(\theta_{t})C′(θt​)=0 ⟹ ∃η0​>0, ∀η∈]0,η0​[,C(θt+1​)<C(θt​)
5

Interprétation

Le signe moins n'est ni une convention ni une image : c'est le seul signe qui rende le terme dominant négatif dans les deux cas de figure, parce qu'il fait apparaître un carré. Un signe plus donnerait +η C′(θt)2+\eta\,C'(\theta_{t})^{2}+ηC′(θt​)2, positif, et ferait monter le coût aussi sûrement.

Ce que ce résultat ne dit pas

  • ·

    Elle ne donne aucun seuil utilisable. L'énoncé affirme qu'un η0\eta_{0}η0​ existe, et la démonstration le construit à partir du reste r(η)r(\eta)r(η), qu'on ne sait majorer qu'en connaissant CCC au point θt\theta_{t}θt​. Ce seuil change donc à chaque pas.

  • ·

    Elle ne dit rien non plus de ce qui arrive pour η>η0\eta>\eta_{0}η>η0​ : le coût peut monter, ou osciller, ou diverger.

  • ·

    Le seuil exact relève du chapitre d'optimisation. C'est pourquoi la page 8 procède par mesure et non par théorème.

Vérification rapide n° 26

La règle (7.1)(7.1)(7.1) se met à l'épreuve sur la plus simple des cuvettes, f(θ)=θ2f(\theta)=\theta^{2}f(θ)=θ2, en partant de θ0=3\theta_{0}=3θ0​=3.

  1. a

    Écrire la mise à jour θt+1=θt−η f′(θt)\theta_{t+1}=\theta_{t}-\eta\,f'(\theta_{t})θt+1​=θt​−ηf′(θt​) sous la forme θt+1=λ θt\theta_{t+1}=\lambda\,\theta_{t}θt+1​=λθt​, et donner λ\lambdaλ en fonction de η\etaη.

  2. b

    Pour η=0,25\eta=0{,}25η=0,25 puis η=1,1\eta=1{,}1η=1,1, calculer les quatre premiers termes et dire laquelle des deux suites converge.

  3. c

    Pour quelles valeurs de η\etaη la suite converge-t-elle ? Comparer ce seuil à ce que la proposition 2 permettait d'affirmer.

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

L'image de la bille, et où elle trompe

On se représente volontiers la descente comme une bille lâchée sur une surface : elle roule vers le bas, elle finit au fond d'un creux. L'image est utile, parce qu'elle donne le bon geste et fait comprendre qu'il puisse y avoir plusieurs creux, et elle est fausse sur trois points qu'il vaut mieux savoir.

Deux graphes côte à côte montrent la même courbe à deux creux, celui de droite plus profond que celui de gauche. Sur les deux, un rond gris marque le point de lâcher, en haut à gauche. Sur le graphe de gauche, intitulé une bille a de l'inertie, un rond brique marque l'arrivée au fond du creux de droite, et dessous se lit elle franchit le premier creux. Sur le graphe de droite, intitulé la descente n'en a pas, le rond brique marque l'arrivée au fond du creux de gauche, et dessous se lit elle s'arrête au premier.
Le paysage est posé par le cours, et non mesuré. Les deux trajets partent du même point et n'arrivent pas au même endroit.
Une billeLa descente

A une inertie : elle dépasse le fond, remonte de l'autre côté, oscille avant de s'arrêter

N'en a aucune : chaque pas ne dépend que du point courant, et jamais du pas précédent. Elle peut dépasser, mais seulement si η\etaη est trop grand, jamais par élan

Peut franchir une bosse et sortir d'un creux peu profond

Ne le peut pas : arrivée en un point où C′=0C'=0C′=0, elle est immobile pour toujours. C'est exactement ce que la perte non convexe coûte, annoncé plus haut

Roule dans un paysage qu'on voit, avec un haut et un bas

Se déplace dans R101 770\mathbb{R}^{101\,770}R101770, où il n'y a rien à voir : la section suivante dit à partir de quand

Les méthodes qui ajoutent une inertie existent, elles s'appellent des méthodes à moment, et elles ne sont pas dans ce chapitre. L'image de la bille les décrit mieux qu'elle ne décrit la descente simple.
Une coupe du coût à deux vallées, et une bille qui roule dessus : lancée du même point, elle franchit le premier creux et s'arrête dans le second.

Un repère se dessine, occupant presque tout l'écran ; l'axe horizontal porte le nom « un paramètre » à son extrémité droite, l'axe vertical le nom « le coût » en haut. Une courbe épaisse se trace alors de gauche à droite : elle descend depuis le haut de l'écran, creuse un premier vallon peu profond au tiers gauche, remonte en une bosse arrondie au milieu, creuse un second vallon nettement plus profond aux deux tiers, puis remonte vers la droite. Un cercle vide au trait de brique, de la taille d'une petite bille, vient se poser sur la pente de gauche, exactement tangent au tracé. Il se met à rouler : il descend, accélère, et au lieu de s'arrêter dans le premier vallon il le traverse en pleine vitesse, franchit la bosse du milieu et remonte haut sur la pente qui suit le second vallon. Il redescend, repasse le fond, remonte un peu de l'autre côté, et ses allers et retours se font de plus en plus courts jusqu'à ce qu'il s'immobilise au fond du second vallon, le plus profond. Un trait pointillé descend alors de la bille jusqu'à l'axe horizontal, pour marquer où elle s'est arrêtée : pas là où elle est passée la première fois.

0:00 / 0:18

Ce qui change quand il y a deux variables

Le passage à deux variables se voit encore, et c'est le dernier qui se voie. Avec θ=(θ1,θ2)\boldsymbol{\theta}=(\theta_{1},\theta_{2})θ=(θ1​,θ2​) le domaine n'est plus un axe mais un plan, et CCC n'est plus une courbe au-dessus d'un axe mais une surface au-dessus de ce plan : à chaque point du plan correspond une altitude. Descendre veut alors dire choisir une direction dans le plan, et il y en a une infinité au lieu de deux.

À trois variables la représentation cesse, puisqu'il faudrait une quatrième dimension pour porter l'altitude. C'est pourquoi la page 8 remplace le dessin par un calcul, et non parce que le calcul serait plus rigoureux.

Leçon suivante
PrécédenteLe coût sur tout le jeuSuivanteDescendre, en dimension quelconque