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

La standardisation des entrées

Pourquoi remettre les entrées à la même échelle accélère l'entraînement.

La page 4 a montré que la vitesse est gouvernée par le conditionnement. Sur quoi porte cette courbure ? Prouvons-le sur la régression linéaire, où tout est calculable.

DérivationLa courbure du problème est la matrice des moments des données
1

Hypothèses

  • ·

    Modèle linéaire, perte quadratique : L(θ)=12N∥Xθ−y∥2\mathcal{L}(\theta)=\frac{1}{2N}\|X\theta-y\|^{2}L(θ)=2N1​∥Xθ−y∥2

2

Point de départ

L(θ)=12N∥Xθ−y∥2\mathcal{L}(\theta)=\frac{1}{2N}\|X\theta-y\|^{2}L(θ)=2N1​∥Xθ−y∥2
3

Étapes

  1. Une première dérivation donne le gradient. Dimensions : (d×N)(N×1)=d×1(d\times N)(N\times1)=d\times1(d×N)(N×1)=d×1.

    grad⁡θL=1NX⊤(Xθ−y)\operatorname{grad}_{\theta}\mathcal{L}=\frac{1}{N}X^{\top}(X\theta-y)gradθ​L=N1​X⊤(Xθ−y)

    dérivation d'une forme quadratique

  2. Une seconde dérivation donne la hessienne. Dimensions : (d×N)(N×d)=d×d(d\times N)(N\times d)=d\times d(d×N)(N×d)=d×d.

    H=Hess⁡θL=1NX⊤XH=\operatorname{Hess}_{\theta}\mathcal{L}=\frac{1}{N}X^{\top}XH=Hessθ​L=N1​X⊤X

    dérivation du gradient, qui est affine en thêta

4

Résultat

H=1NX⊤XH=\frac{1}{N}X^{\top}XH=N1​X⊤X
5

Interprétation

La courbure du problème d'optimisation est la matrice des moments d'ordre deux des données. Elle ne dépend pas de θ\thetaθ : le problème est exactement quadratique, et tout le raisonnement de la page 4 s'y applique sans réserve. Si les variables ont des échelles très différentes, cette matrice est mal conditionnée, et l'optimisation l'est aussi. Centrer et réduire chaque variable ramène la diagonale à des uns, ce qui n'annule pas le conditionnement, puisque les corrélations restent, mais en supprime la part due aux unités.

Ce que ce résultat ne dit pas

  • ·

    Pour le réseau, la hessienne n'est pas cette matrice et dépend de θ\thetaθ. Ce résultat est prouvé pour le modèle linéaire seulement. Pour le réseau, nous mesurons.

python cours/lecon3/experiences2.py E7

  Pixels dont l'ecart-type est nul sur tout le jeu : 67 sur 784 (jamais allumes).

  jeu                  moyenne    ecart-type       min       max
  brut [0,1]            0.1307        0.3081      0.00      1.00
  standardise           0.0000        0.9563     -1.27    244.95

  Valeurs propres de la covariance (5000 exemples, 717 pixels vivants) :
  jeu                 lambda max    lambda min > 0       rapport
  brut                    5.1954          3.01e-08      1.73e+08
  standardise            40.6922          6.70e-04      6.08e+04

  Vitesse d'apprentissage, meme eta, meme graine, 300 mises a jour :
  jeu                perte apres 100    apres 300   precision test
  brut [0,1]                  0.5451       0.3696           0.8944
  standardise                 0.3452       0.2916           0.9163

Lecture

  • ·

    67 pixels sur 784 ne s'allument jamais : ce sont des bords. On ne peut pas les diviser par leur écart-type, qui est nul ; on les laisse tels quels.

  • ·

    Le conditionnement passe de 1,73⋅1081{,}73\cdot10^{8}1,73⋅108 à 6,08⋅1046{,}08\cdot10^{4}6,08⋅104 : une amélioration d'un facteur 2845.

  • ·

    La vitesse suit : à 100 mises à jour, 0,34520{,}34520,3452 contre 0,54510{,}54510,5451. La version standardisée atteint en 100 pas ce que la version brute n'a pas atteint en 300 (0,36960{,}36960,3696).

Ce que la mesure oblige à dire

Le gain en précision finale est modeste : +0,0219+0{,}0219+0,0219. MNIST est déjà dans l'intervalle unité, avec des pixels de nature homogène. Sur des données à unités hétérogènes, des mètres carrés à côté d'un nombre de pièces, l'écart serait bien plus grand. Et il y a une verrue : le maximum passe de 1,001{,}001,00 à 244,95244{,}95244,95. Un pixel de bord allumé trois fois sur 60 000 a un écart-type minuscule ; le diviser par cet écart-type fabrique une valeur énorme. La standardisation naïve par pixel crée des valeurs extrêmes là où il n'y avait presque pas d'information.

Une règle qui ne souffre pas d'exception

La moyenne et l'écart-type se calculent sur l'entraînement seul, puis s'appliquent au test. Les calculer sur l'ensemble du jeu avant de séparer est une fuite de données : le score obtenu sera meilleur qu'il ne devrait, et rien ne le signalera.

Où en sommes-nous

Ce que nous cherchons
Les conditions d'un entraînement qui aboutit.
Pourquoi
Quatre réglages restaient sans justification depuis le cours précédent.
Où nous en sommes
Direction, données, pas, initialisation, mise à l'échelle : tous dérivés ou mesurés.
L'étape suivante
Ce qui reste, et qu'aucun de ces réglages ne répare : la profondeur.
Leçon suivante
PrécédenteL'initialisationSuivanteLes gradients évanescents