Comprendre Descente de gradient stochastique
La descente de gradient sur lot complet calcule le gradient moyen sur tous les exemples d’entraînement avant de faire un seul pas. Sur un jeu de données de taille quelconque, c’est une façon coûteuse d’apprendre un nombre. La descente de gradient stochastique remplace la moyenne sur les n exemples par une moyenne sur un échantillon aléatoire de B d’entre eux, appelé mini-lot, et fait immédiatement un pas.
La propriété essentielle est que cette substitution n’introduit aucun biais. Le mini-lot étant tiré uniformément, l’espérance de son gradient est exactement le gradient complet. Un petit lot ne pointe pas vers une direction systématiquement différente : il pointe dans la bonne direction, augmentée d’une erreur. C’est décisif pour l’intuition sur la taille de lot : la question n’est jamais de savoir si un petit lot « se trompe », mais seulement quelle quantité de bruit l’entraînement peut tolérer.
Ce qu’achète un lot plus grand, c’est de la précision, et il l’achète lentement. Moyenner des estimateurs indépendants réduit leur dispersion comme la racine carrée de leur nombre : quadrupler le lot divise le bruit par deux. Pendant ce temps, le coût d’un pas croît linéairement avec le lot. Ce taux de change - coût linéaire, bénéfice en racine carrée - est tout l’argument en faveur des petits lots et des pas nombreux, et c’est pourquoi la SGD par mini-lots, et non la descente sur lot complet, entraîne pratiquement tous les modèles modernes.
Le bruit n’est pas gratuit. À pas fixe, l’itéré ne se fixe jamais à l’optimum : chaque pas le contracte vers lui et y injecte aussi du bruit d’échantillonnage frais, et à un certain rayon les deux s’équilibrent. L’exécution atteint une distribution stationnaire - une boule autour du minimum - et y demeure. Réduire le pas ne réduit la boule qu’en racine carrée, si bien que diviser par deux le taux d’apprentissage n’achète qu’environ 30 % de réduction de l’erreur résiduelle. Le remède n’est pas un pas constant plus petit, mais un pas décroissant.
Comment calculer
w_{t+1} = w_t − η_t · (1/B) Σ_{i ∈ B_t} ∇ℓ(w_t; x_i, y_i)
où
- w_t
- les paramètres au pas t
- η_t
- le taux d’apprentissage, éventuellement décroissant avec t
- B_t
- le mini-lot tiré au pas t
- B
- la taille du mini-lot
- ∇ℓ
- le gradient de la perte sur un exemple
Exemple : Descente de gradient stochastique
Sur un problème de moindres carrés à 400 points et deux paramètres, le gradient complet à l’origine w = (0, 0) vaut (−3,416495 ; 0,179597). Moyenner 20 000 mini-lots indépendants en ce même point donne une erreur moyenne de 0,032 à B = 8 et de 0,002 à B = 128 - un résidu de Monte-Carlo qui tend vers zéro, ce à quoi ressemble l’absence de biais quand on la mesure.
La dispersion se comporte tout autrement. La taille typique du bruit vaut 1,4382 à B = 8 et 0,3027 à B = 128 : seize fois le lot pour un facteur 4,75 de précision, proche du √16 = 4 que prédit la moyenne de tirages indépendants, et au-dessus parce que les lots sont tirés sans remise dans seulement n = 400 points, ce qui prédit 4√(392/272) = 4,80.
Faire tourner le même problème sur 120 000 pas à pas fixe révèle le plancher. La distance quadratique moyenne à l’optimum se stabilise à 0,109343 pour η = 0,20 et à 0,026497 pour η = 0,0125. L’ajustement sur cet intervalle d’un facteur seize donne un exposant de 0,5090 : le rayon croît en √η. Remplacer le pas constant par η_t = 0,20/(1 + t/500) amène la même exécution à 0,009909, onze fois plus près, sans rien changer aux données ni au taux initial.
Avantages et inconvénients
Avantages
- Progresse après une poignée d’exemples plutôt qu’après une passe complète sur les données.
- Passe à l’échelle des jeux de données qui ne tiennent pas en mémoire, puisque seul un lot est chargé à la fois.
- Le bruit du gradient aide la trajectoire à s’échapper des points-selles, qui dominent les surfaces de perte en grande dimension.
Inconvénients
- À pas constant elle ne converge jamais, elle se stabilise seulement dans une boule de bruit.
- L’erreur résiduelle ne décroît qu’en racine carrée de la taille du pas, un très mauvais taux de change.
- Ajoute la taille de lot à la liste des hyperparamètres qui interagissent avec le taux d’apprentissage.
Questions fréquentes
La « descente de gradient stochastique », est-ce un exemple par pas ou un mini-lot ?
Au sens strict, la méthode originale utilise un exemple par pas. En pratique, le nom désigne la version par mini-lots, avec des lots de quelques dizaines à quelques milliers d’exemples, et c’est ce qu’implémentent toutes les bibliothèques d’apprentissage profond. Les mathématiques sont les mêmes ; seule la quantité de bruit change.
Pourquoi ne pas simplement prendre un taux d’apprentissage constant très petit ?
Parce que l’erreur résiduelle croît comme la racine carrée de la taille du pas : une réduction d’un facteur seize n’achète qu’un facteur quatre - et elle ralentit l’approche du même facteur seize. Un calendrier décroissant obtient les deux : de grands pas au début pour voyager, de petits pas à la fin pour se poser.
Un lot plus grand entraîne-t-il toujours mieux ?
Il entraîne avec moins de bruit par pas, mais le bruit ne décroît qu’en racine carrée tandis que le coût par pas croît linéairement : à calcul égal, on va généralement plus loin avec davantage de pas plus bruités. Les très grands lots exigent aussi de relever le taux d’apprentissage pour compenser, et le bruit de gradient qu’ils suppriment participe à la généralisation.
En résumé
La descente de gradient stochastique fonctionne parce qu’un gradient sur mini-lot est le gradient complet plus du bruit, et non un gradient différent. Tout ce qui la caractérise - le faible coût d’un pas, le plancher de bruit où se fige un pas constant, et le calendrier qui supprime ce plancher - découle de ce seul fait.