Qu'est-ce qui provoque une baisse soudaine des erreurs de formation / test lors de la formation d'un réseau neuronal?

18

J'ai vu des tracés d'erreur de test / formation chuter soudainement à certaines époques pendant la formation du réseau neuronal, et je me demande ce qui cause ces sauts de performances:

Erreur de test ResNet

Cette image est tirée de Kaiming He Github, mais des intrigues similaires apparaissent dans de nombreux journaux.

libphy
la source
Un document connexe: Smith et al. 2018 Ne pas Decay le taux d' apprentissage, Augmenter la taille du lot, openreview.net/forum?id=B1Yy1BxCZ
amibe

Réponses:

7

Ils ont changé le rythme d'apprentissage. Notez que la baisse est à exactement 30 et 60 époques, évidemment réglée manuellement par quelqu'un.

pourquoi
la source
Dans la section 3.4, il explique que le taux d'apprentissage est divisé par 10 lorsque les plateaux d'erreur
xiawi
2

Pensez au «paysage d'optimisation». Par exemple, si vous aviez un réseau avec seulement deux poids, vous pouvez tracer toutes les combinaisons de ces deux poids sur une surface, où la hauteur à chaque point représente la quantité d'erreur renvoyée par votre fonction de coût si vous l'utilisez (x, y ) coordonner comme vos deux poids. Vous essayez de vous déplacer vers le point le plus bas de cette surface pour obtenir le niveau d'erreur le plus bas.
Le problème est parfois que la surface peut devenir assez folle, en particulier dans les réseaux avec des millions de paramètres au lieu de deux. Vous pouvez vous retrouver coincé dans des points de selle où les progrès sont ralentis, puis soudainement tiré en arrière dans une colline descendante.
Voici une animation pour vous aider à visualiser cela. Comme vous pouvez le voir, les algorithmes de descente de gradient les plus basiques se coincent dans ces positions beaucoup plus facilement.
entrez la description de l'image ici

Il peut également y avoir d'autres causes à cela, mais c'est celle dont vous entendez le plus souvent parler. Il est possible qu'un réseau puisse avoir un tas d'unités recevant des activations saturées (ou dans le cas de relu, une unité qui n'est activée que par un très petit nombre d'entrées de formation), et lorsqu'une unité sort de la saturation, elle déclenche une réaction en chaîne qui déplace le reste de la saturation et les poids reçoivent soudainement une augmentation du flux de gradient? Je n'ai rien examiné de tel, mais je serais intéressé si quelqu'un avait d'autres raisons à ajouter.

Frobot
la source
1
-1. Cela ne répond pas à la question, ou du moins on ne sait pas comment cela fonctionne, et pourquoi ce que vous avez écrit est pertinent. Pourquoi la diminution du taux d'apprentissage en retirerait-elle une sur un point de selle?
amibe
Il n'est même pas clair que l'animation est correcte de toute façon, car SGD - par définition - voit une surface d'optimisation différente à chaque itération. Dans ce graphique, la surface d'optimisation est fixe, donc je ne comprends pas comment il est possible d'illustrer SGD ici de toute façon. Le "point" SGD se comporte plus comme une descente de gradient en batch complet, dans lequel la surface d'optimisation est fixée sur l'ensemble du processus de formation.
Josh