Comment la taille des lots affecte-t-elle la convergence de SGD et pourquoi?

18

J'ai vu des conclusions similaires à partir de nombreuses discussions, à mesure que la taille du mini-lot augmente, la convergence des SGD devient en fait plus difficile / pire, par exemple ce document et cette réponse . J'ai également entendu parler de personnes utilisant des astuces comme de petits taux d'apprentissage ou des tailles de lot au début pour résoudre cette difficulté avec de grandes tailles de lot.

Cependant, cela semble contre-intuitif car la perte moyenne d'un mini-lot peut être considérée comme une approximation de la perte attendue sur la distribution des données,

1|X|XXl(X,w)EXpunetune[l(X,w)]
plus la taille du lot est grande, plus elle est censée être précise. Pourquoi en pratique n'est-ce pas le cas?


Voici quelques-unes de mes pensées (probablement fausses) qui essaient d'expliquer.

Les paramètres du modèle dépendent fortement les uns des autres, lorsque le lot devient trop volumineux, cela affectera trop de paramètres à la fois, de sorte qu'il est difficile pour les paramètres d'atteindre une dépendance inhérente stable? (comme le problème de décalage covariable interne mentionné dans le document de normalisation par lots )

Ou lorsque presque tous les paramètres sont responsables à chaque itération, ils auront tendance à apprendre des modèles implicites redondants, ce qui réduit donc la capacité du modèle? (Je veux dire par exemple pour les problèmes de classification des chiffres, certains motifs devraient être responsables des points, d'autres des bords, mais lorsque cela se produit, chaque motif essaie d'être responsable de toutes les formes).

Ou est-ce parce que lorsque la taille des lots se rapproche de l'échelle de l'ensemble d'apprentissage, les minibatches ne peuvent plus être considérés comme iid à partir de la distribution des données, car il y aura une forte probabilité de minibatches corrélés?


Mise à jour
Comme indiqué dans la réponse de Benoit Sanchez, une raison importante est que les grands minibatches nécessitent plus de calculs pour effectuer une mise à jour, et la plupart des analyses utilisent une quantité fixe d'époques d'apprentissage pour la comparaison.

Cependant, cet article (Wilson et Martinez, 2003) montre qu'une plus grande taille de lot est encore légèrement désavantageuse, même avec suffisamment de périodes d'apprentissage. Est-ce généralement le cas? entrez la description de l'image ici

dontloo
la source

Réponses:

12

N

  • 27N
  • 8343×N200000.47N

Vous pouvez voir qu'avec des lots plus importants, vous avez besoin de beaucoup moins de mises à jour pour la même précision.

Mais cela ne peut pas être comparé car il ne traite pas la même quantité de données. Je cite le premier article:

kBj1jkBj

Ici, il s'agit de traiter la même quantité de données et bien qu'il y ait une petite surcharge pour plusieurs mini-lots, cela nécessite des ressources de traitement comparables.

Il existe plusieurs façons de comprendre pourquoi plusieurs mises à jour sont meilleures (pour la même quantité de données lues). C'est l'idée clé de la descente de gradient stochastique par rapport à la descente de gradient. Au lieu de tout lire puis de vous corriger à la fin, vous vous corrigez en chemin, ce qui rend les lectures suivantes plus utiles car vous vous corrigez à partir d'une meilleure supposition. Géométriquement, plusieurs mises à jour sont meilleures car vous dessinez plusieurs segments, chacun dans le sens du gradient (approximatif) au début de chaque segment. tandis qu'une seule grande mise à jour est un segment unique dès le début dans la direction du gradient (exact). Il vaut mieux changer de direction plusieurs fois même si la direction est moins précise.

La taille des mini-lots est essentiellement la fréquence des mises à jour: plus les mini-lots sont petits, plus il y a de mises à jour. À un extrême (mini-lot = jeu de données), vous avez une descente de gradient. À l'autre extrême (mini-lot = une ligne), vous avez un SGD complet par ligne. Le SGD par ligne est de toute façon meilleur, mais des minibatches plus gros sont adaptés pour une parallélisation plus efficace.

À la fin du processus de convergence, SGD devient moins précis que (batch) GD. Mais à ce stade, les choses deviennent (généralement) une sorte d'ajustement inutilement précis. Bien que vous obteniez une fonction de perte légèrement plus petite sur l'ensemble d'entraînement, vous n'obtenez pas de véritable pouvoir prédictif. Vous ne recherchez que l'optimum très précis mais cela n'aide pas. Si la fonction de perte est correctement régularisée (ce qui évite un sur-ajustement), vous ne faites pas exactement un "over" -fit, vous ne faites qu'inutilement un "hyper" -fit. Cela montre comme un changement non significatif de précision sur l'ensemble de test.

Benoit Sanchez
la source
1
merci, c'est très logique. Donc, fondamentalement, si vous effectuez le même nombre de mises à jour, une taille de lot plus importante sera au moins aussi bonne, non?
dontloo
connaissez-vous des expériences publiées à ce sujet (comparaison de différentes tailles de lots avec un nombre fixe de mises à jour)?
dontloo
Oui pour le même nombre de mises à jour, des lots plus importants sont toujours meilleurs. Je ne connais pas de publication, si j'en trouve une, je la posterai.
Benoit Sanchez
J'ai lu le reste de votre question (le tableau). Fait intéressant, il montre les résultats sur un ensemble de tests tandis que l'objectif du gradient décent est d'optimiser sur l'ensemble d'entraînement. Il est possible que de petits lots évitent un certain type de sur-ajustement mineur en randomisant l'optimum. C'est une chose subtile que je n'ai pas de prise intuitive.
Benoit Sanchez
Selon l'article, la différence de précision n'est pas significative. Ils veulent juste souligner que la précision est essentiellement la même. Ce qu'ils veulent principalement souligner, c'est que SGD avec de petits lots est beaucoup plus rapide.
Benoit Sanchez
4

Pour compléter la réponse de Curtis White (et ajouter quelques références supplémentaires):

Oui, SGD fonctionne comme un type de régularisation. Ceci est important car sinon, il est difficile d'expliquer pourquoi les DNN ne sont pas toujours surajustés, car ils le peuvent .

La raison, si je comprends bien, est que SGD provoque des `` sauts '' dans l'espace des paramètres, donc pendant la formation, les paramètres ne peuvent pas rester dans un minimum étroit, seulement dans (ou près de) plus larges. Et ces plus larges apparemment [1] se généralisent mieux (aka, moins de sur-ajustement).

Plus de références:

  • Voici [2] un autre document qui formalise cela (ou essaie de le faire, je n'ai pas tout suivi, vérifiez par vous-même!)
  • Cet article [3] affirme qu'il y a une phase à "stochastic relaxation, or random diffusion"laquelle conduit la stochasticité inhérente à la SGD "maximiz[ation of] the conditional entropy of the layer".

Les deux disent en quelque sorte que SGD correspond à un terme de régularisation d'entropie.

Il pourrait certainement y avoir d'autres façons dont la taille des lots influence la convergence; c'est celui que je connais.


[1] Exemple: "Une perspective bayésienne sur la généralisation et la descente de gradient stochastique", Smith, Le, 2018. Extrait du résumé: "We propose that the noise introduced by small mini-batches drives the parameters towards minima whose evidence is large."

[2] "La descente de gradient stochastique effectue l'inférence variationnelle, converge pour limiter les cycles pour les réseaux profonds", Chaudhari, Soatto 2017

[3] "Ouverture de la boîte noire des réseaux neuronaux profonds via l'information" Schwartz-Ziv, Tishby, 2017

[4] "Comprendre le deep learning nécessite de repenser la généralisation", C. Zhang etc. 2016

dasWesen
la source
(+1) Bonnes références. btw, le premier auteur sur [4] est C. Zhang
user20160
Oh, tu as raison! Modifié, merci pour la correction.
dasWesen
0

Une taille de lot trop importante peut empêcher la convergence au moins lors de l'utilisation de SGD et de la formation MLP à l'aide de Keras. Quant à savoir pourquoi, je ne suis pas sûr à 100% si cela a à voir avec la moyenne des gradients ou si des mises à jour plus petites offrent une plus grande probabilité d'échapper aux minima locaux.

Voyez ici .

Curtis White
la source