Comprendre les courbes de perte et de précision

Aug 20 2020

C'est un problème que j'ai rencontré maintes et maintes fois. Perte (entropie croisée dans ce cas) et courbes de précision qui n'ont pas de sens. Voici un exemple:

Ici, je forme un ReNet18 sur CIFAR10. L'optimiseur est SGD avec un taux d'apprentissage de 0,1, un élan Nesterov de 0,9, une décroissance de poids 1e-4. Le taux d'apprentissage est réduit à a ⅕ aux époques 60, 120, 160.

  • Au départ, les courbes sont toutes belles et dandy; ce qui signifie que la formation et la perte de validation diminuent et que les précisions augmentent.
  • Vers l'époque 65 ~ 70, vous voyez des signes de surajustement; comme val. la perte commence à augmenter et val. la précision commence à diminuer (la case rouge ). Il n'y a toujours rien d'étrange ici.

Maintenant, il y a deux choses qui n'ont pas de sens pour moi:

  1. Après l'époque 120 (où LR est diminué) val. la perte et la précision commencent à s'améliorer pendant quelques époques (la boîte verte ). Pourquoi la diminution du taux d'apprentissage améliorerait-elle soudainement les performances de validation d'un modèle déjà surajusté?! Je m'attendrais à ce que la baisse de LR accélère réellement le surajustement.

  2. Après l'époque ~ 125 (la boîte bleue ), la perte commence à augmenter mais la précision continue de s'améliorer. Je comprends que la perte pourrait augmenter tant que la précision reste constante (par le modèle devenant plus confiant dans ses mauvaises prédictions ou moins confiant dans ses prédictions correctes). Mais je ne comprends pas comment la précision peut s'améliorer lorsque la perte augmente.

Réponses

hH1sG0n3 Aug 20 2020 at 18:52

Juste quelques points ci-dessous

  • Boîte rouge: en termes stricts, le surajustement a lieu lorsque le modèle réussit mieux dans la formation que l'ensemble de validation. Et donc, je dirais ici que cela commence plus tôt que ce qui est indiqué en rouge et que cela se rapporte probablement au modèle trouvant de meilleurs paramètres qui ne s'appliquent qu'à l'ensemble d'apprentissage. À noter, aucune diminution significative des pertes de train.
  • Boîte verte: à l'entraînement, baisse significative des pertes. Cette découverte de minima significativement meilleurs signifie qu'elle peut également s'appliquer dans l'ensemble de validation et qu'elle est en fait reflétée dans la courbe de perte de valeur. Malgré cela, la perte n'est pas meilleure que le point de contrôle au début de la boîte rouge.
  • Boîte bleue: la perte et la précision ne sont pas des mesures co-dépendantes. Alors que la précision est une mesure du nombre de suppositions correctes (combien), la perte est une mesure de la distance par rapport à un point de données correct (à quelle distance).

Généralement, un lr plus petit signifie que le modèle a moins de "liberté" pour sauter très loin dans l'espace des fonctionnalités. Il y a donc moins de chances de voir une diminution significative et rapide des pertes. Comme vous le suggérez, il y a une légère tendance à la surajustement à la hausse de votre perte de val, mais elle est aussi importante ou rapide que le plus petit lr le permet à l'entraînement.

Notez également que la perte de votre train est supérieure à la perte de valeur pour une bonne partie de votre entraînement (~ 55e époque). Vous voudrez peut-être examiner comment votre modèle est régularisé, car cela peut affecter vos courbes d'apprentissage d'une manière qui peut vous aider à mieux déduire les diagnostics. Par exemple, dans pytorch, la perte de train entre les états du modèle (model.train () et model.eval ()) diffère considérablement.