Comment est-il possible que la perte de validation augmente alors que la précision de validation augmente également

28

J'entraîne un réseau neuronal simple sur l'ensemble de données CIFAR10. Après un certain temps, la perte de validation a commencé à augmenter, tandis que la précision de validation augmente également. La perte de test et la précision du test continuent de s'améliorer.

Comment est-ce possible? Il semble que si la perte de validation augmente, la précision devrait diminuer.

PS Il y a plusieurs questions similaires, mais personne n'a expliqué ce qui se passait là-bas.entrez la description de l'image ici

Konstantin Solomatov
la source
2
Vous pouvez vérifier quelques conseils pour comprendre dans ma réponse ici: stats.stackexchange.com/questions/258166/…
ahstat
@ahstat Je comprends comment c'est techniquement possible, mais je ne comprends pas comment ça se passe ici.
Konstantin Solomatov
L'illustration 2 est ce que j'ai vécu avec vous, ce qui est une sorte de sur-ajustement. Pour mon problème particulier, il a été résolu après avoir mélangé l'ensemble.
ahstat
@ahstat Il existe de nombreuses façons de lutter contre le surajustement. Par exemple, je pourrais utiliser le décrochage. Ce qui m'intéresse le plus, quelle en est l'explication. C'est-à-dire pourquoi augmente-t-il si progressivement et seulement vers le haut.
Konstantin Solomatov

Réponses:

12

Sur la base de la réponse d'Ankur et du commentaire en dessous, je pense que le scénario suivant est possible, alors que je n'en ai aucune preuve. Deux phénomènes pourraient se produire en même temps:

  1. Certains exemples avec des prédictions limites sont mieux prédits et donc leur classe de sortie change (par exemple, une image de chat prédite à 0,4 pour être un chat et 0,6 pour être un cheval devient prédite 0,4 pour être un cheval et 0,6 pour être un chat). Grâce à cela, la précision augmente tandis que la perte diminue.

  2. Certains exemples avec de très mauvaises prédictions continuent de s'aggraver (par exemple, une image de chat prédite à 0,8 pour être un cheval devient prédite à 0,9 pour être un cheval) ET / OU (plus probable, en particulier pour les classes multiples?) Quelques exemples avec de très bonnes les prévisions s'aggravent un peu (par exemple, une image de chat prédite à 0,9 pour être un chat devient prédite à 0,8 pour être un chat). Avec ce phénomène, la perte augmente tandis que la précision reste la même.

Donc, si le phénomène 2 se déclenche à un moment donné, sur de nombreux exemples (par exemple pour une classe spécifique qui n'est pas bien comprise pour une raison quelconque) et / ou avec une augmentation de perte plus forte que la diminution de perte que vous gagnez à partir de 1., alors vous pourriez vous retrouver dans votre scénario.
Encore une fois, ce n'est peut-être pas ce qui se passe, mais je pense que pouvoir proposer de tels scénarios doit nous rappeler la relation parfois glissante entre la perte (entropie croisée) et la précision.

Soltius
la source
15

La précision d'un ensemble est évaluée en vérifiant simplement la sortie softmax la plus élevée et la classe étiquetée correcte. Cela ne dépend pas de la hauteur de la sortie softmax. Pour plus de clarté, voici quelques chiffres.

Supposons qu'il y ait 3 classes: chien, chat et cheval. Pour notre cas, la classe correcte est cheval . Maintenant, la sortie du softmax est [0.9, 0.1]. Pour cette perte ~ 0,37. Le classificateur prédira qu'il s'agit d'un cheval. Prenons un autre cas où la sortie softmax est [0,6, 0,4]. Perte ~ 0,6. Le classificateur prédira toujours qu'il s'agit d'un cheval. Mais sûrement, la perte a augmenté. Donc, tout tourne autour de la distribution de sortie.

ANKUR SATYA
la source
4
Observation: dans votre exemple, la précision ne change pas. C'est toujours à 100%. Avez-vous un exemple où la perte diminue et la précision diminue également?
Hugh Perkins
1

D'après la réponse d'Ankur, il me semble que:

correctclassestotalclasses

tandis que

less

Alors...

Une précision de validation élevée + un score de perte élevé par rapport à une précision de formation élevée + un score de perte faible suggèrent que le modèle peut être trop adapté aux données de formation.

Ignatius Ezeani
la source
0

De nombreuses réponses se concentrent sur le calcul mathématique expliquant comment cela est possible. Mais ils n'expliquent pas pourquoi il en est ainsi. Et ils ne peuvent pas suggérer comment creuser davantage pour être plus clair.

J'ai 3 hypothèses. Et proposez quelques expériences pour les vérifier. J'espère que cela peut aider à expliquer ce problème.

  1. L'étiquette est bruyante. Comparez les fausses prédictions entre quand val_loss est minimum et val_acc est maximum. Vérifiez si ces échantillons sont correctement étiquetés.
  2. [Moins probable] Le modèle n'a pas suffisamment d'informations pour être certain. Expérimentez avec des couches cachées plus nombreuses et plus grandes.
  3. [Une supposition très sauvage] Il s'agit d'un cas où le modèle est moins certain de certaines choses comme étant entraîné plus longtemps. Une telle situation arrive aussi aux humains. Quand quelqu'un a commencé à apprendre une technique, on lui dit exactement ce qui est bon ou mauvais, à quoi servent certaines choses (haute certitude). Quand il passe en revue plus de cas et d'exemples, il se rend compte parfois que certaines frontières peuvent être floues (moins certaines, perte plus élevée), même s'il peut prendre de meilleures décisions (plus de précision). Et il peut éventuellement devenir plus sûr lorsqu'il devient maître après avoir parcouru une énorme liste d'échantillons et de nombreux essais et erreurs (plus de données de formation). Donc, dans ce cas, je suggère que l'expérience avec l'ajout de plus de bruit aux données d'entraînement (pas d'étiquette) puisse être utile.

Ne discutez pas de cela si vous n'êtes pas d'accord avec ces hypothèses. Il sera plus significatif de sortir une expérience pour les vérifier, peu importe de les prouver ou de leur prouver le contraire.

Diansheng
la source