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

Synthèse de l'optimisation, et formulaire

L'optimisation en un paragraphe, le formulaire, et les erreurs fréquentes.

Synthèse

Nous sommes partis d'une règle utilisée depuis deux cours sans preuve. La direction opposée au gradient n'est pas une bonne direction : c'est la meilleure, par Cauchy-Schwarz, et la borne qu'elle atteint est la norme du gradient, mesurée à 0,9401830{,}9401830,940183 quand 2000 directions tirées au hasard plafonnent à 1,3 %1{,}3\,\%1,3% de cette valeur. Le signe négatif est imposé par l'analyse des trois cas du signe de la pente.

Le lot complet calcule ce gradient exactement, et échoue : après un passage sur 60 000 exemples il atteint 0,12580{,}12580,1258, le niveau du hasard, parce qu'il n'a produit qu'une mise à jour. Figer un petit échantillon corrige le coût mais optimise la mauvaise fonction : 1,00001{,}00001,0000 sur ses 64 exemples, 0,59900{,}59900,5990 sur le test. Le mini-lot retiré à chaque pas satisfait les quatre critères : son gradient est un estimateur exactement sans biais, et son écart quadratique décroît en s/Bs/\sqrt{B}s/B​, loi vérifiée sur trois ordres de grandeur avec s≈5,8s\approx5{,}8s≈5,8.

Le pas obéit à un seuil exact sur un quadratique, qui devient 2/λmax⁡2/\lambda_{\max}2/λmax​ en dimension ppp et fait apparaître le conditionnement. Sur le réseau, la mesure corrige la théorie sur un point : la perte ne diverge jamais, elle plafonne à 27,6327{,}6327,63, qui est le plancher numérique et non l'infini. Le témoin honnête de la divergence est la norme des paramètres, qui passe de 11,811{,}811,8 à 15 395,815\,395{,}815395,8.

Le point de départ est contraint par deux obstacles prouvés : la symétrie de l'initialisation nulle, démontrée par récurrence et confirmée par un écart entre lignes exactement nul ; et la saturation de la loi normale centrée réduite, qui envoie 66,81 %66{,}81\,\%66,81% des neurones là où la dérivée est sous 0,0180{,}0180,018. Le critère « conserver la variance » fait tomber s2=1/dins^2=1/d_{\mathrm{in}}s2=1/din​ : prédiction 0,1120{,}1120,112, mesure 0,11730{,}11730,1173.

Reste ce qu'aucun de ces réglages ne répare : la borne d'un quart impose une atténuation exponentielle en profondeur, soit 256 sur quatre couches, mesurée à 190. La profondeur avec sigmoïde est structurellement impossible, et la ReLU est la première réponse.

Formulaire

Duf(θ)=⟨grad⁡f(θ),u⟩,min⁡∥u∥=1Duf=−∥grad⁡f∥  en  u=−grad⁡f∥grad⁡f∥D_{u}f(\theta)=\langle\operatorname{grad}f(\theta),u\rangle, \qquad \min_{\|u\|=1}D_{u}f=-\|\operatorname{grad}f\| \ \text{ en } \ u=-\frac{\operatorname{grad}f}{\|\operatorname{grad}f\|}Du​f(θ)=⟨gradf(θ),u⟩,∥u∥=1min​Du​f=−∥gradf∥  en  u=−∥gradf∥gradf​
Direction et signe.
E[gB]=grad⁡LD,E∥gB−grad⁡LD∥2=s2B\mathbb{E}[g_{\mathcal{B}}]=\operatorname{grad}\mathcal{L}_{\mathcal{D}}, \qquad \mathbb{E}\big\|g_{\mathcal{B}}-\operatorname{grad}\mathcal{L}_{\mathcal{D}}\big\|^{2}=\frac{s^{2}}{B}E[gB​]=gradLD​,E​gB​−gradLD​​2=Bs2​
Descente stochastique par mini-lots.
0<η<2λmax⁡,κ=λmax⁡λmin⁡,sXavier2=1din,sHe2=2din0<\eta<\frac{2}{\lambda_{\max}}, \qquad \kappa=\frac{\lambda_{\max}}{\lambda_{\min}}, \qquad s^{2}_{\text{Xavier}}=\frac{1}{d_{\mathrm{in}}}, \qquad s^{2}_{\text{He}}=\frac{2}{d_{\mathrm{in}}}0<η<λmax​2​,κ=λmin​λmax​​,sXavier2​=din​1​,sHe2​=din​2​
Pas, conditionnement, initialisation.

Tableau des objets

SymboleSignificationEnsembleDimension

uuu

direction unitaire de recherche

sphère unité de Rp\mathbb{R}^pRp

p×1p\times1p×1

DufD_{u}fDu​f

dérivée directionnelle selon uuu

R\mathbb{R}R

scalaire

Bt\mathcal{B}_tBt​

mini-lot d'indices à l'itération ttt

partie de {1,…,N}\{1,\dots,N\}{1,…,N}

cardinal BBB

BBB

taille du mini-lot

N∗\mathbb{N}^{*}N∗

scalaire, hyperparamètre

gBg_{\mathcal{B}}gB​

gradient estimé sur le mini-lot

Rp\mathbb{R}^{p}Rp

p×1p\times1p×1

s2s^{2}s2

variance des gradients individuels

R≥0\mathbb{R}_{\ge0}R≥0​

scalaire

HHH

hessienne de la perte

matrices symétriques

d×dd\times dd×d

λi\lambda_iλi​

valeur propre de HHH

R>0\mathbb{R}_{>0}R>0​

scalaire

κ\kappaκ

conditionnement

[1,+∞[[1,+\infty[[1,+∞[

scalaire

dind_{\mathrm{in}}din​

largeur de la couche d'entrée

N∗\mathbb{N}^{*}N∗

scalaire

∥W∥2\|W\|_{2}∥W∥2​

norme d'opérateur, plus grande valeur singulière

R≥0\mathbb{R}_{\ge0}R≥0​

scalaire

PythonL'algorithme complet, tel que ce cours le justifie
1# 0. Mise a l'echelle des entrees                        page 62mu, sigma = X_train.mean(axis=0), X_train.std(axis=0)3vivants = sigma > seuil                  # 67 pixels sur 784 sont morts4X_train[:, vivants] = (X_train[:, vivants] - mu[vivants]) / sigma[vivants]5X_test[:, vivants]  = (X_test[:, vivants]  - mu[vivants]) / sigma[vivants]6#    mu et sigma viennent de L'ENTRAINEMENT SEUL : les calculer sur tout7#    le jeu serait une fuite de donnees.8 9# 1. Initialisation                                      page 510for l in couches:11    # variance 1/d_in : elle tombe du critere de conservation, (D1)-(D4)12    W[l] = rng.normal(0.0, sqrt(1.0 / d_in[l]), size=(d_out[l], d_in[l]))13    b[l] = zeros(d_out[l])               # rien ne les symetrise entre eux14 15# 2. Boucle d'apprentissage                              pages 2, 3, 416for t in range(T):17    idx   = rng.choice(N, size=B, replace=False)   # sans biais, critere (C2)18    cache = propagation_avant(theta, X[idx])19    grads = retropropagation(theta, cache, Y[idx]) # gradient EXACT20    for cle in theta:21        theta[cle] -= eta * grads[cle]             # direction prouvee, signe prouve

Erreurs fréquentes

Ce qu'on croitCe qui est vrai

« Stochastique » veut dire approximatif

Le gradient de mini-lot est un estimateur exactement sans biais. Ce qui est approximatif, c'est une réalisation ; la moyenne, elle, est juste.

Un grand pas fait apparaître des valeurs indéfinies

Mesuré : jusqu'à η=300\eta=300η=300, aucune valeur non finie. La perte plafonne à 27,6327{,}6327,63, qui est le plancher numérique du code. Le témoin de la divergence est la norme des paramètres.

Un petit pas est le choix prudent

À η=0,001\eta=0{,}001η=0,001, la précision est 0,38830{,}38830,3883 après un passage complet, et la courbe descend proprement : l'échec ressemble à un succès lent.

Le lot complet est plus coûteux par exemple

Il est 7,07{,}07,0 fois moins coûteux par exemple. Son défaut est le nombre de mises à jour, pas l'arithmétique.

L'initialisation nulle converge lentement

Elle ne converge pas du tout vers un réseau à 128 neurones : elle en simule un à un seul, et l'écart entre lignes reste exactement nul.

Saturation et évanescence sont la même chose

La saturation est un état d'un neurone, que l'initialisation contrôle. L'évanescence est un effet multiplicatif de la profondeur qu'aucune initialisation ne supprime.

On peut standardiser avant de séparer les jeux

C'est une fuite de données : le score sera meilleur qu'il ne devrait, et rien ne le signalera.

La standardisation est toujours un gain net

Sur ces données elle apporte +0,0219+0{,}0219+0,0219 de précision, et crée au passage des valeurs allant jusqu'à 244,95244{,}95244,95 sur les pixels de bord.

ExerciceQuestion de vérification20 min

Un calcul. On dispose d'un million d'exemples et l'on veut que l'écart quadratique moyen du gradient de mini-lot vaille au plus 5 %5\,\%5% de la norme du gradient complet. On mesure s=5,80s=5{,}80s=5,80 et une norme de 0,8630{,}8630,863. Quelle taille de lot faut-il ? Ce lot est-il praticable ? Que conclus-tu sur la stratégie « réduire le bruit en agrandissant le lot » ?

Une question conceptuelle. La page 2 prouve que la direction opposée au gradient est la meilleure. La page 4 montre qu'un pas trop grand fait empirer la perte. Ces deux résultats sont-ils contradictoires ? Réponds en identifiant précisément l'hypothèse de la page 2 qui n'est plus vérifiée à la page 4.

Attendu · Un calcul chiffré, et une phrase qui nomme l'hypothèse.

    Les vérifications en attente

    Restent sans réponse les vérifications n° 1 à n° 8 des deux cours précédents, leurs deux exercices de fin, et les n° 9, 10, 11, 12 et 13 de ce cours.

    Suite du parcours

    Ce que le cours suivant remboursera

    DetteD'où elle vient

    Sur-apprentissage, écart entre précision d'entraînement et de test

    cours précédent, entraînement complet

    Le candidat figé atteint 1,00001{,}00001,0000 sur ses 64 exemples et 0,59900{,}59900,5990 sur le test

    page 3 de ce chapitre : le cas d'école du sur-apprentissage, fabriqué exprès

    Pénalisation des grands poids : la norme passe de 11,811{,}811,8 à 40,740{,}740,7 pendant un entraînement sain

    page 4 : la norme croît toujours, et rien ne l'en empêche

    Le correctif propre à la standardisation par pixel

    page 6, les valeurs à 244,95244{,}95244,95

    Restent ouvertes, à leurs cours respectifs : la preuve de la règle de la chaîne ; la convergence de la descente stochastique ; le maximum de vraisemblance dans son cadre général ; la structure bidimensionnelle des images détruite par la vectorisation.
    Retour au sommaire
    PrécédenteLes gradients évanescentsFin du cours